ubuntu下LVS + Keepalived 实现mysql高可用负载均衡实现

原创 2011年01月19日 14:50:00

 

LVS Server   : 192.85.1.5
Virtual IP   : 192.85.1.10
Real Server1 : 192.85.1.4
Real Server2 : 192.85.1.9
在 LVS Server 上安装 ipvsadm 和 keepalived。
$ sudo apt-get install ipvsadm keepalived
使用这两个做配合时,无需配置 ipvsadm,直接修改 keepalived.conf 即可。
$ sudo vim /etc/keepalived/keepalived.conf 

global_defs {
    router_id LVS_DEVEL
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100   #100为从服务器,主服务器为:101     
    advert_int 1        

    authentication {
        auth_type PASS
        auth_pass 1111
    }

    virtual_ipaddress {
        192.85.1.10
    }
}

virtual_server 192.85.1.10 3306{
    delay_loop 1        # 每隔 1 秒查询 RealServer 状态
    lb_algo wrr         # LVS 算法
    lb_kind DR          # Direct Route
    #persistence_timeout 60 # 同一 IP 在 60 秒内分配到同一台 RealServer
    protocol TCP        # 使用 TCP 协议检查 RealServer 状态

    real_server 192.85.1.4 3306{
        weight 3    # 权重
        TCP_CHECK {
            connect_timeout 10 # 10 秒无响应超时
            nb_get_retry 3
            delay_before_retry 3
            connect_port 3306
        }
    }

    real_server 192.85.1.9 3306 {
        weight 3    
        TCP_CHECK {
            connect_timeout 10 
            nb_get_retry 3
            delay_before_retry 3
            connect_port 3306
        }
    }
}}
启动 keepalived 服务。
$ sudo service keepalived start #应该先启动mysql集群
 
检查 ipvsadm 设置。
$ sudo ipvsadm -ln

IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.85.1.10:3306 wrr
  -> 192.85.1.4:3306           Route   3      0          0         
  -> 192.85.1.9:3306           Route   3      0          0 
 
在所有 RealServer /etc/rc.local 中添加配置信息后重启
$ sudo nano /etc/rc.local

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

ifconfig lo:0 192.85.1.10 netmask 255.255.255.255 broadcast 192.85.1.10 up
route add -host 192.85.1.10 dev lo:0

echo "0" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

exit 0
 
这时我们就可以进行测试了。在Real Server1 上,创建数据库:clustertest,
sudo /usr/local/mysql/bin/mysql -u root -p
密码默认为空
mysql> GRANT ALL ON clustertest.* TO 'zichen'@'$' IDENTIFIED BY '62672000';
mysql> FLUSH PRIVILEGES;
mysql> CREATE DATABASE clustertest;
mysql> USE clustertest;
mysql> CREATE TABLE test(id INT) ENGINE=NDBCLUSTER;
mysql> INSERT INTO test VALUES(1);
mysql> quit;
在 Real Server2上
sudo /usr/local/mysql/bin/mysql -u root -p
密码默认为空
mysql> GRANT ALL ON clustertest.* TO 'zichen'@'$' IDENTIFIED BY '62672000';
mysql> FLUSH PRIVILEGES;
mysql> quit;
 
在192.85.1.4上,在终端输入:sudo /usr/local/mysql/bin/mysql -h 192.85.1.10 -u zichen -p
enter password:62672000
正常情况下,应该能进入如下界面:
mysql >
mysql > use clustertest;
mysql > show tables;
mysql > select * from test;
mysql > insert into test values (2);
在两个SQL节点上查看数据是否同步。

MySQL主主复制+LVS+Keepalived实现MySQL高可用性

MySQL复制能够保证数据的冗余的同时可以做读写分离来分担系统压力,如果是主主复制还可以很好的避免主节点的单点故障。但是MySQL主主复制存在一些问题无法满足我们的实际需要:未提供统一访问入口来实现负...
  • u010391029
  • u010391029
  • 2016年08月26日 16:09
  • 937

centos部署lvs+keepalived+apache/tomcat实现高性能高可用负载均衡

前言: 常用的有的负载均衡软件有lvs、haproxy、nginx 一般lvs和keeplavied一起使用 lvs是实现负载均衡作用的,即将客户端的需求采用特定的负载均衡算法分发到后端的Web应用服...
  • nuli888
  • nuli888
  • 2016年07月14日 19:10
  • 3724

MHA+Lvs+Keepalived实现MySQL的高可用及读负载均衡_4(Lvs+Keepalived)

MHA+Lvs+Keepalived实现MySQL的高可用及读负载均衡_4(Lvs+Keepalived) 实现Masterha-manager高可用及MySQL从的读负载均衡的Lvs+Keepal...
  • u014749692
  • u014749692
  • 2015年01月27日 11:22
  • 1229

CentOS6.4 LVS+keepalived高可用负载均衡服务配置

CentOS6.4 LVS+keepalived高可用负载均衡服务配置 转自 http://songxj.blog.51cto.com/620981/1171882 一:测试环境信息 ...
  • skykingf
  • skykingf
  • 2014年01月14日 16:07
  • 4357

【高性能架构】LVS+Keepalived实现高可用集群

一、LVS(Linux Virtual Server,即Linux虚拟服务器) 1、概述      LVS是一个虚机的服务器集群系统,它通过使用集群技术和Linux操作系统实现一个高性能、高可用的服务...
  • u010515761
  • u010515761
  • 2014年12月19日 15:42
  • 1842

MHA+Lvs+Keepalived实现MySQL的高可用及读负载均衡_3(MHA)

MHA+Lvs+Keepalived实现MySQL的高可用及读负载均衡_3(MHA) 实现MySQL高可用的MHA安装及配置 MHA项目:http://code.google.com/p/mysql...
  • u014749692
  • u014749692
  • 2015年01月27日 11:18
  • 1124

centos7 LVS+Keepalived实现mysql的负载均衡

简介 Keepalived的作用是检测服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当...
  • jc_benben
  • jc_benben
  • 2017年01月05日 14:41
  • 881

keepalived+nginx+mysql实现高可用及负载均衡

最近捣鼓了一下mysql数据库的高可用方案。借助mysql官方的InnoDB Cluster 以及nginx+keepalived。能够轻易的做到。效果及稳定性令人满意。 前言: 首先这里默认你已...
  • KokJuis
  • KokJuis
  • 2017年11月28日 17:55
  • 440

LVS+Keepalived实现负载均衡和双机热备

1. 说明          在《双机热备——Keepalived实现》中主要讲述如何安装及配置Keepalived来实现双机热备,主要功能是:MASTER和BACKUP两台服务器处于热备状态,对用户...
  • u013256816
  • u013256816
  • 2015年10月23日 16:51
  • 6511

【高性能架构】使用Keepalived实现PostgreSQL的高可用

一、功能     Keepalived通过对服务器池中的对象进行健康检查,同时实现了对失效机器和服务的故障隔离,并把其从服务池中删除;如果失效的机器或者服务恢复正常,Keepalived会自动将其加入...
  • u010515761
  • u010515761
  • 2015年01月30日 16:24
  • 2971
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ubuntu下LVS + Keepalived 实现mysql高可用负载均衡实现
举报原因:
原因补充:

(最多只允许输入30个字)