rhel 5.8 32bit
heartbeat v2
ha web
node1 node2
節點名稱, /etc/hosts
節點名稱必須跟uname -n命令的直行結果一致
ssh 互信通信,
時間同步
1先配置兩個主機的ip 列如 192.168.1.11 192.168.1.12 VIP192.168.1.8 網關
192.168.1.1
配置兩個主機的主機名#hostname node1.mylinux.com
#hostname node2.mylinux.com
爲了讓主機名永久生效編輯 /etc/sysconfig/network
2 配置雙擊互信(在1.11上配置)
#ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ''
#ssh-copy-id -i .ssh/id_rsa.pub [email protected]
在1.12上配置一樣
#ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ''
#ssh-copy-id -i .ssh/id_rsa.pub [email protected]
測試 在1.11上 #ssh 192.168.1.12 'ifconfig'
測試 在1.12上 #ssh 1192.168.1.11 'ifconfig'
3 配置主機名稱解析分別在1.11和1.12上配置
# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.11 node1.mylinux.com node1
192.168.1.12 node2.mylinux.com node2
可以通過ping node2 和node1來測試解析是否正常
#scp /etc/hosts node2:/etc
iptables -L -n 確保沒有相關的限定或者打開UDP的694端口
4 時間同步(1.12上運行ntp服務)
ntpdata 192.168.1.13
或者直接手動同步 ntpdate 192.168.1.13
[root@localhost yum.repos.d]# which ntpdate
/usr/sbin/ntpdate
crontab -e 每隔五分鐘同步一次
*/5 * * * * /sbin/ntpdate 192.168.1.13 &> /dev/null
scp /var/spool/cron/root node2:/var/spool/cron/
kz
http://www.linux-ha.org/wiki/Heartbeat
http://clusterlabs.org/
epel:
https://fedoraproject.org/wiki/Special:RecentChanges
heartbeat-2.1.4-11.el5.i386.rpm 核心包
heartbeat-devel-2.1.4-11.el5.i386.rpm 開發包
heartbeat-gui-2.1.4-11.el5.i386.rpm 圖形界面用於管理hearbeat集羣
heartbeat-ldirectord-2.1.4-11.el5.i386.rpm 爲ipvs高可用提供規則自動生成,即後
端realserver健康狀態檢查的組件
heartbeat-pils-2.1.4-11.el5.i386.rpm 裝載庫的插件
heartbeat-stonith-2.1.4-11.el5.i386.rpm 用於修改報頭的接口
[1.11]
安裝之前必須先安裝這2個包
libnet-1.1.6-7.el5.i386
perl-MailTools-1.77-1.el5.noarch
#yum --nogpgcheck localinstall perl-MailTools-1.77-1.el5.noarch
#yum --nogpgcheck localinstall libnet-1.1.6-7.el5.i386
#yum --nogpgcheck localinstall heartbeat-2.1.4-11.el5.i386.rpm
#yum --nogpgcheck localinstall heartbeat-gui-2.1.4-11.el5.i386.rpm
#yum --nogpgcheck localinstall heartbeat-pils-2.1.4-11.el5.i386.rpm
#yum --nogpgcheck localinstall heartbeat-stonith-2.1.4-11.el5.i386.rpm
#scp perl-MailTools-1.77-1.el5.noarch libnet-1.1.6-7.el5.i386 heartbeat-2.1.4
-11.el5.i386.rpm heartbeat-gui-2.1.4-11.el5.i386.rpm heartbeat-pils-2.1.4-
11.el5.i386.rpm heartbeat-stonith-2.1.4-11.el5.i386.rpm node2:/root/
[1.12]
#yum --nogpgcheck localinstall perl-MailTools-1.77-1.el5.noarch
#yum --nogpgcheck localinstall libnet-1.1.6-7.el5.i386
#yum --nogpgcheck localinstall heartbeat-2.1.4-11.el5.i386.rpm
#yum --nogpgcheck localinstall heartbeat-gui-2.1.4-11.el5.i386.rpm
#yum --nogpgcheck localinstall heartbeat-pils-2.1.4-11.el5.i386.rpm
#yum --nogpgcheck localinstall heartbeat-stonith-2.1.4-11.el5.i386.rpm
/etc/ha.d/resource.d/IPaddr專門用於實現將VIP配置到某個活動節點上,並且監控IP是
否生效
#cd /etc/ha.d
三個配置文件
1.密鑰文件,600權限,authkeys
2.heratbeat服務的配置文件 ha.cf
3.資源管理配置文件
haresources
#ls /usr/share/doc/heartbeat-2.1.4
#cp -p /usr/share/doc/heartbeat-2.1.4/{authkeys,ha.cf,haresources} ./
#dd if=/dev/random count=1 bs=612 |md5sum 生成隨機數
定義主配置文件
#vim authkeys
auth 1
1 md5 【隨機數】
#vim ha.cf
#debugfile /var/log/ha-debug 調試日誌
logfile /var/log/heartbeat.log 日誌文件
#logfacility local0 日誌的設施
keepalive 2 兩秒發一次心跳信息
deadtime 30 死亡時間,探測多少時間後確定爲死亡
warntime 10 警告時長
initdead 120 第一個節點啓動以後等待第二個節點啓動,的等待時間(至少要2個節點
才能組成集羣)
udpport 694 心跳信息傳遞端口
baud 19200 串行線發送速率是多少
bcast eth0 定義廣播
#mcast 組播
#ucast 單播
node 指定當前集羣有幾個節點,每個節點用一個node去指定
node node1.mylinux.com
node node2.mylinux.com
ping 192.168.1.1 通過網關來檢測自己是否正常
#respawn hacluster 服務蕩掉多久重啓服務
#compression bz2 是否壓縮日誌
#compression_threshold 2 大於2k壓縮
定義資源 /etc/ha.d/resource.d/Filesystem 資源代理
[1.11]
yum install httpd
echo "<h1>node1.mylinux.com</h1>" >> /var/www/html/index.html
service httpd start
測試
service httpd stop
chkconfig httpd off
[1.12]
yum -y install httpd
echo "<h1>node2.mylinux.com</h1>" >> /var/www/html/index.html
service httpd start
測試
service httpd stop
chkconfig httpd off
[1.11]
#cd /etc/ha.d
#vim haresources
node1.mylinux.com IPaddr::192.168.1.8/24/eth0 httpd
#scp -p authkeys haresources ha.cf node2:/etc/ha.d/
#service heratbeat start
#ssh node2 'service heartbeat start'
cd /usr/lib/heartbeat
./hb_standby 把自己轉換成備節點進行測試
[1.12]
ifconfig
netstat -tnlp 此時檢查80端口是否啓用
[1.14]
ifconfig lo:0 down
ifconfig eth0 192.168.1.14/24
echo 0 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/eth0/arp_announce
echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
#mkdir /web/htdocs -pv 建立一個文件夾 並且共享出去
vim /etc/exports
/web/htdocs 192.168.1.0/255.255.255.0(ro)
vim /web/htdocs/index.html
nfs server
#service nfs start
service portmap restart
[1.11]
#ssh node2 '/etc/init.d/heratbeat stop'
#service hearbeat stop
#setenforce 0
#mount 192.168.1.14:/web/htdocs /mnt
#ls /mnt
#umount /mnt
#vim /etc/ha.d/haresources
node1.mylinux.com IPaddr::192.168.1.8/24/eth0
Filesystem::192.168.1.14:/web/htdocs::/var/www/html::nfs httpd
#scp haresources node2:/etc/ha.d/
#sercice heartbeat start
#ssh node2 'service heartbeat start'
#/usr/lib/heartbeat/hb_standby讓主節點成爲備節點進行測試