跳至內容跳至頁面導覽:上一頁 [access key p]/下一頁 [access key n]
documentation.suse.com / SUSE Linux Enterprise High Availability Extension 文件 / 管理指南 / 安裝、設定和升級 / 產品綜覽
適用範圍 SUSE Linux Enterprise High Availability Extension 15 SP3

1 產品綜覽

SUSE® Linux Enterprise High Availability Extension 是開放原始碼叢集技術的整合套件。它可讓您實作高度可用的實體和虛擬 Linux 叢集,避免單一故障點。該套裝軟體可確保資料、應用程式和服務等重要網路資源的高可用性及可管理性。因此,可協助您保持業務持續運作,保護資料完整性,並可降低關鍵任務 Linux 工作負載的意外停機時間。

它提供了基本的監控、訊息傳送和叢集資源管理功能,支援個別受管理叢集資源的容錯移轉、錯誤回復和移轉 (負載平衡)。

本章介紹 High Availability Extension 產品的主要功能以及優點。您會看到幾個範例叢集,並瞭解組成叢集的各個元件。最後一節所敘述的是該架構的綜覽,介紹了叢集內的個別架構層和程序。

High Availability Extension 叢集內容中使用的一些常見詞彙,可以在辭彙表中找到相關說明。

1.1 做為延伸提供

High Availability Extension 做為 SUSE Linux Enterprise Server 15 SP3 的延伸提供。安裝 Geo Clustering for SUSE Linux Enterprise High Availability Extension 後,即可不受距離限制使用高可用性叢集。

1.2 主要功能

SUSE® Linux Enterprise High Availability Extension 可協助您確保和管理網路資源的可用性。下面幾節重點介紹了部分主要功能:

1.2.1 各種叢集情境

High Availability Extension 支援以下情境:

  • 主動/主動組態

  • 主動/被動組態:N+1、N+M、N 到 1、N 到 M

  • 混合式實體和虛擬叢集,允許虛擬伺服器與實體伺服器叢集在一起。這能提高服務的可用性和資源的使用率。

  • 本地叢集

  • 城際叢集 (延伸的本地叢集)

  • Geo 叢集 (地理位置分散的叢集)

叢集最多可以包含 32 個 Linux 伺服器。使用 pacemaker_remote 可擴充叢集使其突破此限制,以包含更多 Linux 伺服器。可以使用叢集內的任一伺服器重新啟動同一叢集中之失敗伺服器中的資源 (應用程式、服務、IP 位址和檔案系統)。

1.2.2 靈活性

High Availability Extension 附帶 Corosync 訊息傳送與成員資格層及 Pacemaker 叢集資源管理員。使用 Pacemaker,管理員可持續監控其資源的健康狀況和狀態,並管理相依性。他們可根據高度可設定的規則,自動停止和啟動服務。High Availability Extension 可讓您對叢集量身打造,以包含滿足貴組織需求的特定應用程式和硬體架構。時間相關組態可讓服務在指定時間自動移轉回已修復節點。

1.2.3 儲存和資料複製

使用 High Availability Extension,您可以視需要動態指定和重新指定伺服器儲存。它支援光纖通道或 iSCSI 儲存區域網路 (SAN)。還支援共用磁碟系統,但這些系統並非必要系統。SUSE Linux Enterprise High Availability Extension 還隨附了叢集感知檔案系統 (OCFS2) 和叢集邏輯磁碟區管理員 (叢集 LVM2)。若要複製您的資料,請使用 DRBD* 將高可用性服務的資料自叢集主動節點鏡像複製到待命節點。此外,SUSE Linux Enterprise High Availability Extension 還支援一種用於 Samba 叢集的技術:CTDB (叢集化簡單資料庫,Clustered Trivial Database)。

1.2.4 虛擬化環境支援

SUSE Linux Enterprise High Availability Extension 支援包含實體與虛擬 Linux 伺服器的混合叢集。SUSE Linux Enterprise Server 15 SP3 隨附有 Xen (一種開放原始碼的虛擬化監管程式) 和 KVM (基於核心的虛擬機器,Kernel-based Virtual Machine)。KVM 是一款適用於 Linux 的虛擬化軟體,基於硬體虛擬化延伸。High Availability Extension 中的叢集資源管理員可辨識、監控和管理虛擬伺服器以及實體伺服器上正在執行的服務。叢集可以將訪客系統做為服務進行管理。

1.2.5 本地、城際和 Geo 叢集支援

SUSE Linux Enterprise High Availability Extension 已經過延伸,可支援多種不同的地理分佈情境。Geo Clustering for SUSE Linux Enterprise High Availability Extension 支援地理位置分散的叢集 (Geo 叢集)。

