LVS+keepalived構建PXC高可用集羣

1 高可用安裝

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 安裝準備測試

  • 上傳安裝所需的壓縮包到/opt目錄

        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 keepalived集羣啓動

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 PXC故障測試

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 高可用測試

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

        

相關文章
相關標籤/搜索