4、配置keepalived 在線視頻演示
1)編輯配置文件
- #guration File for keepalived
- #global define
- global_defs {
- router_id Hadb_1
- }
- vrrp_sync_group VGM {
- group {
- VI_HA
- }
- }
- vrrp_script chk_mysql {
- script "killall -0 mysqld"
- interval 5
- }
- # vvrp_instance define #
- vrrp_instance VI_HA {
- state MASTER
- interface eth0
- virtual_router_id 51
- priority 100
- advert_int 5
- authentication {
- auth_type PASS
- auth_pass hamysql
- }
- virtual_ipaddress {
- 10.0.0.20
- }
- track_script {
- chk_mysql
- }
- }
2)啓動Keepalived服務
分別啓動兩臺服務器的Keepalived服務並觀察其日誌,效驗高可用是否成功。
- [10.0.0.18@localhost ~]# service keepalived start
- [10.0.0.18@localhost ~]# tail /var/log/messages
- Jun 15 03:06:35 localhost Keepalived_vrrp: VRRP_Script(chk_mysql) succeeded
- Jun 15 03:06:36 localhost Keepalived_vrrp: VRRP_Instance(VI_HA) Transition to MASTER STATE
- Jun 15 03:06:41 localhost Keepalived_vrrp: VRRP_Instance(VI_HA) Entering MASTER STATE
- Jun 15 03:06:41 localhost Keepalived_vrrp: VRRP_Instance(VI_HA) setting protocol VIPs.
- Jun 15 03:06:41 localhost Keepalived_vrrp: VRRP_Instance(VI_HA) Sending gratuitous ARPs on eth0 for 10.0.0.20
- Jun 15 03:06:41 localhost Keepalived_vrrp: VRRP_Group(VGM) Syncing instances to MASTER state
- Jun 15 03:06:41 localhost Keepalived_vrrp: Netlink reflector reports IP 10.0.0.18 added
- Jun 15 03:06:41 localhost Keepalived_healthcheckers: Netlink reflector reports IP 10.0.0.18 added
- Jun 15 03:06:46 localhost Keepalived_vrrp: VRRP_Instance(VI_HA) Sending gratuitous ARPs on eth0 for 10.0.0.20
5、測試
1)找一臺裝有mysql客戶端的windows或linux機器登陸VIP測試。
- [root@CentOS ~]# mysql -uroot -p123456 -h10.0.0.20
- Welcome to the MySQL monitor. Commands end with ; or \g.
- Your MySQL connection id is 7
- Server version: 5.0.77-log Source distribution
- 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上
- [10.0.0.18@localhost ~]# service mysqld stop
- [10.0.0.18@localhost ~]# tail /var/log/messages -f
- Jun 15 03:20:35 localhost Keepalived_vrrp: VRRP_Script(chk_mysql) failed
- Jun 15 03:20:36 localhost Keepalived_vrrp: VRRP_Instance(VI_HA) Entering FAULT STATE
- Jun 15 03:20:36 localhost Keepalived_vrrp: VRRP_Instance(VI_HA) removing protocol VIPs.
- Jun 15 03:20:36 localhost Keepalived_vrrp: VRRP_Instance(VI_HA) Now in FAULT state
- Jun 15 03:20:36 localhost Keepalived_vrrp: VRRP_Group(VGM) Syncing instances to FAULT state
- Jun 15 03:20:36 localhost Keepalived_vrrp: Netlink reflector reports IP 10.0.0.18 removed
- Jun 15 03:20:36 localhost Keepalived_healthcheckers: Netlink reflector reports IP 10.0.0.18 removed
- [10.0.0.19@localhost ~]# tail /var/log/messages -f
- Jun 15 03:20:47 localhost Keepalived_vrrp: VRRP_Instance(VI_HA) Transition to MASTER STATE
- Jun 15 03:20:47 localhost Keepalived_vrrp: VRRP_Group(VGM) Syncing instances to MASTER state
- Jun 15 03:20:52 localhost Keepalived_vrrp: VRRP_Instance(VI_HA) Entering MASTER STATE
- Jun 15 03:20:52 localhost Keepalived_vrrp: VRRP_Instance(VI_HA) setting protocol VIPs.
- Jun 15 03:20:52 localhost Keepalived_vrrp: VRRP_Instance(VI_HA) Sending gratuitous ARPs on eth0 for 10.0.0.20
- Jun 15 03:20:52 localhost Keepalived_vrrp: Netlink reflector reports IP 10.0.0.19 added
- Jun 15 03:20:52 localhost Keepalived_healthcheckers: Netlink reflector reports IP 10.0.0.19 added
- 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
- [10.0.0.18@localhost ~]# service mysqld start
- [10.0.0.19@localhost ~]# tail /var/log/messages -f
- Jun 15 03:23:52 localhost Keepalived_vrrp: VRRP_Instance(VI_HA) Received higher prio advert
- Jun 15 03:23:52 localhost Keepalived_vrrp: VRRP_Instance(VI_HA) Entering BACKUP STATE
- Jun 15 03:23:52 localhost Keepalived_vrrp: VRRP_Instance(VI_HA) removing protocol VIPs.
- Jun 15 03:23:52 localhost Keepalived_vrrp: VRRP_Group(VGM) Syncing instances to BACKUP state
- Jun 15 03:23:52 localhost Keepalived_vrrp: Netlink reflector reports IP 10.0.0.19 removed
- Jun 15 03:23:52 localhost Keepalived_healthcheckers: Netlink reflector reports IP 10.0.0.19 removed
C:下客戶端連接的MySQL的VIP,在切換時我執行了一個MySQL查詢命令
- mysql> show tables;
- No connection. Trying to reconnect...
- Connection id: 10
- Current database: test
- +----------------+
- | Tables_in_test |
- +----------------+
- | t2 |
- +----------------+
- 1 row in set (0.00 sec)