piranha構建高可用平臺html
內網私有ip(心跳線,用來增強ha集羣的健壯度)node
pulse和piranha進程linux
前者是啓動服務的,後者是進行開啓圖形web
nanny具備後端檢測功能(heartbeat中使用ldirectord來檢測後端RS的健康情況)vim
實驗環境:後端
RHEL6.4 selinux is disabled iptables 關閉服務器
主機以及IP準備:閉包
node3 192.168.2.88 (VIP:192.168.2.83 PrivateIP:10.0.0.1)負載均衡
node4 192.168.2.89 (VIP:192.168.2.83 PrivateIP:10.0.0.2)tcp
node5 192.168.2.90 (VIP:192.168.2.83/32)
node6 192.168.2.93 (VIP:192.168.2.83/32)
主機規劃分析:
node3和node4做爲HA高可用負載均衡集羣平臺,VIP爲發佈IP,privateIP用來檢測主備的存活狀態,加強HA的強壯度的。
node5和node6做爲後端的RS,提供真實服務。VIP的設置是由於使用LVS策略,須要直接對用戶進行響應。
在每一個主機/etc/hosts文件進行本地解析
node3 192.168.2.88
node4 192.168.2.89
node5 192.168.2.90
node6 192.168.2.93
在node3主機上進行安裝配置:
# yum install piranha -y
# /etc/init.d/piranha-gui start 啓動圖形管理界面(開啓的3636的web接口)
# netstat -antlp | grep httpd
tcp 0 0 :::3636 :::* LISTEN 2107/httpd
# piranha-passwd 設置圖形管理密碼
node4主機進行安裝
# yum install piranha -y
piranha的相關配置文件
/etc/rc.d/init.d/piranha-gui 用來配置HA的
/etc/rc.d/init.d/pulse 用來啓動piranha主進程
/etc/sysconfig/ha/conf/httpd.conf
/etc/sysconfig/ha/web/index.html
啓動後在web界面進行配置:
http://192.168.2.88:3636 用戶名piranha 密碼登陸
全局配置關閉
進行HA全局配置,設置主節點信息(私有IP是可選的,加強HA的健壯度)
設置BACKUP信息:
配置VIRTUAL SERVERS
添加服務:添加RS(node5和node6,權值是lvs的策略問題,用於不一樣負載主機的配置):
腳本配置(默認配置就能夠):
啓用RS和Virtual-Servers.
配置成功後的配置文件:
[root@node3 ha]# cat /etc/sysconfig/ha/lvs.cf
serial_no = 15
primary = 192.168.2.88
service = lvs
backup_active = 1
backup = 192.168.2.89
heartbeat = 1
heartbeat_port = 888
keepalive = 2
deadtime = 5
network = direct
debug_level = NONE
monitor_links = 1
syncdaemon = 0
virtual web {
active = 1
address = 192.168.2.83 eth0:1
vip_nmask = 255.255.255.0
port = 80
send = "GET / HTTP/1.0\r\n\r\n"
expect = "HTTP"
use_regex = 0
load_monitor = none
scheduler = rr
protocol = tcp
timeout = 6
reentry = 15
quiesce_server = 0
server node5 {
address = 192.168.2.90
active = 1
port = 80
weight = 1
}
server node6 {
address = 192.168.2.93
active = 1
port = 80
weight = 2
}
}
由於作的是高可用的負載均衡集羣,所以node3和node4上以前已經安裝了LVS,若是沒有安裝能夠#yim install ipvsadm -y 進行安裝。lvs具體的調度策略以及模式,請自行閱讀,這裏不作講解。
HA平臺搭建完畢,配置RS相關的設置
修改RS的arp和VIP
# vim /etc/sysconfig/arptables 兩臺rs都作相同的操做哦,由於VIP變化
*filter
:IN ACCEPT [0:0]
:OUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
[0:0] -A IN -d 192.168.2.83 -j DROP
[0:0] -A OUT -s 192.168.2.83 -j mangle --mangle-ip-s 192.168.2.90
COMMIT
# /etc/init.d/arptables_jf restart
#ifconfig eth0:1 192.168.2.83 netmask 255.255.255.255 up RS端配置VIP/32
注意:生產環境中,rs的配置中,vip必須開機啓動哦!!
#/etc/init.d/httpd start 測試httpd服務
#chkconfig httpd on
啓動HA端的pulse進程,而且同步HA的備機;
# /etc/init.d/pulse start (備機開啓相同的服務)
#chkconfig pulse on
# scp lvs.cf node4:/etc/sysconfig/ha/
#tail -f /var/log/messages 查看HA詳細日誌
使用piranha搭建HA平臺完畢。
測試:
負載均衡測試:
訪問http://192.168.2.83 刷新出來node5和6的web頁面
# ipvsadm -l
TCP 192.168.2.83:http rr
-> node5:http Route 1 0 6
-> node6:http Route 2 0 7
高可用測試:
關閉piranha主節點node3,node4會當即接管,訪問服務,一切正常
(不過好像不支持回切功能)
(關閉包括關閉piranha主進程pulse或者主機關閉)
#給其中一節點崩潰內核試一試(#echo c > /proc/sysrq-trigger)
nanny對lvs後端檢測測試:
關閉一個rs,觀察服務的狀態(發現piranha會自動檢測到後臺rs失敗,將之剔除lvs策略表,只會提供正確的頁面)
#ipvsadm -l
TCP 192.168.2.83:http rr
-> node6:http Route 2 0 21