Keepalived架構高可用Mysql(二)

 4、配置keepalived   在線視頻演示

1)編輯配置文件

  1. #guration File for keepalived 
  2. #global define 
  3. global_defs { 
  4.         router_id Hadb_1 
  5.         } 
  6. vrrp_sync_group VGM { 
  7.         group { 
  8.         VI_HA 
  9.         } 
  10. vrrp_script chk_mysql { 
  11.         script "killall -0 mysqld" 
  12.         interval 5 
  13. # vvrp_instance define # 
  14. vrrp_instance VI_HA { 
  15.         state MASTER 
  16.         interface eth0 
  17.         virtual_router_id 51 
  18.         priority 100 
  19.         advert_int 5 
  20.         authentication { 
  21.                 auth_type PASS 
  22.                 auth_pass hamysql 
  23.         } 
  24.         virtual_ipaddress { 
  25.                 10.0.0.20 
  26.         } 
  27.         track_script { 
  28.                 chk_mysql 
  29.         } 

2)啓動Keepalived服務

分別啓動兩臺服務器的Keepalived服務並觀察其日誌,效驗高可用是否成功。

  1. [10.0.0.18@localhost ~]# service keepalived start 
  2. [10.0.0.18@localhost ~]# tail /var/log/messages  
  3. Jun 15 03:06:35 localhost Keepalived_vrrp: VRRP_Script(chk_mysql) succeeded 
  4. Jun 15 03:06:36 localhost Keepalived_vrrp: VRRP_Instance(VI_HA) Transition to MASTER STATE 
  5. Jun 15 03:06:41 localhost Keepalived_vrrp: VRRP_Instance(VI_HA) Entering MASTER STATE 
  6. Jun 15 03:06:41 localhost Keepalived_vrrp: VRRP_Instance(VI_HA) setting protocol VIPs. 
  7. Jun 15 03:06:41 localhost Keepalived_vrrp: VRRP_Instance(VI_HA) Sending gratuitous ARPs on eth0 for 10.0.0.20 
  8. Jun 15 03:06:41 localhost Keepalived_vrrp: VRRP_Group(VGM) Syncing instances to MASTER state 
  9. Jun 15 03:06:41 localhost Keepalived_vrrp: Netlink reflector reports IP 10.0.0.18 added 
  10. Jun 15 03:06:41 localhost Keepalived_healthcheckers: Netlink reflector reports IP 10.0.0.18 added 
  11. Jun 15 03:06:46 localhost Keepalived_vrrp: VRRP_Instance(VI_HA) Sending gratuitous ARPs on eth0 for 10.0.0.20 
  12.  

5、測試
1)找一臺裝有mysql客戶端的windows或linux機器登陸VIP測試。

  1. [root@CentOS ~]# mysql -uroot -p123456 -h10.0.0.20 
  2. Welcome to the MySQL monitor.  Commands end with ; or \g. 
  3. Your MySQL connection id is 7 
  4. Server version: 5.0.77-log Source distribution 
  5.  
  6. Type 'help;' or '\h' for help. Type '\c' to clear the buffer. 

2)keepalived故障轉移測試

A:在windows或linux客戶端一直去ping  VIP,然後關閉10.0.0.18上的keepalived,正常情況下VIP就會切換到10.0.0.19上面去

B:開啓10.0.0.18上的keepalived,看是否能自動切換

3)MySQL故障轉移測試

A:在10.0.0.18上關閉MySQL服務,看VIP是否會切換到10.0.0.19上
 

  1. [10.0.0.18@localhost ~]# service mysqld stop 
  2. [10.0.0.18@localhost ~]# tail /var/log/messages -f 
  3. Jun 15 03:20:35 localhost Keepalived_vrrp: VRRP_Script(chk_mysql) failed 
  4. Jun 15 03:20:36 localhost Keepalived_vrrp: VRRP_Instance(VI_HA) Entering FAULT STATE 
  5. Jun 15 03:20:36 localhost Keepalived_vrrp: VRRP_Instance(VI_HA) removing protocol VIPs. 
  6. Jun 15 03:20:36 localhost Keepalived_vrrp: VRRP_Instance(VI_HA) Now in FAULT state 
  7. Jun 15 03:20:36 localhost Keepalived_vrrp: VRRP_Group(VGM) Syncing instances to FAULT state 
  8. Jun 15 03:20:36 localhost Keepalived_vrrp: Netlink reflector reports IP 10.0.0.18 removed 
  9. Jun 15 03:20:36 localhost Keepalived_healthcheckers: Netlink reflector reports IP 10.0.0.18 removed 
  10.  
  11.  
  12. [10.0.0.19@localhost ~]# tail /var/log/messages -f 
  13. Jun 15 03:20:47 localhost Keepalived_vrrp: VRRP_Instance(VI_HA) Transition to MASTER STATE 
  14. Jun 15 03:20:47 localhost Keepalived_vrrp: VRRP_Group(VGM) Syncing instances to MASTER state 
  15. Jun 15 03:20:52 localhost Keepalived_vrrp: VRRP_Instance(VI_HA) Entering MASTER STATE 
  16. Jun 15 03:20:52 localhost Keepalived_vrrp: VRRP_Instance(VI_HA) setting protocol VIPs. 
  17. Jun 15 03:20:52 localhost Keepalived_vrrp: VRRP_Instance(VI_HA) Sending gratuitous ARPs on eth0 for 10.0.0.20 
  18. Jun 15 03:20:52 localhost Keepalived_vrrp: Netlink reflector reports IP 10.0.0.19 added 
  19. Jun 15 03:20:52 localhost Keepalived_healthcheckers: Netlink reflector reports IP 10.0.0.19 added 
  20. Jun 15 03:20:57 localhost Keepalived_vrrp: VRRP_Instance(VI_HA) Sending gratuitous ARPs on eth0 for 10.0.0.20 

B:開啓10.0.0.18上的MySQL和keepalived

  1. [10.0.0.18@localhost ~]# service mysqld start 
  2. [10.0.0.19@localhost ~]# tail /var/log/messages -f 
  3. Jun 15 03:23:52 localhost Keepalived_vrrp: VRRP_Instance(VI_HA) Received higher prio advert 
  4. Jun 15 03:23:52 localhost Keepalived_vrrp: VRRP_Instance(VI_HA) Entering BACKUP STATE 
  5. Jun 15 03:23:52 localhost Keepalived_vrrp: VRRP_Instance(VI_HA) removing protocol VIPs. 
  6. Jun 15 03:23:52 localhost Keepalived_vrrp: VRRP_Group(VGM) Syncing instances to BACKUP state 
  7. Jun 15 03:23:52 localhost Keepalived_vrrp: Netlink reflector reports IP 10.0.0.19 removed 
  8. Jun 15 03:23:52 localhost Keepalived_healthcheckers: Netlink reflector reports IP 10.0.0.19 removed 

C:下客戶端連接的MySQL的VIP,在切換時我執行了一個MySQL查詢命令
 

  1. mysql> show tables; 
  2. No connection. Trying to reconnect... 
  3. Connection id:    10 
  4. Current database: test 
  5. +----------------+ 
  6. | Tables_in_test | 
  7. +----------------+ 
  8. | t2             | 
  9. +----------------+ 
  10. 1 row in set (0.00 sec) 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章