ubuntu lvs keepalived mysql_Ubuntu下LVS + Keepalived 实现MySQL高可用负载均衡实现

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节点上查看数据是否同步。

本文出自:亿恩科技【www.enkj.com】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值