LVS+Keepalived+MySQL

LVS负责负载均衡转发请求,keepalived负责检查LVS的realserver状态,及时remove失效节点、add复活节点。太完美了!

本实验主要功能测试,所以只准备了两台MySQL服务器,仅为简单说明问题。
vm1 10.0.0.11        master   server_id 11
vm2 10.0.0.12        slave         server_id 12

Director:
vm3  10.0.0.14  

VIP: 10.0.0.20

1 在Directory server vm3 上安装ipvsadm和keepalived
yum install ipvsadm
安装keepalived
yum install libnfnetlink*
tar -zxvf keepalived-1.2.7.tar.gz
./configure --prefix=/usr/local/keepalived
make && make install
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
mkdir /etc/keepalived



2 vm1 vm2上,执行以下操作.
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  

ifconfig lo:0 10.0.0.20 netmask 255.255.255.255

3 在Directory server vm3上编辑/etc/keepalived/keepalived.conf文件,内容如下:


点击(此处)折叠或打开

  1. global_defs {
  2. router_id HaMySQL_1
  3. }
  4. vrrp_sync_group VGM {
  5. group {
  6. VI_MYSQL
  7. }
  8. }
  9. vrrp_instance VI_MYSQL {
  10. state MASTER
  11. interface eth0
  12. virtual_router_id 100
  13. priority 100
  14. advert_int 1
  15. authentication {
  16. auth_type PASS
  17. auth_pass 1111
  18. }
  19. virtual_ipaddress {
  20. 10.0.0.20
  21. }
  22. }
  23. virtual_server 10.0.0.20 3306 {
  24. delay_loop 6
  25. lb_algo rr
  26. lb_kind DR
  27. protocol TCP
  28. nat_mask 255.255.255.0
  29. persistence_timeout 10
  30. real_server 10.0.0.11 3306 {
  31. weight 3
  32. TCP_CHECK {
  33. connect_timeout 3
  34. nb_get_retry 3
  35. delay_before_retry 3
  36. connect_port 3306
  37. }
  38. }
  39. real_server 10.0.0.12 3306 {
  40. weight 3
  41. TCP_CHECK {
  42. connect_timeout 3
  43. nb_get_retry 3
  44. delay_before_retry 3
  45. connect_port 3306
  46. }
  47. }
  48. }


4 启动MySQL和keepalived。
vm1:
/usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysql3306/my.cnf &

vm2:
/usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysql3306/my.cnf

vm3:
/etc/init.d/keepalived start

5 验证
vm3:
[root@vm3 keepalived]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.0.0.20:3306 rr persistent 2
  -> 10.0.0.11:3306               Route   3      1          0
  -> 10.0.0.12:3306               Route   3      1          0


可以看到负载均衡已启动,vm2 vm3都已加进来了。
从客户端连接VIP 10.0.0.20:3306
C:\mysql-5.7.11-winx64\mysql-5.7.11-winx64\bin>mysql.exe -uroot -pmysql -h10.0.0.20 -P3306
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 90
Server version: 5.6.27-log Source distribution


Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql> select @@server_id;exit;
+-------------+
| @@server_id |
+-------------+
|          11 |
+-------------+
1 row in set (0.00 sec)


从server_id可以看出客户端连接的是vm1。

关掉vm1上的MySQL服务。
[root@vm3 keepalived]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.0.0.20:3306 rr persistent 2
  -> 10.0.0.12:3306               Route   3      1          0



LVS规则已经更新,remove了vm1,再次从客户端连接。
C:\mysql-5.7.11-winx64\mysql-5.7.11-winx64\bin>mysql.exe -uroot -pmysql -h10.0.0.20 -P3306
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 61
Server version: 5.6.27-log Source distribution


Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql> select @@server_id;exit;
+-------------+
| @@server_id |
+-------------+
|          12 |
+-------------+
1 row in set (0.00 sec)


重新启动vm1上的MySQL服务。
[root@vm3 ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.0.0.20:3306 rr persistent 2
  -> 10.0.0.11:3306               Route   3      1          0
  -> 10.0.0.12:3306               Route   3      1          1


LVS规则已自动刷新,vm1重新被加入。


完!







来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26735168/viewspace-2096261/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26735168/viewspace-2096261/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值