本地叢集

一個位置中的單一叢集 (例如,所有節點位於一個資料中心)。此叢集在各節點之間使用多點傳播或單點傳播進行通訊,並在內部管理容錯移轉。網路延遲可以忽略。一般而言,所有節點對儲存的存取都是同步的。

城際叢集

覆蓋面延伸到多棟大樓或資料中心,並透過光纖通道將所有站台連接起來的單一叢集。此叢集在各節點之間使用多點傳播或單點傳播進行通訊,並在內部管理容錯移轉。網路延遲通常比較短 (距離約為 20 英里時,小於 5 毫秒)。對儲存的複製很頻繁 (鏡像複製或同步複製)。

Geo 叢集 (多站點叢集)

多個地理位置分散的站台,每個站台都有一個本地叢集。這些站台透過 IP 進行通訊。站台間的容錯移轉由一個更高階的實體來調節控制。Geo 叢集需要克服有限網路頻寬與高延遲的問題。儲存是以非同步模式複製。

各叢集節點之間的地理位置相隔越遠,可能干擾叢集所提供服務的高可用性的因素就越多。網路延遲、有限的頻寬和對儲存的存取是遠距離叢集面臨的主要挑戰。

1.2.6 資源代理程式

SUSE Linux Enterprise High Availability Extension 中包含大量資源代辦,用於管理 Apache、IPv4、IPv6 等眾多資源。它還內建有適用於 IBM WebSphere Application Server 等廣受歡迎的協力廠商應用程式的資源代辦。如需產品隨附的 Open Cluster Framework (OCF) 資源代辦綜覽,請依照第 8.1.3 節 「顯示有關 OCF 資源代理程式的資訊」所述使用 crm ra 指令。

1.2.7 簡單易用的管理工具

High Availability Extension 隨附有一組強大的工具。您可使用這些工具進行基本的叢集安裝和設定,並能實現高效的組態設定和管理:

YaST

用於一般系統安裝和管理的圖形使用者介面。使用此使用者介面,可依《安裝與設定快速入門》所述在 SUSE Linux Enterprise Server 的基礎上安裝 High Availability Extension。YaST 在 High Availability Extension 類別中還提供了以下模組,可以幫助您設定叢集或個別元件:

Hawk2

您可以在 Linux 或非 Linux 機器上使用方便使用的 Web 介面來監控和管理高可用性叢集。您可使用 (圖形) 網頁瀏覽器從叢集內外的任何機器存取 Hawk2。因此,即便您使用的只是提供精簡圖形使用者介面的系統,也能完美滿足您的需求。如需詳細資料,請參閱第 7 章 「使用 Hawk2 設定和管理叢集資源

crm 外圍程序

一款功能強大的整合式指令行介面,用於設定資源以及執行所有監控或管理任務。如需詳細資訊,請參閱第 8 章 「設定和管理叢集資源 (指令行)

1.3 優點

High Availability Extension 可讓您最多將 32 部 Linux 伺服器設定到一個高可用性叢集 (HA 叢集) 中。資源可在叢集中的任何節點之間動態切換或移動。資源可以設定為在發生節點故障時自動進行移轉,您也可以手動移動資源以對硬體進行疑難排解或平衡工作負載。

High Availability Extension 利用商用元件提供高可用性。透過將應用程式和操作整合到一個叢集可降低成本。High Availability Extension 還可讓您集中管理整個叢集。您可以調整資源以符合不斷變化的工作負載要求 (即對叢集進行手動負載平衡)。允許具有兩個以上節點的叢集還可透過允許幾個節點共用一個熱備用來節省成本。

它還具有另一個同等重要的優點,就是可以潛在地減少計畫外的服務中斷運作時間,以及為了執行軟體和硬體的維護與升級而進行的計畫內中斷運作時間。

您希望實作叢集的理由包括:

  • 增加可用性

  • 改善效能

  • 降低運作成本

  • 可延展性

  • 災害復原

  • 資料保護

  • 伺服器整合

  • 儲存整合

藉由在共用磁碟子系統上建置 RAID ,可以達到磁碟容錯共用。

下面的案例說明了 High Availability Extension 具備的一些優點。

範例叢集情境

假設您已設定一個含有三個節點的叢集,並在該叢集內的每個節點上都安裝了 Web 伺服器。叢集中的每個節點都代管兩個網站。每個網站上的所有資料、圖形以及網頁內容都儲存在與叢集中的每個節點相連接的共用磁碟子系統上。以下的圖解可以描繪這個設定的可能外觀。

由三部伺服器構成的叢集
圖 1.1︰ 由三部伺服器構成的叢集

