設置虛擬集群可能是一個復雜、耗時的過程,因此起步的最佳方式是從細微處著手。
首先需要有兩個Red Hat Enterprise Linux或CentOS 7節(jié)點,并配置正確的轉(zhuǎn)發(fā)及反向域名系統(tǒng),由于Red Hat 6及7之間有些變化,顯著降低了集群管理的復雜度。
集群設置主要依靠兩種技術(shù):Pacemaker 和 Corosync。Pacemaker運行集群管理端,Corosync管理更低級別的集群項目以確保連通性。
使用如下命令同時安裝Pacemaker 和 Corosync:
yum install –y pcs fence-agents-all
該命令將會下載配置集群所需要的所有依賴包,請注意必須在兩個節(jié)點上執(zhí)行上述命令。
你還需要增加一個防火墻規(guī)則以允許通過必需的流量。只需要運行如下命令:
firewall-cmd --permanent --add-service=high-availability
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
啟動集群設備
接下來的步驟是啟用并啟動集群服務。需要運行如下命令:
systemctl enable pcsd.service
systemctl start pcsd.service
第一行命令在啟動時啟用集群服務,第二行命令在當前會話啟動集群服務。
圖A 啟用并開啟集群服務
如果你有興趣,可以查看/var/logs/cluster/目錄下日志確認發(fā)生了什么。此時,我們已經(jīng)啟動了集群服務,但還沒有真正構(gòu)建集群設置。
采用最新版本的RHEL或CentOS,可以在命令行下使用pcs命令——“Pacemaker/Corosync配置系統(tǒng)”的簡稱——直接進行配置,這比之前的安裝過程更簡單。
安裝完集群配置后,創(chuàng)建了一個名為hacluster的用戶管理虛擬集群。為了能夠使用該賬號,必須更改密碼,因此在兩個節(jié)點上使用如下命令重置密碼:passwd hacluster
管理虛擬集群
完成上述配置后,就可以開始管理虛擬集群與節(jié)點了。第一個步驟是授權(quán)包含在虛擬集群中的節(jié)點。命令如下:pcs cluster auth node1 node2
如果一切按計劃進行,屏幕看起來應該與圖B類似。
圖B 授權(quán)集群節(jié)點
創(chuàng)建集群資源
下一個步驟是創(chuàng)建集群資源??梢允褂胮cs cluster setup命令創(chuàng)建集群資源:pcs cluster setup --start --name myapp node1 node2
此時,集群資源控制器將刷新現(xiàn)有配置,同步新配置數(shù)據(jù)并構(gòu)建一個包括兩個指定節(jié)點的新配置。接下來就是使用如下命令啟用虛擬集群: pcs cluster enable --all
結(jié)果應該會顯示兩個節(jié)點已經(jīng)啟用了。為檢查整個集群的狀態(tài),可以使用命令pcs cluster status,該命令將顯示當前集群狀態(tài)的概要信息。
圖C 檢查當前集群狀態(tài)
理解共享存儲的作用
在處理虛擬集群節(jié)點時需要牢記的一個重要事項是確保已關(guān)閉了hypervisor級的文件鎖定系統(tǒng)。不這樣做可能會帶來很多問題,包括導致有問題的磁盤變?yōu)橹蛔x的。應該在操作系統(tǒng)級完成鎖定。為覆蓋該設置,請檢查hypervisor文檔。
在本示例中,我們僅設置相關(guān)配置。我們需要做的一件事是對服務器如何決定虛擬集群內(nèi)什么是“活的”以及什么是“死的”進行管理。這可以通過稱之為fencing的進程完成。當節(jié)點沒有完全出故障并出現(xiàn)問題時,F(xiàn)encing允許每個節(jié)點停止其他節(jié)點以保持集群的完整性。
沒有有效的fencing配置,客戶端將無法啟動。fencing命令是pcs stonith。stonith是“關(guān)閉其他節(jié)點”首字母的縮略詞,是一個能夠關(guān)閉未在正常運行的節(jié)點的Linux服務。
有一些fence方法可用,但我們在示例中使用的是內(nèi)置的虛擬fencing方法。在任何一個節(jié)點上運行如下命令:
pcs stonith create newfence fence_virt pcmk_host_list=f1
此時,我們可以使用如下命令重新啟用集群組件:pcs cluster start --all
如果你使用的是pcs status命令,應該顯示正在正常運行的服務。
啟用虛擬IP
完成上述配置后,我們需要啟用虛擬IP。虛擬IP是沒有物理連接的地址。其用意是充當虛擬集群提供服務的容錯前端。例如,如果一個節(jié)點出故障,不需要任何手動配置或者明顯的停機時間,所有的流量將會路由到另一個集群節(jié)點。
根據(jù)需要取代如下命令中的IP地址,然后執(zhí)行:
pcs resource create Cluster_VIP ocf:heartbeat:IPaddr2 ip=192.168.0.100 cidr_netmask=24 op monitor interval=20s
集群現(xiàn)在應該處于活動狀態(tài)。在開始使用集群前你需要增加集群資源。