——————— 高可用集羣的簡單配置 ————————
地址規劃
主節點:HA1 172.16.21.13 hostname node2.magedu.com
備節點: HA2 172.16.21.14 hostname node1.magedu.com
VIP 172.16.21.9
前提工作
1,配置主機名 hostname
保證uname -n 的主機名一致
#hostname node1.magedu.com (vim /etc/sysconfig/network)
2,雙機互信通信 (HA1和HA2都做相同的設置,以實現雙機的互信)
#ssh-keygen -t rsa -f ~/.ssh/id_rsa -P '' 生成密鑰輸出文件存放在id下
#ssh-copy-id -i .ssh/id_rsa.pub root@(ip)
3,主機名稱解析
#vim /etc/hosts 添加兩臺主機的IP 和主機名稱,還有別名
4,時間同步(爲了監控到對方的心跳信息)
#service ntpd stop
#chkconfig ntpd off
#ntpdate 172.16.0.1
爲了保證以後時間能一直的同步(很粗暴,設定5分鐘同步一次)
(#crontab -e 添加*/5* * * * /sbin/ntpdate 172.16.0.1 &> /dev/null)
安裝相關的軟件
(可以到相關的網站去下載需要的軟件包,因爲有很多依賴關係,所以需要下載多個)
heartbeat-2.1.4-9.el5.i386.rpm, heartbeat-gui-2.1.4-9.el5.i386.rpm
heartbeat-stonith-2.1.4-10.el5.i386.rpm
heartbeat-pils-2.1.4-10.el5.i386.rpm libnet-1.1.4-3.el5.i386.rpm
perl-MailTools-1.77-1.el5.noarch.rpm
啓動heartbeat,並對其做出相關的配置
首先爲其提供配置文件 (路徑在/etc/ha.d)
(/usr/share/doc/heartbeat-2.1.4/下有三種配置文件的樣例)
ha.d#cp -p 600 /usr/share/doc/heartbeat-2.1.4/{authkeys,ha.cf,haresources} ./
指定密碼使用哪種認證機制:
ha.d#vim authkeys
得到隨機數 將其加入到authkeys中
# dd if=/dev/random count=1 bs=512 | md5sum
編輯主配置文件
ha.d#vim ha.cf
在其中修改以太網發送信息是通過廣播(心跳信息的傳遞方式)
定義節點,將集羣中的節點都做出定義
ping 網關 目的是驗證對方是否down掉沒
安裝web服務
編輯配置定義資源
ha.d#vim haresources
格式: #node1 10.0.0.170 Filesystem::/dev/sda1::/data1::ext2
和主節點名稱一致uname -n 作爲主節點的節點名稱
將配置好的密鑰和資源文件複製到做備用節點的主機上
#scp -p authkeys haresources ha.cf node2:/etc/ha.d/
在主節點(HA1)上啓動自身的heartbeat ,並且啓動備節點的heartbeat
實驗結果
通過以下了兩個場景,我們可以對高可用集羣的heartbeat v1 做進一步的瞭解
場景1:主節點出現故障,備節點取代主節點工作
期望的效果:能顯示HA2的httpd的網頁(node2.magedu.com)
heartdbeat下有個測試腳本,可以完成上面的場景
#cd /usr/lib/heartbeat
它下面有個腳本hb_standby (將自己轉換成備節點)
#./hb_standby
ifconfig查看,會發現eth0:0在之前的備節點上
期望效果顯示
場景2: 再添加一個節點,讓其提供文件系統,讓主備節點同時掛載它
期望效果:提供相同的網頁
在做共享文件系統NFS的節點上做如下配置
創建共享的文件目錄
#mkdir -pv /web/htdocs
編輯共享的目錄和共享的網段
#vim /etc/exports
/web/htdocs 172.16.0.0/255.255.0.0(ro)
檢查下是否能正常的訪問
#showmount -e 172.16.21.8
把主備節點的heratbeat停了
在主配置文件的資源管理中做出配置
node1.magedu.com IPaddr::172.16.21.9/16/eth0 Filesystem::172.16.21.8:/web/htdocs::/var/www/html::nfs httpd
並將配置好的複製到備節點上
啓動服務,查看結果
# service heartbeat start
# ssh node2 'service heartbeat start'