為了避免單一故障點,非常有必要對高可用性叢集設定備援通訊路徑。對於 DLM 通訊也是如此。如果出於任何原因無法使用網路結合 (連結彙總控制通訊協定,LACP),則我們強烈建議在 Corosync 中定義備援通訊通道 (另一個環)。如需詳細資料,請參閱程序 4.3 「定義備援通訊通道」。
然後,DLM 會根據 /etc/corosync/corosync.conf
中的組態,確定是要使用 TCP 還是 SCTP 通訊協定來進行通訊︰
如果 none
(表示停用備援環組態),則 DLM 會自動使用 TCP。但是,如果未定義備援通訊通道,在 TCP 連結中斷的情況下,DLM 通訊將會失敗。
如果 passive
(一般會如此設定),並且在 /etc/corosync/corosync.conf
中正確設定了另一個通訊環,則 DLM 會自動使用 SCTP。在此情況下,DLM 訊息傳送會獲得 SCTP 提供的備援功能。
DLM 使用 Pacemaker 提供的並在使用者空間中執行的叢集成員資格服務。因此,需要將 DLM 設定為叢集中每個節點上都存在的複製品資源。
由於 OCFS2、GFS2、Cluster MD 和 cLVM 全部都使用 DLM,因此為 DLM 設定一個資源便已足夠。由於 DLM 資源在叢集中的所有節點上執行,因此將其設定為複製品資源。
如果您的環境中包含 OCFS2 與 cLVM,只需為 OCFS2 與 cLVM 設定一個 DLM 資源就足夠了。
該組態由一個包含數個基本資源的基礎群組與一個基礎複製品構成。之後,基礎群組和基礎複製品便可用於各種情境 (例如,用於 OCFS2 和 cLVM)。您只需根據需要新增相應的基本資源來延伸基礎群組。由於基礎群組有內部並存與順序條件約束,因此您不需要指定多個個別群組、複製品及其相依項,這使總體設定程序更為簡便。
對叢集中的某個節點執行以下步驟︰
啟動外圍程序,並以 root
或同等身分登入。
執行 crm
configure
。
輸入以下指令以建立 DLM 的基本資源︰
crm(live)configure#
primitive
dlm ocf:pacemaker:controld \ op monitor interval="60" timeout="60"
為 DLM 資源和其他儲存相關的資源建立一個基礎群組︰
crm(live)configure#
group
g-storage dlm
複製 g-storage
群組,以使其在所有節點上執行︰
crm(live)configure#
clone
cl-storage g-storage \ meta interleave=true target-role=Started
使用 show
檢閱所做的變更。
如果所有設定都正確,請使用 commit
提交變更,然後使用 exit
離開 crm 即時組態。
系統不支援未啟用 STONITH 的叢集。如果您出於測試或疑難排解目的將全域叢集選項 stonith-enabled
設定為 false
,則 DLM 資源以及依賴於它的所有服務 (例如 cLVM、GFS2 和 OCFS2) 將無法啟動。