HAproxy+keepalived/pacemaker
Haproxy+keepalived的結合,實現負載均衡與高可用的完美結合,既解決了提供服務的負載均衡,又解決了作負載均衡器的單點故障問題。這樣架構就很健壯了。
材料準備: keepalived-1.2.20.tar.gz
步驟:
#tar -zxf keepalived-1.2.20.tar.gz :解壓源碼包,進行編譯安裝
#cd keepalived-1.2.20
#yum install -y gcc openssl-devel :安裝編譯環境以及依賴性
#./configure--prefix=/usr/local/keepalived :指定安裝位置
# make ---> make install
作相應文件位置的軟件連,有些文件的位置不對。需要連接解決。
# ln -s /usr/local/keepalived/etc/keepalived /etc/
# ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
# ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
# ln -s /usr/local/keepalived/bin/genhash /bin/
#ln -s /usr/local/keepalived/sbin/keepalived /sbin/
#vim keepalived.conf :編輯keepalived的配置文件
vrrp_script check_haproxy {
script "/opt/check_haproxy.sh" :這個腳本要自己寫
interval 2 監控間隔爲2s
weight 2 權值爲2
}
global_defs { :定義全局定義
notification_email {
root@localhost 發郵件給本機root用戶
}
notification_email_from keepalived@localhost 郵件發送者
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
vrrp_strict
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 16
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.25.10.200 :虛擬ip地址
}
track_script {
check_haproxy
}
}
MASTER Keepalived配置,BAKUP的配置還需要作兩部分修改,1.state BACKUP 2.priority 50
還需要自己編寫腳本:
#vim /opt/check_haproxy.sh
#!/bin/bash
/etc/init.d/haproxy status &> /dev/null ||/etc/init.d/haproxy restart&>/dev/null
if
[ $? -ne 0 ]
then
/etc/init.d/keepalived stop &> /dev/null
fi
#scp -r keepalived/ [email protected]:/usr/local/
#scp /opt/check_haproxy.sh [email protected]:/opt/
#scp keepalived.conf [email protected]:/etc/keepalived/
#scp haproxy.cfg [email protected]:/etc/haproxy/
#/etc/init.d/keepalivedstart :兩邊都啓動keepalived服務。
即可實現高可用負載。用上面的步驟來,依次關閉realserver的服務和負載調度器。看是否會有接管服務。
實現haproxy+pacemaker的完美結合,和上面一樣,也是爲了解決單點故障和負載均衡問題。這種搭配更容易也更簡單。
第二種方法:使用pacemaker
材料:crmsh-1.2.6-0.rc2.2.1.x86_64.rpm pssh-2.3.1-2.1.x86_64.rpm
#yum install -y crmsh-1.2.6-0.rc2.2.1.x86_64.rpm :解決依賴性的pssh-2.3.1-2.1.x86_64.rpm
#yum install -y pacemaker 安轉pacemaker服務
#cd /etc/corosync/
#cp corosync.conf.example corosync.conf 編輯corosync的配置文件
#vim corosync.conf
totem {
version: 2
secauth: off
threads: 0
interface {
ringnumber: 0
bindnetaddr: 172.25.10.0 :修改此處的網段
mcastaddr: 226.94.1.1
mcastport: 2134 :組播地址端口號
ttl: 1
}
service {
name:pacemaker
ver:0
}
#scp corosync.conf [email protected]:/etc/corosync/ 傳給備份機
#/etc/init.d/corosync start 兩邊的主機corosync同時啓動。
在haproxy1上輸入#crm_mon進行監控,
在haproxy2上進行操作,添加虛擬ip和haproxy服務,並且加到同一個組裏面。
# crm
> property stonith-enabled=false :去除腦裂,因爲沒有裝fence機制,
>primitive vip ocf:heartbeat:IPaddr2params ip=172.25.10.100 cidr_netmask=32 op monitor interval=30s
:添加VIP,並且監控時間爲每個30s
>primitivehaproxy lsb:haproxy op monitor interval=30s
添加:haproxy服務,監控時間同樣爲30s
> group hell vip haproxy
:將vip haproxy放到同一個組裏面,組的名字叫做hell;
>commit 提交保存生效。