HAProxy+keepalived+MySQL 實現MHA中slave集群負載均衡的高可用


HAProxy+keepalived+MySQL實現MHA中slave集群的負載均衡的高可用

Ip地址划分:

240    mysql_b2

242    mysql_b1

247    haproxy1

249    haproxy2

243    VIP

248    client

 

1、安裝HAProxy

yum install gcc -y

make TARGET=linux26 PREFIX=/usr/local/haproxy

make install PREFIX=/usr/local/haproxy

cp /usr/src/haproxy/haproxy-1.5.3/examples/haproxy.cfg /usr/local/haproxy/

cp /usr/src/haproxy/haproxy-1.5.3/examples/haproxy.init /etc/init.d/haproxy

chmod 755 /etc/init.d/haproxy

ln -s /usr/local/haproxy/sbin/* /usr/sbin/

mkdir /etc/haproxy

mkdir /usr/share/haproxy

ln -s /usr/local/haproxy/haproxy.cfg /etc/haproxy/

cd ..

 

1.2 設置配置文件

1.2.1 拷貝配置文件

[root@HAProxy_247 haproxy]# cp haproxy.cfg  /usr/local/haproxy/

cp: overwrite `/usr/local/haproxy/haproxy.cfg'? y

 

1.2.2  編輯配置文件

[root@HAProxy_247 haproxy]# vim /usr/local/haproxy/haproxy.cfg

注意修改RS的IP:

 

1.3 啟動HAProxy服務

[root@HAProxy_247 haproxy]# service haproxy start

 

 

1.4 訪問HAProxy的網頁

http://localhost:8899/admin-status

用戶名密碼查看配置文件設置

 

1.5 客戶端測試

 

 

2、安裝配置keepalived

2.1 修改yum倉庫

[aa]

baseurl=file:///mnt/LoadBalancer

gpgcheck=0

ebabled=1

 

2.2 安裝keepalived

yum install keepalived -y

 

2.3 修改247上配置文件(覆蓋原配置文件即可)

注:keepalived工作機制--同一組(virtual_router_id)的keepalived互相檢測存活,優先級高的作用時,優先級低的沉睡。當優先級高的宕掉時,優先級低的頂替其工作。

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

 
vrrp_script chk_haproxy {

    script "/etc/keepalived/chk.sh"

    interval 2

}

 
vrrp_instance VI_1 {

    state BACKUP

    nopreempt

    interface eth0

 virtual_router_id 51      #定義分組ID,同一組ID相同

    priority 100    #優先級

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass abcd

    }

    virtual_ipaddress {

        192.168.18.243      #VIP

    }

    track_script {

        chk_haproxy

    }

    notify_backup "/etc/init.d/haproxy restart"      //切換主/備/出錯時執行的腳本

    notify_fault "/etc/init.d/haproxy stop"

}

 

 

2.4 修改249上的主配置文件

! Configuration File for keepalived

 
vrrp_script chk_haproxy {

    script "/etc/keepalived/chk.sh"

    interval 2

}

 
vrrp_instance VI_1 {

    state BACKUP

    interface eth0

 virtual_router_id 51

    priority 99

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass abcd

    }

    virtual_ipaddress {

        192.168.18.243

    }

    track_script {

        chk_haproxy

    }

    notify_backup "/etc/init.d/haproxy restart"

    notify_fault "/etc/init.d/haproxy stop"

}

 

2.5 編寫腳本,並放到指定位置

vim  /etc/keepalived/chk.sh

#!/bin/bash

if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ]; then    #判斷haproxy是否存活,如果宕了,停止keepalived服務

       /etc/init.d/keepalived stop

fi

chmod +x chk.sh

 

2.6 開啟keepalived並驗證

service keepalived restart

 

 

在247上關閉HAProxy后:

 

 

2.7 客戶端測試

 

 

MHA中failover后,進入HAProxy配置文件中將new_master從HAProxy分發列表中剔除

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM