通過LAMP組合,基於heartbeat v2 crm實現HA
Heartbeat的定義
Heartbeat 專案是 Linux-HA
工程的一個組成部分,也是目前開源HA專案中最成功的一個例子,Linux-HA的全稱是High-Availability
Linux,這個開源專案的目標是:通過社群開發者的共同努力,提供一個增強linux可靠性(reliability)、可用性
(availability)和可服務性(serviceability)(RAS)的群集解決方案,它實現了一個高可用集群系統。心跳服務和叢集通訊是
高可用叢集的兩個關鍵元件,在 Heartbeat 專案裡,由 heartbeat 模組實現了這兩個功能。
二、Heartbeat的版本與元件
1.Heartbeat v1.x與v2.x的元件
heartbeat:節點間通訊檢測模組
ha-logd:叢集事件日誌服務
CCM(Consensus Cluster Membership):叢集成員一致性管理模組
LRM (Local Resource Manager):本地資源管理模組
Stonith Daemon: 使出現問題的節點從叢集環境中脫離或重啟
CRM(Cluster resource management):叢集資源管理模組
Cluster policy engine: 叢集策略引擎
Cluster transition engine:叢集轉移引擎(也叫策略執行引擎)
Heartbeat v1.x與Heartbeat v2.x區別:在Heartbeat
v2.x中增加了一個新的叢集資源管理器crm,在Heartbeat v1.x中的叢集資源管理器是haresource,Heartbeat
v2.x中為了相容v1.x保留了haresource,但同時又新增了一個功能更強大的crm資源管理器。crm管理方式有,一種是基於命令列
crmsh,一種是基於圖形介面的hb_gui。
Heartbeat:將原來的訊息通訊層獨立為heartbeat專案,新的heartbeat只負責維護叢集各節點的資訊以及它們之前通訊。
Cluster Glue:相當於一箇中間層,它用來將heartbeat和pacemaker關聯起來,主要包含2個部分,即為LRM和STONITH。
Resource Agent:用來控制服務啟停,監控服務狀態的指令碼集合,這些指令碼將被LRM呼叫從而實現各種資源啟動、停止、監控等等。
Pacemaker:也就是Cluster Resource Manager(叢集資源管理器,簡稱CRM),用來管理整個HA的控制中心,客戶端通過pacemaker來配置管理監控整個叢集。
作業:通過LAMP組合,基於heartbeat v2 crm實現HA。
1、地址規劃
node1.test.com192.168.77.101 node2.test.com192.168.77.30 vip192.168.77.200
2、主機名解析
[[email protected]~]#uname-n node1.test.com [[email protected]~]#cat/etc/hosts 127.0.0.1localhostlocalhost.localdomainlocalhost4localhost4.localdomain4 ::1localhostlocalhost.localdomainlocalhost6localhost6.localdomain6 192.168.77.101node1.test.comnode1 192.168.77.130node2.test.comnode2 [[email protected]~]#uname-n node2.test.com [[email protected]~]#cat/etc/hosts 127.0.0.1localhostlocalhost.localdomainlocalhost4localhost4.localdomain4 ::1localhostlocalhost.localdomainlocalhost6localhost6.localdomain6 192.168.77.101node1.test.comnode1 192.168.77.130node2.test.comnode2
3、配置雙方互信
[[email protected]~]#ssh-keygen-trsa-f~/.ssh/id_rsa-P'' [[email protected]~]#ssh-copy-id-i.ssh/id_rsa.pub[email protected]om [[email protected]~]#ssh-keygen-trsa-f~/.ssh/id_rsa-P'' [[email protected]~]#ssh-copy-id-i.ssh/id_rsa.pub[email protected]
4、配置時間同步
#yum-yinstallntpdate #ntpdatetime.windows.com
5、安裝lamp
[[email protected]~]#yuminstallhttpmysql-serverphpphp-mysql
6、安裝heartbeat相關軟體包
[[email protected]~]#yuminstallnet-snmp-libslibnetPyXML [[email protected]~]#rpm-ivhheartbeat-2.1.4-12.el6.x86_64.rpmheartbeat-pils-2.1.4-12.el6.x86_64.rpmheartbeat-stonith-2.1.4-12.el6.x86_64.rpm
7、配置heartbeat
複製ha.cf,authkeys,haresources到/etc/ha.d下
[[email protected]~]#cp/usr/share/doc/heartbeat-3.0.4/{ha.cf,authkeys,haresources}/etc/ha.d/
編輯authkeys檔案
[[email protected]~]#opensslrand-hex8>>authkeys#生成金鑰追加到authkeys檔案中 [[email protected]~]#viauthkeys#修改為以下配置,使用sha1加密 auth2 #1crc #2sha1HI! #3md5Hello! 2sha1d0071be771be703c
編輯ha.cf主配置檔案
[[email protected]~]#grep-v'^#'ha.cf|sed'/^$/d' logfacilitylocal0 mcasteth1225.0.0.169410#修改心跳資訊的傳播方式|組播 auto_failbackon nodenode1.test.com#配置叢集中的節點數 nodenode2.test.com#配置叢集中的節點數
編輯haresources配置檔案
[[email protected]~]#grep-v"#"haresources node1.test.com192.168.77.200/24/eth1httpd
複製配置檔案導node2
[[email protected]~]#scp/etc/ha.d/{ha.cf,haresources,authkeys}[email protected]:/etc/ha.d/
五、節點提供httpd服務
編輯html
[[email protected]~]#echo"<h1>node1.test.com</h1>">/var/www/html/index.html
啟動httpd
[[email protected]~]#servicehttpdstart
瀏覽node1
node2關閉IPTABELS
[[email protected]~]#getenforce Disabled [[email protected]~]#serviceiptablesstop iptables:將鏈設定為政策ACCEPT:natmanglefilter[確定] iptables:清除防火牆規則:[確定] iptables:正在解除安裝模組:[確定] [[email protected]~]#
訪問node2節點
啟動heartbeat服務
[[email protected]~]#/etc/init.d/heartbeatstart StartingHigh-Availabilityservices:INFO:Resourceisstopped Done.
檢視vip
[[email protected]~]#ipaddr eth1:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu1500qdiscpfifo_faststateUPqlen1000 link/ether00:0c:29:c7:14:97brdff:ff:ff:ff:ff:ff inet192.168.77.101/24brd192.168.0.255scopeglobaleth1 inet192.168.77.200/24scopeglobaleth1
檢視httpd服務是否被heartbeat接管 [[email protected]~]#netstat-tnlpu|grephttpd2tcp00:::80:::*LISTEN2140/httpd
瀏覽器測試
停止node1,httpd後測試
轉載於:https://blog.51cto.com/blackhuuu/1705945