正常的叢集操作期間,每個節點都會與叢集中的其他節點保持通訊,並會定期輪詢所有已註冊的資源以偵測是否有故障發生。

假設 Web 伺服器 1 發生硬體或軟體問題,且利用 Web 伺服器 1 進行網際網路存取、收發電子郵件和資訊的使用者失去連接。下圖說明當 Web 伺服器 1 發生故障時,資源移動的情形。

由三部伺服器構成的叢集 (一部伺服器出現故障後)
圖 1.2︰ 由三部伺服器構成的叢集 (一部伺服器出現故障後)

網站 A 將移至 Web 伺服器 2,而網站 B 將移至 Web 伺服器 3。IP 位址和證書也會移至 Web 伺服器 2 和 Web 伺服器 3。

當您進行叢集設定時,可以決定發生故障時每一台 Web 伺服器上代管之網站的移動目的地。在前面的範例中,將網站 A 設定為移至 Web 伺服器 2,而將網站 B 設定為移至 Web 伺服器 3。這樣一來,之前由 Web 伺服器 1 處理的工作負載仍可用,並將在所有正常運行的叢集成員之間平均分散。

Web 伺服器 1 發生故障時,High Availability Extension 軟體執行了以下操作:

  • 偵測到故障並向 STONITH 確認 Web 伺服器 1 確實已停止運行。STONITH 是Shoot The Other Node In The Head(關閉另一個節點) 的首字母縮略字。它是一種關閉行為異常節點的方式,可防止這些節點在叢集中引發問題。

  • 將先前掛接於 Web 伺服器 1 上的共用資料目錄重新掛接於 Web 伺服器 2 和 Web 伺服器 3。

  • 在 Web 伺服器 2 和 Web 伺服器 3 上重新啟動先前於 Web 伺服器 1 上執行的應用程式。

  • 將 IP 位址傳送至 Web 伺服器 2 和 Web 伺服器 3。

在此範例中,容錯移轉程序會快速完成,而使用者也將在數秒內重新獲得存取網站資訊的能力,並且通常無需再次登入。

現在假設 Web 伺服器 1 所發生的問題已經解決,並且它已恢復到正常的操作狀態。此時,網站 A 和網站 B 可以自動錯誤回復 (移回) 到 Web 伺服器 1,也可以保留在現有伺服器上。這取決於您是如何為他們設定資源的。將服務移轉回 Web 伺服器 1 會造成一段時間停機。因此,High Availability Extension 也可讓您選擇延遲移轉,等到只會產生短暫服務中斷或不會產生服務中斷時再進行移轉。兩種備選方法各有優缺點。

High Availability Extension 還提供了資源移轉功能。您可以根據系統管理需要,將應用程式、網站等移轉至叢集中的其他伺服器。

例如,您可以手動將網站 A 或網站 B 從 Web 伺服器 1 移至叢集中的任一其他伺服器。此操作的使用案例包括,對 Web 伺服器 1 進行升級或執行排程維護,或者提高網站的效能或存取性。

1.4 叢集組態:儲存

具有 High Availability Extension 的叢集組態不一定會包含共用磁碟子系統。共用磁碟子系統可以透過高速光纖通道卡、纜線和交換器進行連接,也可設定為使用 iSCSI。如果有一個節點發生故障,叢集中的另一個指定節點就會自動掛接先前掛接於故障節點上的共用磁碟目錄。這使得網路使用者得以繼續存取共用磁碟子系統上的目錄。

重要
重要:具有 LVM2 的共用磁碟子系統

使用具有 LVM2 的共用磁碟子系統時,必須將該子系統連接至叢集中需要存取它的所有伺服器。

一般資源包括資料、應用程式和服務。下圖顯示典型光纖通道叢集組態的可能構成。綠色線表示與乙太網網路電源開關的連接。如此裝置便可透過網路控制,並可在 ping 申請失敗時將節點重新開機。

一般的光纖通道叢集組態
圖 1.3︰ 一般的光纖通道叢集組態

雖然光纖通道提供的效能最佳,但您仍可以將叢集設定為使用 iSCSI。iSCSI 是光纖通道的替代方案,可用於建立低成本的儲存區域網路 (SAN)。下圖顯示一般 iSCSI 叢集組態的可能外觀。

一般的 iSCSI 叢集組態
圖 1.4︰ 一般的 iSCSI 叢集組態

雖然大多數叢集都包含共用磁碟子系統,但您也可以建立不含共用磁碟子系統的叢集。下圖顯示不含共用磁碟子系統之叢集的可能外觀。

不含共用儲存的一般叢集組態
圖 1.5︰ 不含共用儲存的一般叢集組態

1.5 結構

