Rhel6-heartbeat+lvs配置文檔

系統環境: rhel6 x86_64 iptables and selinux disabledhtml

主機: 192.168.122.119 server19.example.com node

192.168.122.25 server25.example.comlinux

192.168.122.163 server63.example.com算法

192.168.122.193 server93.example.com apache

所需的包:heartbeat-3.0.4-1.el6.x86_64.rpm heartbeat-libs-3.0.4-1.el6.x86_64.rpm heartbeat-devel-3.0.4-1.el6.x86_64.rpm ldirectord-3.9.2-1.2.x86_64.rpmvim


Realserver1 192.168.122.163:apacheapi

Realserver2 192.168.122.193:apache服務器

Load Balance 192.168.122.119:heartbeat apache網絡

Load Balance 192.168.122.25:heartbeat apachetcp


#配置 Load Balance

如下步驟在server19server25上實施:

[root@server19 kernel]# yum localinstall heartbeat-3.0.4-1.el6.x86_64.rpm heartbeat-devel-3.0.4-1.el6.x86_64.rpm heartbeat-libs-3.0.4-1.el6.x86_64.rpm ldirectord-3.9.2-1.2.x86_64.rpm -y

[root@server19 kernel]# yum install perl-IO-Socket-INET6 ipvsadm -y

[root@server19 ha.d]# modprobe softdog

[root@server19 ha.d]# echo modprobe softdog >> /etc/rc.d/rc.local

[root@server19 ha.d]# yum install httpd -y

[root@server19 ha.d]# echo `hostname` > /var/www/index.html

[root@server19 ha.d]# /etc/init.d/httpd stop

 

如下步驟在server19server25上實施:

[root@server19 kernel]# cd /usr/share/doc/heartbeat-3.0.4/

[root@server19 heartbeat-3.0.4]# cp authkeys haresources ha.cf /etc/ha.d/

注:這三個配置文件能夠經過rpm -q heartbeat -d 查看其位置

[root@server19 heartbeat-3.0.4]# cd /usr/share/doc/packages/ldirectord/

[root@server19 ldirectord]# cp ldirectord.cf /etc/ha.d/

注:這個配置文件能夠經過rpm -q ldirectord -d 查看其位置

[root@server19 ldirectord]# cd /etc/ha.d/


#配置/etc/ha.d/authkeys

[root@server19 ha.d]# vim authkeys

auth 3

#1 crc

#2 sha1 HI!

3 md5 Hello! (去掉註釋)

[root@server19 ha.d]# chmod 600 authkeys

認證文件(/etc/ha.d/authkeys),文件的權限必須是 600

 

#配置/etc/ha.d/ha.cf

[root@server19 ha.d]# vim ha.cf

debugfile /var/log/ha-debug (去掉註釋)

調試日誌文件文件,取默認值

logfile /var/log/ha-log (去掉註釋)

系統運行日誌文件,取默認值

logfacility local0

日誌等級,取默認值

keepalive 2(去掉註釋)

心跳頻率,本身設定。1:表示 1 ;200ms:表示 200 毫秒

deadtime 30(去掉註釋)

節點死亡時間閥值,就是從節點在過了 30 後尚未收到心跳就認爲主節點死亡,本身設定

warntime 10 (去掉註釋)

發出警告時間,本身設定

initdead 120 (去掉註釋)

守護進程首次啓動後應該等待 120 秒後再啓動主服務器上的資源

udpport 694 (去掉註釋)

心跳信息傳遞的 udp 端口,使用端口 694 進行 bcast ucast 通訊,取默認值

bcast eth0 (去掉註釋)

採用 udp 廣播播來通知心跳

auto_failback on

當主節點恢復後,是否自動切回

watchdog /dev/watchdog (去掉註釋)

watchdog 能讓系統在出現故障 1 分鐘後重啓該機器,這個功能能夠幫助服務器在確實中止心 跳後可以從新恢復心跳

node server19.example.com

主節點名稱,uname --n 保持一致.排在第一的默認爲主節點,因此不要搞措順序

node server25.example.com

副節點名稱,uname --n 保持一致

