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