基於 SUSE® Linux Enterprise High Availability Extension 的 Geo 叢集可視為「覆蓋」叢集,其中每個叢集站點相當於傳統叢集中的一個叢集節點。覆蓋叢集由投票間叢集票證管理員 (以下簡稱「投票間」) 管理。Geo 叢集中的各方都會執行一個服務,即 boothd
。它會與其餘站點上執行的投票間精靈連接,並交換连接性詳細資料。投票間依賴稱為「票證」的叢集物件來保持叢集資源在各站點之間的高度可用性。票證可授予在特定叢集站台上執行特定資源的權限。投票間可保證每個票證一次只會授予給一個站點。
如果兩個投票間例項之間的通訊中斷,則可能是因為叢集站點之間的網路發生故障,或其中一個叢集站點中斷運作。在此情況下,您需要使用一個額外的例項 (第三個叢集站點或仲裁方
) 來就各決策 (例如在站點間進行資源的容錯移轉) 達成一致意見。仲裁方是一部以特殊模式執行投票間例項的機器 (不屬於叢集)。每個 Geo 叢集都可以有一或多個仲裁方。
如需用於 Geo 叢集的概念、元件和票證管理的更多詳細資料,請參閱Chapter 2, Conceptual Overview。
下面,我們將會設定一個包含兩個叢集站點和一個仲裁方的基本 Geo 叢集︰
我們假設叢集站點名為 amsterdam
和 berlin
。
我們假設每個站點分別包含兩個節點。節點 alice
和 bob
屬於叢集 amsterdam
。節點 charlie
和 doro
屬於叢集 berlin
。
站點 amsterdam
將分配到以下虛擬 IP 位址︰192.168.201.100
。
站點 berlin
將分配到以下虛擬 IP 位址︰192.168.202.100
。
我們假設仲裁方的 IP 位址為 192.168.203.100
。
繼續操作前,請確認已符合以下要求︰
您至少擁有兩個要合併到 Geo 叢集中的現有叢集 (如果需要先設定兩個叢集,請依照安裝與設定快速入門中的說明操作。)
每個叢集都有一個有意義的名稱,該名稱可反映其位置,定義於 /etc/corosync/corosync.conf
中。
您已安裝不屬於任何現有叢集且將當成仲裁方使用的第三部機器。
有關各項的詳細要求,另請參閱第 3 節 「要求」。
將要加入 Geo 叢集的所有機器 (叢集節點和仲裁方) 上都已安裝以下軟體︰
SUSE® Linux Enterprise Server 12 SP5
SUSE Linux Enterprise High Availability Extension 12 SP5
Geo Clustering for SUSE Linux Enterprise High Availability Extension 12 SP5
要用於每個叢集站點的虛擬 IP 在 Geo 叢集中必須可存取。
必須可以透過每個投票間例項上的一個 UDP 和 TCP 埠連接網站。這意味著,必須相應地設定通訊雙方之間的所有防火牆與 IPsec 通道。
可能需要做出其他有關開啟更多連接埠的設定決策 (例如,為 DRBD 或資料庫複製開啟連接埠)。
所有網站上的所有叢集節點都應該同步到叢集外部的 NTP 伺服器。如需詳細資訊,請參閱 https://documentation.suse.com/sles-12/html/SLES-all/cha-netz-xntp.html。
如果節點未同步化,將很難分析記錄檔案和叢集報告。
在 Geo 叢集中使用奇數數量的成員。這樣可確保在網路連接中斷時仍存有大部分站點 (從而避免出現電腦分裂情況)。如果叢集站點的數量為偶數,請使用仲裁方。
每個站點上的叢集都有一個有意義的名稱,例如 amsterdam
和 berlin
。
已在相應 /etc/corosync/corosync.conf
檔案中定義每個網站的叢集名稱。
totem { [...] cluster_name: amsterdam }
您可以手動完成此操作 (即編輯 /etc/corosync/corosync.conf
),也可以透過 YaST 叢集模組進行 (即切換到 類別,然後定義 )。隨後,請停止 pacemaker
服務然後再將其啟動,以使變更生效︰
root #
systemctl
stop pacemakerroot #
systemctl
start pacemaker
使用 ha-cluster-geo-init
可將一個叢集變為 Geo 叢集的第一個站點。該程序檔會獲取某些參數 (例如叢集的名稱、仲裁方,以及一或多個票證) 並依據它們建立 /etc/booth/booth.conf
。它會將投票間組態複製到目前叢集站點上的所有節點。它還會為目前叢集站點上的投票間設定所需的叢集資源。
如需詳細資料,請參閱第 6 節 「設定 Geo 叢集的第一個站點」。
使用 ha-cluster-geo-join
可新增目前的叢集至現有的 Geo 叢集中。該程序檔會從現有的叢集站點複製投票間組態,並將其寫入到目前叢集站點上所有節點的 /etc/booth/booth.conf
中。它還會為目前叢集站點上的投票間設定所需的叢集資源。
如需詳細資料,請參閱第 7 節 「新增另一個站點至 Geo 叢集」。
使用 ha-cluster-geo-init-arbitrator
可將目前的機器變為 Geo 叢集的仲裁方。該程序檔會從現有的叢集站點複製投票間組態,並將其寫入 /etc/booth/booth.conf
。
如需詳細資料,請參閱第 8 節 「新增仲裁方」。
所有開機程序檔都會記錄至 /var/log/ha-cluster-bootstrap.log
。如需開機程序的任何詳細資料,請檢查記錄檔案。在開機程序中設定的任何選項都可在稍後加以修改 (透過修改投票間設定、修改資源等)。如需詳細資料,請參閱Geo Clustering Guide。
安裝單獨的延伸 Geo Clustering for SUSE Linux Enterprise High Availability Extension,即可不受距離限制使用高可用性叢集。
若要設定 Geo 叢集,您需要擁有以下安裝模式中包含的套件︰
High Availability
Geo Clustering for High Availability
僅當您已在 SUSE Customer Center (或本地註冊伺服器) 中註冊了系統,並且已新增相應的產品通道或安裝媒體做為延伸時,這兩個模式才可用。如需如何安裝延伸的相關資訊,請參閱《SUSE Linux Enterprise 12 SP5 部署指南》︰https://documentation.suse.com/sles-12/html/SLES-all/cha-add-ons.html。
若要透過指令行從這兩個模式安裝套件,請使用 Zypper:
root #
zypper
install -t pattern ha_sles ha_geo
或者,使用 YaST 在圖形介面中安裝:
以 root
使用者身分啟動 YaST,然後選取 › 。
按一下
› ,然後啟用以下模式:
High Availability
Geo Clustering for High Availability
按一下
開始安裝套件。高可用性和 Geo 叢集所需的軟體套件不會自動複製到叢集節點。
請在要加入 Geo 叢集的所有機器上安裝 SUSE Linux Enterprise Server 12 SP5
以及 High Availability
和 Geo Clustering for High Availability 模式。
您不必在將要加入叢集的所有機器上手動安裝這些套件,而應使用 AutoYaST 複製現有節點。若需詳細資訊,請至 第 3.2 節 「使用 AutoYaST 進行批量安裝和部署」。
不過,必須手動在將要加入 Geo 叢集的所有機器上安裝 Geo 叢集延伸。目前尚不支援使用 AutoYaST 安裝 Geo Clustering for SUSE Linux Enterprise High Availability。
使用 ha-cluster-geo-init
程序檔可將現有叢集變為 Geo 叢集的第一個站點。
ha-cluster-geo-init
設定第一個站點 (amsterdam
) #
為每個叢集站點定義一個虛擬 IP,以便存取該站點。在此,我們假設使用 192.168.201.100
和 192.168.202.100
。您並不需要將虛擬 IP 設定為叢集資源。此工作將由開機程序檔完成。
至少定義一個票證的名稱,該票證將用於授予在叢集站點上執行特定資源的權限。使用一個有意義的名稱來反映將依賴於該票證的資源,例如 ticket-nfs
。開機程序檔只需要票證名稱,您可以稍後再依第 10 節 「後續步驟」所述定義其餘的詳細資料 (資源的票證相依項)。
登入現有叢集的節點 (例如,叢集 amsterdam
的節點 alice
)。
執行 ha-cluster-geo-init
。例如,使用以下選項︰
root #
ha-cluster-geo-init
\ --clusters1 "amsterdam=192.168.201.100 berlin=192.168.202.100" \ --tickets2 ticket-nfs \ --arbitrator3 192.168.203.100
該開機程序檔會建立投票間組態檔案,並在叢集站點間同步該檔案。它還會建立投票間所需的的基本叢集資源。執行程序 2 的步驟 4 將建立以下投票間組態和叢集資源︰
ha-cluster-geo-init
建立的投票間組態 ## The booth configuration file is "/etc/booth/booth.conf". You need to # prepare the same booth configuration file on each arbitrator and # each node in the cluster sites where the booth daemon can be launched. # "transport" means which transport layer booth daemon will use. # Currently only "UDP" is supported. transport="UDP" port="9929" arbitrator="192.168.203.100" site="192.168.201.100" site="192.168.202.100" authfile="/etc/booth/authkey" ticket="ticket-nfs" expire="600"
ha-cluster-geo-init
建立的叢集資源 #primitive1 booth-ip IPaddr2 \ params rule #cluster-name eq amsterdam ip=192.168.201.100 \ params rule #cluster-name eq berlin ip=192.168.202.100 \ primitive2 booth-site ocf:pacemaker:booth-site \ meta resource-stickiness=INFINITY \ params config=booth \ op monitor interval=10s group3 g-booth booth-ip booth-site \ meta target-role=Stopped4
每個叢集站點的虛擬 IP 位址。必須為投票間精靈提供該虛擬 IP 位址,因為其需要每個叢集站點上都有永久的 IP 位址。 | |
投票間精靈的基本資源。它會與其餘叢集站點上的投票間精靈通訊。在站點的任何節點上均可啟動該精靈,但若要使資源位於同一個節點上 (如果可行),則需將資源粘性設定為 | |
兩個基本資源的叢集資源群組。如此設定後,便可透過每個投票間精靈的 IP 位址來使用該精靈,而無需考慮執行精靈的節點為何。 | |
該叢集資源群組預設不會啟動。驗證叢集資源的組態 (並新增完成設定所需的資源) 後,您需要啟動該資源群組。如需詳細資料,請參閱完成 Geo 叢集設定所需的步驟。 |
啟始化 Geo 叢集的第一個站點後,請依程序 3 所述使用 ha-cluster-geo-join
新增第二個叢集。該程序檔需要透過 SSH 存取已設定的叢集站點,並且會將目前的叢集新增至 Geo 叢集。
ha-cluster-geo-join
新增第二個站點 (berlin
) #
登入要新增的叢集站點的某個節點 (例如,叢集 berlin
的節點 charlie
)。
執行 ha-cluster-geo-join
指令。例如︰
root #
ha-cluster-geo-join
\ --cluster-node1 192.168.201.100\ --clusters2 "amsterdam=192.168.201.100 berlin=192.168.202.100"
ha-cluster-geo-join
程序檔會從 1 複製投票間組態,請參閱範例 1。此外,它還會建立投票間所需的叢集資源 (請參閱範例 2)。
使用 ha-cluster-geo-init
和 ha-cluster-geo-join
設定 Geo 叢集的所有站點後,請使用 ha-cluster-geo-init-arbitrator
設定仲裁方。
ha-cluster-geo-init-arbitrator
設定仲裁方 #登入要當成仲裁方使用的機器。
執行以下指令。例如︰
root #
ha-cluster-geo-init-arbitrator
--cluster-node1 192.168.201.100
指定要從何處複製投票間組態。請使用已設定的 Geo 叢集站點中某節點的 IP 位址或主機名稱。或者,使用現有叢集站點的虛擬 IP 位址 (如本範例中所示)。 |
ha-cluster-geo-init-arbitrator
程序檔會從 1 複製投票間組態,如範例 1 所示。它還會在仲裁方上啟用並啟動投票間服務。因此,一旦叢集站點上也在執行投票間服務,仲裁方便會立即與這些叢集站點上的投票間例項通訊。
若要檢視您已在開機程序中建立的叢集站點及資源與票證,請使用 Hawk2。透過 Hawk2 Web 介面,您可以監控和管理多個 (不相關的) 叢集和 Geo 叢集。
要透過 Hawk5 SUSE Linux Enterprise High Availability Extension 12 SP2。
監控的所有叢集都必須執行如果您之前未在每個叢集節點上以自己的證書 (或官方證書管理中心簽署的證書) 取代 Hawk2 的自行簽署證書,請執行以下操作︰在每個叢集的每個節點上至少登入 Hawk2 一次。驗證證書 (或在瀏覽器中新增一個例外以使警告不再顯示)。否則,Hawk2 將無法連接到叢集。
啟動網頁瀏覽器,並輸入第一個叢集站點 amsterdam
的虛擬 IP。
https://192.168.201.100:7630/
或者,使用 alice
或 bob
的 IP 位址或主機名稱。如果您已使用開機程序檔設定兩個節點,則 hawk
服務在這兩個節點上應當都會執行。
登入 Hawk2 Web 介面。
在左側導覽列中選取
。Hawk2 會顯示目前叢集站點的資源和節點綜覽。此外,它還會顯示已為 Geo 叢集設定的所有
。如需有關此檢視中所用圖示的資訊,請按一下 。amsterdam
) 的 Hawk2 儀表板 #若要新增第二個叢集站點的儀表板,請按一下
。
輸入用於在berlin
。
輸入其中一個叢集節點 (在本例中為 charlie
或 doro
) 的完全合格的主機名稱。
按一下
。Hawk2 會為新增的叢集站點顯示另一個索引標籤,其中會列出該叢集站點的節點和資源綜覽。若要檢視叢集站點的更多詳細資料或管理叢集站點,請切換到站點的索引標籤並按一下鎖鏈圖示。
Hawk2 會在新的瀏覽器視窗或索引標籤中開啟此站點的
檢視。在此檢視中,您可以管理 Geo 叢集的這部分內容。使用 Geo 叢集開機程序檔,您可以快速地設定可用於測試用途的基本 Geo 叢集。不過,若要將建立的 Geo 叢集移轉到正常運作的可用於生產環境的 Geo 叢集,則需執行更多步驟 (請參閱完成 Geo 叢集設定所需的步驟)。
開機程序完成後,仲裁方投票間服務還不能與叢集站點上的投票間服務通訊,因為這些服務預設不會啟動。
每個叢集站點的投票間服務都由投票間資源群組 g-booth
管理 (請參閱範例 2 「ha-cluster-geo-init
建立的叢集資源」)。若要為每個網站啟動一個投票間服務例項,請在每個叢集網站上啟動相應的投票間資源群組。這樣可讓所有投票間例項互相通訊。
若要使資源依賴於您已在 Geo 叢集開機程序中建立的票證,請設定條件約束。請為每個條件約束設定 loss-policy
,它用於定義當從叢集站點撤銷票證時相應資源應發生的情況。
如需詳細資料,請參閱Chapter 6, Configuring Cluster Resources and Constraints。
在投票間可以管理 Geo 叢集中的特定票證前,您首先需要手動將該票證授予給站點。您可以使用投票間用戶端指令行工具或 Hawk2 授予票證。
如需詳細資料,請參閱Chapter 8, Managing Geo Clusters。
開機程序檔會在兩個叢集站點上建立相同的投票間資源,並在所有站點 (包括仲裁方) 上建立相同的投票間組態檔案。如果您延伸 Geo 叢集設定 (以便移轉到生產環境),可能需要調整投票間組態並變更與投票間有關的叢集資源的組態。之後,您需要將變更同步到 Geo 叢集的其餘站點才能使其生效。
若要將投票間組態中的變更同步到所有叢集站點 (包括仲裁方),請使用 Csync2。若需詳細資訊,請至 Chapter 5, Synchronizing Configuration Files Across All Sites and Arbitrators。
CIB (叢集資訊資料庫) 不會跨 Geo 叢集的叢集站點自動同步。這意味著需要將所有叢集站點上必需的資源組態中的所有變更手動傳輸到其餘站點。要執行此操作,請標記相應資源,從目前 CIB 輸出這些資源並將其輸入到其餘叢集站點上的 CIB。如需詳細資料,請參閱Section 6.4, “Transferring the Resource Configuration to Other Cluster Sites”。
https://documentation.suse.com/sle-ha-12/ 上提供了更多有關此產品的文件。其中包括完整的《Geo Clustering Guide
》(Geo 叢集指南)。請參閱該指南,瞭解更多組態與管理任務。
「SUSE Best Practices
」(SUSE 最佳實務) 系列中發佈了詳細介紹如何透過 DRBD 跨 Geo 叢集進行資料複製的文件:https://documentation.suse.com/sbp/all/html/SBP-DRBD/index.html。
版權所有 © 2006– 2023 SUSE LLC 和貢獻者。保留所有權利。
根據 GNU 自由文件授權 (GNU Free Documentation License) 1.2 版或 1.3 版 (自由選擇),使用者可以複製、散佈與/或修改本文件;「恆常章節」為此著作權聲明與授權。「GNU 自由文件授權」一節中包含 1.2 版授權的一份副本。
如需 SUSE 商標,請參閱 http://www.suse.com/company/legal/。所有其他協力廠商的商標所有權分屬其各自的公司。®、™ 等商標符號表示 SUSE 及其關係企業的商標。星號 (*) 表示協力廠商的商標。
本手冊中所有資訊在編輯時,都已全力注意各項細節。但這不保證百分之百的正確性。因此,SUSE LLC 及其附屬公司、作者或譯者都不需對任何錯誤或造成的結果負責。