ping 192.168.122.1

respawn hacluster /usr/lib64/heartbeat/ipfail

apiauth ipfail gid=haclient uid=hacluster

默認 heartbeat 並不檢測除自己以外的其餘任何服務,也不檢測網絡情況。 因此當網絡中斷時,並不會進行 Load Balancer Backup 之間的切換。 能夠經過 ipfail 插件,設置'ping nodes'來解決這一問題,但不能使用一個集羣節點做爲 ping 的節點.


#配置/etc/ha.d/haresources

[root@server19 ha.d]# vim haresources

server19.example.com IPaddr::192.168.122.178/24/eth0 ldirectord httpd

:192.168.122.178爲虛擬IP

這個文件中定義了實現集羣所需的各個軟件的啓動腳本,這些腳本必須放在/etc/init.d 或者 /etc/ha.d/resource.d 目錄裏 IPaddr 的做用是啓動 Virutal IP,它是 HeartBeart 自帶的一個 腳本.ldirectord 的做用是啓動 ldirectord 監控程序,它會使 ldirectord.cf 中定義的 lvs 生效, 並監聽其健康狀;httpd apache 服務的啓動腳本。


#配置/etc/ha.d/ldirectord.cf

[root@server19 ha.d]# vim ldirectord.cf

# Sample for an http virtual service

virtual=192.168.122.178:80 虛擬IP:服務端口

real=192.168.122.163:80 gate realserver:服務端口

real=192.168.122.193:80 gate realserver:服務端口

fallback=127.0.0.1:80 gate realserver全掛掉後,由調度器上的服務來提供服務

service=http 服務名

scheduler=rr 算法

#persistent=600 持續鏈接時間

#netmask=255.255.255.255

protocol=tcp

checktype=negotiate

checkport=80 檢測端口

request="index.html" 檢測有無inde.html測試頁

# receive="Test Page" 檢測測試頁中的內容

# virtualhost=www.x.y.z


[root@server19 ha.d]# scp authkeys ha.cf haresources ldirectord.cf root@192.168.122.25:/etc/ha.d/


#配置Realserver

如下步驟在server63上實施:

[root@server63 ~]# yum install arptables_jf httpd -y

[root@server63 ~]# arptables -A IN -d 192.168.122.178 -j DROP

[root@server63 ~]# arptables -A OUT -s 192.168.122.178 -j mangle --mangle-ip-s 192.168.122.163

[root@server63 ~]# /etc/init.d/arptables_jf save


[root@server63 ~]# ifconfig eth0:0 192.168.122.178 netmask 255.255.255.255 up

[root@server63 ~]# ip addr add 192.168.122.178 dev eth0

注:可用ip addr show查看


[root@server63 ~]# echo `hostname` > /var/www/html/index.html

[root@server63 ~]# /etc/init.d/httpd start

 

如下步驟在server93上實施:

[root@server93 ~]# yum install arptables_jf httpd -y

[root@server93 ~]# arptables -A IN -d 192.168.122.178 -j DROP

[root@server93 ~]# arptables -A OUT -s 192.168.122.178 -j mangle --mangle-ip-s 192.168.122.193

[root@server93 ~]# /etc/init.d/arptables_jf save


[root@server93 ~]# ifconfig eth0:0 192.168.122.178 netmask 255.255.255.255 up

[root@server93 ~]# ip addr add 192.168.122.178 dev eth0

注:可用ip addr show查看


[root@server93 ~]# echo `hostname` > /var/www/html/index.html

[root@server93 ~]# /etc/init.d/httpd start


#啓動

如下步驟在server19server25上實施:

[root@server19 ha.d]# /etc/init.d/heartbeat start


測試

訪問192.168.122.178反覆刷新頁面,若是頁面在server63server93直接來回切換,說明正常。

:server63server93上的apache服務關閉後,訪問的將是調度器上的apache頁面,若是調度器上的apache也關閉,將沒法訪問到頁面.當一臺調度器宕掉後,另外一臺調度器會接管,發揮調度的做用(即調度器之間實現了高可用)

相關文章
相關標籤/搜索