corosync與pacemaker實現高可用性羣集服務器

Corosync簡介:
corosync在傳遞信息的時候能夠經過一個簡單的配置文件來定義信息傳遞的方式和協議等。它是一個新興的軟件,2008年推出,但其實它並非一個真正意義上的新軟件,在2002年的時候有一個項目Openais , 它因爲過大,分裂爲兩個子項目,其中能夠實現HA心跳信息傳輸的功能就是Corosync ,它的代碼60%左右來源於Openais. Corosync能夠提供一個完整的HA功能,可是要實現更多,更復雜的功能,那就須要使用Openais了。Corosync是將來的發展方向。在之後的新項目裏,通常採用Corosync,而hb_gui能夠提供很好的HA管理功能,能夠實現圖形化的管理。另外相關的圖形化有RHCS的套件luci+ricci。
Pacemaker簡介:
Pacemaker是一個集羣管理器。它利用首選集羣基礎設施(OpenAIS 或heartbeat)提供的消息和成員能力,由輔助節點和系統進行故障檢測和回收,實現性羣集服務(亦稱資源)的高可用性。 它能夠作幾乎任何規模的集羣,並帶有一個強大的依賴模式,讓管理員可以準確地表達的羣集資源之間的關係(包括順序和位置)。幾乎任何能夠編寫的腳本,均可以做爲管理起搏器集羣的一部分。
試驗目的:
實現corosync+pacemaker進行服務器的高可用性管理
試驗示意圖:
clip_p_w_picpath002[4]
試驗思路:
第一步:配置ip地址和主機名等相關信息,保持節點之間的一致性。
第二步:安裝corosync相關軟件包
第三步:編輯配置corosync的配置文檔並檢查日誌信息,看是否有錯誤
第四步:添加管理資源webip
第五步:添加web管理資源服務
第六步:添加資源管理組web,將webip與webserver資源添加到該組中捆綁使用。
第七步:當節點失效時,將該節點資源默認轉移到另外一個節點上(不使用DC)
第八步:測試
試驗步驟:
第一步:配置ip地址和主機名等相關信息,保持節點之間的一致性
[root@zhangc ~]# setup【配置節點一ip地址相關參數信息】
clip_p_w_picpath004[4]
[root@zhangc ~]# setup【配置節點二ip地址相關參數信息】
clip_p_w_picpath006[4]
[root@zhangc ~]# vim /etc/hosts【修改主機名稱,而後從新登陸】
clip_p_w_picpath008[4]
[root@zhangc ~]# vim /etc/hosts
[root@zhangc ~]# ssh /etc/hosts 192.168.100.124:/etc/hosts
clip_p_w_picpath010[4]
[root@zhangc ~]# serivce network restart【從新啓動network服務】
第二步:安裝corosync相關軟件包
[root@zhangc ~]# ll【查看rpm安裝包,所需軟件包名稱如圖所示】
clip_p_w_picpath012[4]
[root@zhangc ~]# yum localinstall -y *.rpm –nogpgcheck【安裝corosync服務所需rpm軟件包】
第三步:編輯配置corosync的配置文檔並檢查日誌信息,看是否有錯誤
[root@zhangc ~]# cd /etc/corosync/【進入corosync安裝目錄】
[root@zhangc corosync]# cp -p corosync.conf.example corosync.conf【複製並修改主配置文檔名稱】
[root@zhangc corosync]# vim corosync.conf【編輯主配置文檔,將pacemaker資源管理服務於corosync服務相結合】
clip_p_w_picpath014[4]
[root@zhangc corosync]# corosync-keygen【生成authkey通信鑰匙】
[root@zhangc corosync]# scp -p authkey corosync.conf 192.168.100.124:/etc/corosync/【將生成的通信鑰匙文件與主配置文檔修改信息拷貝到節點zhangc.b.com中】
[root@zhangc corosync]# mkdir /var/log/cluster【分別在兩個節點中建立cluster文件夾】
[root@zhangc corosync]# ssh 192.168.100.124 'mkdir /var/log/cluster'
root@192.168.100.124's password:【輸入節點100.124的管理員密碼】
[root@zhangc corosync]# service corosync start【分別在兩個節點中啓動corosync服務】
[root@zhangc corosync]# ssh 192.168.100.124 'service corosync start'
[root@zhangc corosync]# grep -i -e "corosync cluster engine" -e "configuration file" /var/log/messages【查看corosync cluster的進行和控制文件的日誌信息,-i表示忽略大小寫,-e表示擴展服務的查詢】
[root@zhangc corosync]# ssh 192.168.100.124 'grep -i -e "corosync cluster engine" -e "configuration file" /var/log/messages'
clip_p_w_picpath016[6]
[root@zhangc corosync]# grep -i totem /var/log/messages【分別查看兩個節點中的心跳信息】
[root@zhangc corosync]# ssh 192.168.100.124 'grep -i totem /var/log/messages'
clip_p_w_picpath018[4]
[root@zhangc corosync]# grep -i error: /var/log/messages
[root@zhangc corosync]# ssh 192.168.100.124 ‘grep -i error: /var/log/messages’
clip_p_w_picpath020[4]
[root@zhangc corosync]# grep -i pcmk_startup /var/log/messages【分別查看兩個節點中pacemaker資源管理服務是否正常運行】
[root@zhangc corosync]# ssh 192.168.100.124 'grep -i pcmk_startup /var/log/messages'
clip_p_w_picpath022[4]
第四步:添加管理資源webip
[root@zhangc corosync]# crm conf【使用crm(corosync manage)添加資源管理ip】
crm(live)configure# primitive webip ocf:heartbeat:IPaddr params ip=192.168.100.100【添加管理資源名稱爲webip】
crm(live)configure# show【查看添加信息】
crm(live)configure# property stonith-enabled=false【將stonith服務關閉掉,上面檢測時日誌信息中檢測到stonish不能使用】
crm(live)configure# commit【提交保存】
crm(live)configure# show【查看相關信息】
clip_p_w_picpath024[4]
crm(live)configure# exit【退出crm】
[root@zhangc ~]# crm status【查看crm狀態,能夠看到添加過的資源管理信息】
clip_p_w_picpath026[4]
[root@zhangc ~]# ifconfig【在該節點上查看管理資源webIp已經被正常添加應用】
clip_p_w_picpath028[4]
[root@zhangc ~]# ssh 192.168.100.124 'ifconfig'【查看另外一個節點上沒有被應用】
clip_p_w_picpath030[4]
第五步:添加web管理資源服務
[root@zhangc ~]# yum install –y httpd【安裝apache服務】
[root@zhangc ~]# echo "zhangc.a.com" >/var/www/html/index.html【建立節點一測試頁面】
[root@zhangc ~]# ssh 192.168.100.124 'echo "zhangc.b.com" >/var/www/html/index.html'【在節點二上建立測試頁面】
[root@zhangc ~]# service httpd status【查看httpd服務狀態是否爲關閉狀態】
[root@zhangc ~]# crm configure
crm(live)configure# primitive webserver lsb:httpd【添加名稱爲webserver的httpd服務】
crm(live)configure# commit【提交修改信息】
clip_p_w_picpath032[4]
第六步:添加資源管理組web,將webip與webserver資源添加到該組中捆綁使用。
[root@zhangc ~]# crm
crm(live)# configure
crm(live)configure# group web webip webserver【將資源添加到組web中】
crm(live)# commit【提交保存添加信息】
clip_p_w_picpath034[4]
[root@zhangc~]service corosync stop【關閉節點一中的corosync服務,節點二並不能自動啓動】
第七步:當節點失效時,將該節點資源默認轉移到另外一個節點上(不使用DC)
crm(live)configure# property no-quorum-policy=ignore【忽略票數】
第八步:測試:
[root@zhangc ~]# service corosync stop【啓動節點一中的corosync服務,web組中的資源被節點二佔用,並正常運行】
clip_p_w_picpath036[4]
[root@zhangc ~]# ssh 192.168.100.124 ‘service corosync stop’
[root@zhangc ~]# service corosync start【啓動節點一中的corosync服務,並關閉掉節點二中的corosync服務,則訪問到節點一】
clip_p_w_picpath038[4]
測試完成
相關文章
相關標籤/搜索