1.1 集羣信息mysql
主機 | IP | 組件 |
bdc212 | 192.168.13.212 | LVS:ipvsadm-1.27-7.el7.x86_64.rpmsql Keepalived: keepalived-1.2.4.tar.gzbash 應用:Percona-XtraDB-Cluster |
bdc213 | 192.168.13.213 | LVS:ipvsadm-1.27-7.el7.x86_64.rpm服務器 Keepalived: keepalived-1.2.4.tar.gz負載均衡 應用:Percona-XtraDB-Cluster |
bdc214 | 192.168.13.214 | 應用:Percona-XtraDB-Clusteroop |
1.2 安裝準備測試
keepalived-1.2.4.tar.gzui
(http://www.keepalived.org/software/keepalived-1.2.4.tar.gz)spa
yum install openssl-devel popt-devel libnl* -y
1.3 安裝LVS+keepalivedcode
在兩臺Director Server上分別安裝LVS+Keepalived,BACKUP服務器與MASTER服務器一致,先安裝lvs再安裝keepalived。
1.3.3 安裝LVS
Ipvs(IP Virtual Server)是整個負載均衡的基礎,沒有這個基礎,故障隔離與失敗切換就毫無心義了。
yum install ipvsadm –y
1.3.4 安裝keepalived
解壓包:
tar zxvf keepalived-1.2.4.tar.gz
初始化:
cd keepalived-1.2.4 ./configure --prefix=/usr/local/keepalived
Keepalived configuration ------------------------ Keepalived version : 1.2.4 Compiler : gcc Compiler flags : -g -O2 Extra Lib : -lpopt -lssl -lcrypto -lnl Use IPVS Framework : Yes IPVS sync daemon support : Yes IPVS use libnl : Yes Use VRRP Framework : Yes Use VRRP VMAC : Yes Use Debug flags : No
編譯並安裝:
make&&make install
Make complete make -C keepalived install make[1]: Entering directory `/root/Desktop/keepalived-1.2.1/keepalived' install -d /usr/local/keepalived/sbin install -m 700 ../bin/keepalived /usr/local/keepalived/sbin/ install -d /usr/local/keepalived/etc/rc.d/init.d install -m 755 etc/init.d/keepalived.init /usr/local/keepalived/etc/rc.d/init.d/keepalived install -d /usr/local/keepalived/etc/sysconfig install -m 755 etc/init.d/keepalived.sysconfig /usr/local/keepalived/etc/sysconfig/keepalived install -d /usr/local/keepalived/etc/keepalived/samples install -m 644 etc/keepalived/keepalived.conf /usr/local/keepalived/etc/keepalived/ install -m 644 ../doc/samples/* /usr/local/keepalived/etc/keepalived/samples/ install -d /usr/local/keepalived/share/man/man5 install -d /usr/local/keepalived/share/man/man8 install -m 644 ../doc/man/man5/keepalived.conf.5 /usr/local/keepalived/share/man/man5 install -m 644 ../doc/man/man8/keepalived.8 /usr/local/keepalived/share/man/man8 make[1]: Leaving directory `/root/Desktop/keepalived-1.2.1/keepalived' make -C genhash install make[1]: Entering directory `/root/Desktop/keepalived-1.2.1/genhash' install -d /usr/local/keepalived/bin install -m 755 ../bin/genhash /usr/local/keepalived/bin/ install -d /usr/local/keepalived/share/man/man1 install -m 644 ../doc/man/man1/genhash.1 /usr/local/keepalived/share/man/man1 make[1]: Leaving directory `/root/Desktop/keepalived-1.2.1/genhash'
1.4 配置路由轉發
1> 更改配置文件
vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
2> 刷新系統配置
sysctl -p
1.5 配置keepalived.cnf
keepalived的配置分爲三類: 全局配置(global configuration),VRRPD配置,LVS配置。
全局配置就是對整個keepalived起效的配置,無論是否使用LVS。VRRPD是keepalived的核心,LVS配置只在要使用keepalived來配置的管理LVS時須要使用,若是僅僅使用keepalived來作HA,LVS的配置是不須要的。若是在只有一個負載均衡器的場合,就不須 VRRP 實例定義塊。
mkdir /etc/keepalived vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived global_defs { router_id LVS_MASTER #BACKUP LVS_BACKUP } vrrp_instance VI_1 { state MASTER #BACKUP BACKUP interface eno16777736 virtual_router_id 51 priority 100 #BACKUP 80 advert_int 1 nopreempt authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.252.199 } } virtual_server 192.168.252.199 3306 { delay_loop 6 lb_algo rr lb_kind NAT # persistence_timeout 5 protocol TCP real_server 192.168.252.159 3306 { weight 3 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 3306 } } real_server 192.168.252.160 3306 { weight 3 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 3306 } } real_server 192.168.252.161 3306 { weight 3 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 3306 } } }
注:配置backup的/etc/keepalived/keepalived.conf,只需將批註部分改一下便可。
2.1 master節點啓動
/usr/local/keepalived/sbin/keepalived start
檢查虛擬IP啓動狀況
方法1:
tail -30 /var/log/message
Jun 15 16:24:25 localhost Keepalived_vrrp[54297]: Interface queue is empty Jun 15 16:24:25 localhost Keepalived_vrrp[54297]: No such interface, virbr0 Jun 15 16:24:25 localhost Keepalived_vrrp[54297]: No such interface, virbr0-nic Jun 15 16:24:25 localhost Keepalived_vrrp[54297]: Registering Kernel netlink reflector Jun 15 16:24:25 localhost Keepalived_vrrp[54297]: Registering Kernel netlink command channel Jun 15 16:24:25 localhost Keepalived_vrrp[54297]: Registering gratuitous ARP shared channel Jun 15 16:24:25 localhost Keepalived_vrrp[54297]: Opening file '/etc/keepalived/keepalived.conf'. Jun 15 16:24:25 localhost Keepalived_vrrp[54297]: Configuration is using : 61916 Bytes Jun 15 16:24:25 localhost Keepalived_vrrp[54297]: Using LinkWatch kernel netlink reflector... Jun 15 16:24:25 localhost Keepalived_healthcheckers[54296]: Activating healthchecker for service [192.168.252.199]:3306 Jun 15 16:24:25 localhost Keepalived_healthcheckers[54296]: Activating healthchecker for service [192.168.252.199]:3306 Jun 15 16:24:25 localhost Keepalived_healthcheckers[54296]: Activating healthchecker for service [192.168.252.199]:3306 Jun 15 16:24:25 localhost Keepalived_vrrp[54297]: VRRP_Instance(VI_1) Transition to MASTER STATE Jun 15 16:24:26 localhost Keepalived_vrrp[54297]: VRRP_Instance(VI_1) Entering MASTER STATE Jun 15 16:24:26 localhost avahi-daemon[768]: Registering new address record for 192.168.252.199 on eno16777736.IPv4.
方法2:
[root@localhost Desktop]#ip addr
2.2 backup節點啓動
/usr/local/keepalived/sbin/keepalived start
2.3 查看路由分發狀況
查看ipvsadm
[root@localhost Desktop]#ipvsadm
也可以經過mysqladmin查看本地mysql服務鏈接情況
/opt/percona/bin/mysqladmin -uroot -p123456 status
3.1 殺死mysql服務
殺死節點三上的mysql服務
kill -9 mysqld’s pid
3.2 查看ipvsadm
[root@localhost Desktop]# ipvsadm
注:負載均衡服務解除了節點三,只向節點一二分發包。
3.3 重啓mysql服務
/usr/share/percona-xtradb-cluster/mysql.server start
3.4 再查看ipvsadm
[root@localhost Desktop]# ipvsadm
注:負載均衡服務從新把節點三放入了路由分發列表。
4.1 殺死master的KP服務
Kill -9 keepalived'pid
4.2 查看組建工做狀況
1> VIP持有狀況:
查看master ip:#ip add
Master釋放了VIP:192.168.13.100
查看backup ip:#ip add
Backup接收了VIP:192.168.13.100,繼續提供負載均衡服務
2> ipvsadm工做狀況
查看master Ipvsadm:負載均衡沒有工做
[root@localhost keepalived-1.2.4]# ipvsadm
查看backup ipvsadm:負載均衡仍然提供服務
[root@localhost keepalived-1.2.4]# ipvsadm