本節將概要介紹 High Availability Extension 的結構。它識別並提供有關結構元件的資訊,並說明這些元件如何相互操作。

1.5.1 架構層

High Availability Extension 採用分層結構。圖形 1.6 「結構」 說明不同的層及其相關的元件。

結構
圖 1.6︰ 結構

1.5.1.1 成員資格和訊息傳送層 (Corosync)

此元件提供可靠的訊息傳送、成員資格,以及關於叢集的仲裁資訊。相應的程序由 Corosync 叢集引擎 (一個群組通訊系統) 進行處理。

1.5.1.2 叢集資源管理員 (Pacemaker)

用作叢集資源管理員的 Pacemaker 是對叢集中所發生事件做出回應的大腦。它是做為 pacemaker-controld 執行的,即,協調所有動作的叢集控制器。例如,節點加入或退出叢集、資源故障,或者維護等排程的活動均為事件。

本地資源管理員

本地資源管理員位於每個節點上的 Pacemaker 層與資源層之間。它實作為 pacemaker-execd 精靈。透過此精靈,Pacemaker 可以啟動、停止和監控資源。

叢集資訊資料庫 (CIB)

Pacemaker 在每個節點上維護叢集資訊資料庫 (CIB)。CIB 是叢集組態的 XML 表示 (包括叢集選項、節點、資源、條件約束及其相互之間的關係)。CIB 也反映目前叢集狀態。每個叢集節點包含一個在整個叢集中同步的 CIB 複本。pacemaker-based 精靈會處理叢集組態和狀態的讀取與寫入。

指定協調者 (DC)

DC 是從叢集中的所有節點選出的。如果目前沒有 DC,或者目前的 DC 出於任何原因退出叢集,則就會依此方式選出 DC。DC 是叢集中可以決定是否需要執行全叢集變更 (例如圍籬區隔節點或移動資源) 的唯一實體。所有其他節點均從目前 DC 取得其組態和資源配置資訊。

規則引擎

規則引擎在每個節點上執行,但 DC 上的引擎是使用中的引擎。該引擎實作為 pacemaker-schedulerd 精靈。需要叢集轉換時,pacemaker-schedulerd 會依據目前的狀態和組態,計算叢集的下一種預期狀態。它會確定需要排程哪些動作來達到下一種狀態。

1.5.1.3 資源和資源代理程式

在高可用性叢集中,資源是指需要保持高度可用的服務。資源代辦 (RA) 是用於啟動、停止和監控叢集資源的程序檔。

1.5.2 處理流程

pacemakerd 精靈將會啟動並監控其他所有相關精靈。用於協調所有動作的精靈 pacemaker-controld 在每個叢集節點上都有一個例項。Pacemaker 會選出其中一個例項做為主要例項,以此來集中做出所有叢集決策。如果選出的 pacemaker-controld 精靈發生失敗,則會建立一個新的精靈。

在叢集中執行的許多動作都會導致全叢集發生變更。這些動作包括新增或移除叢集資源,或變更資源條件約束等。執行此類動作時,必須瞭解叢集中會發生什麼狀況。

例如,假設您要新增叢集 IP 位址資源。為此,您可以使用 crm 外圍程序或 Web 介面來修改 CIB。不需要在 DC 上執行動作。您可以在叢集中的任何節點上使用以上任一工具,變更將會轉送至 DC。然後,DC 會將 CIB 變更複製到所有叢集節點。

隨後,pacemaker-schedulerd 將根據 CIB 中的資訊,計算叢集的理想狀態以及應如何達到該狀態。它會將指令清單饋送給 DC。DC 透過訊息傳送/基礎架構層送出指令,而這些指令將由其他節點上的 pacemaker-controld 對等體接收。每個對等體使用自身的本地資源代辦執行程式 (實作為 pacemaker-execd) 來執行資源修改。pacemaker-execd 不支援叢集感知,它會直接與資源代辦互動。

所有對等節點都會將其操作結果報告給 DC。DC 確定已在叢集中成功執行了所有必要的操作後,叢集就會轉回閒置狀態,等待以後的事件。如果有任何操作未按計畫執行,則會用 CIB 中記錄的新資訊再次呼叫 pacemaker-schedulerd

在某些情況下,可能需要關閉節點以保護共用資料或完成資源復原。在 Pacemaker 叢集中,節點層級圍籬區隔的實作為 STONITH。為此,Pacemaker 隨附了一個圍籬區隔子系統 pacemaker-fenced。必須將 STONITH 裝置設定為叢集資源 (使用特定的圍籬區隔代辦),如此可以監控圍籬區隔裝置。當用戶端偵測到故障時,會將一個要求傳送至 pacemaker-fenced,後者再執行圍籬區隔代辦來關閉節點。