套用至 SUSE Linux Enterprise High Availability Extension 12 SP5

1 產品綜覽

摘要

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

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

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

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

1.1 以延伸形式提供

High Availability Extension 做為 SUSE Linux Enterprise Server 12 SP5 的延伸提供。對地理位置分散的叢集 (Geo 叢集) 的支援是以 High Availability Extension 的一個獨立延伸形式透提供的,稱為 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 叢集 (地理位置分散的叢集)受其他 Geo 延伸的支援,具體請參閱第 1.2.5 節 「本地叢集、城際叢集與 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,您可以視需要動態指定和重新指定伺服器儲存。它支援光纖通道儲存區域網路 (SAN) 以及網路中的 iSCSI 儲存。因此也支援共用磁碟系統,但這些系統並非必要系統。SUSE Linux Enterprise High Availability Extension 還隨附了叢集感知檔案系統與磁碟區管理員 (OCFS2) 及叢集化邏輯磁碟區管理員 (cLVM)。對於資料複製,可以使用 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 12 SP5 隨附 Xen 和 KVM (基於核心的虛擬機器)。兩者都是開放原始碼虛擬化監管程式。叢集可將虛擬化客體系統 (亦稱為虛擬機器) 做為服務來管理。

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

SUSE Linux Enterprise High Availability Extension 已經過延伸,可支援多種不同的地理分佈情境。對地理位置分散的叢集 (Geo 叢集) 的支援是以 High Availability Extension 的一個獨立延伸形式透提供的,稱為 Geo Clustering for SUSE Linux Enterprise High Availability Extension。

本地叢集

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

城際叢集

可涵蓋多個建築物或資料中心的單個叢集。該叢集通常使用單點傳播在節點之間進行通訊,並在內部管理容錯移轉。網路延遲通常比較低 (距離約為 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 類別中還提供了以下模組,可以幫助您設定叢集或個別元件︰

HA Web Konsole (Hawk2)

一款基於 Web 的使用者介面,您可以使用它在非 Linux 機器上管理 Linux 叢集。如果您的系統未提供圖形使用者介面,它也是一個理想的解決方案。它會引導您完成資源建立和組態設定的整個過程,並可讓您執行啟動、停止或移轉資源等管理任務。如需詳細資訊,請參閱第 7 章 「使用 Hawk2 設定和管理叢集資源

crm 外圍程序

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

1.3 優點

High Availability Extension 可讓您將多達 32 台的 Linux 伺服器設定成一個 High Availability 叢集 (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。如果有一台伺服器失敗,叢集中的另一台指定伺服器就會自動掛接先前掛接於失敗伺服器上的共享磁碟目錄。這使得網路使用者得以繼續存取共享磁碟子系統上的目錄。

一般資源包括資料、應用程式和服務。下圖顯示一般光纖通道叢集組態的可能外觀。

一般光纖通道叢集組態
圖形 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 層。此層包含送出含有I'm alive(我存在) 訊號及其他資訊的訊息的元件。

1.5.1.2 資源配置層

下一層為資源配置層。此層最為複雜,由下列元件組成︰

叢集資源管理員 (CRM)

在資源配置層中執行的每個動作均透過叢集資源管理員進行傳遞。如果資源配置層的其他元件 (或更高一層中的元件) 需要進行通訊,通訊將透過本地 CRM 完成。在每個節點上,CRM 都會維護叢集資訊庫 (CIB)

叢集資訊庫 (CIB)

叢集資訊庫是整個叢集組態和目前狀態的記憶體內部 XML 表示。它包含所有叢集選項、節點、資源、條件約束及相互關係的定義。CIB 還可同步更新至所有叢集節點。叢集中有一個主要 CIB,由指定協調者 (DC) 負責維護。其他所有節點均包含一個 CIB 複製本。

指定協調者 (DC)

叢集中的一個 CRM 會被選為 DC。DC 是叢集中可以決定是否需要執行全叢集變更 (例如圍籬區隔節點或移動資源) 的唯一實體。DC 也是存放 CIB 主要副本的節點。所有其他節點均從目前 DC 取得其組態和資源配置資訊。成員發生變更後將從叢集的所有節點中選出 DC。

規則引擎 (PE)

指定協調者需要進行整個叢集範圍的變更 (對新的 CIB 做出反應) 時,規則引擎會根據目前狀態和組態計算出叢集的下一個狀態。PE 還可產生轉換圖表,該圖表包含 (資源) 動作和相依性清單,用以取得下一個叢集狀態。PE 始終在 DC 上執行。

本地資源管理員 (LRM)

LRM 代表 CRM 呼叫本地資源代辦 (請參閱第 1.5.1.3 節 「資源層」)。因此,它可以執行啟動/停止/監控操作,並將結果報告給 CRM。LRM 是本地節點上所有資源相關資訊的管理來源。

1.5.1.3 資源層

最高層為資源層。資源層包含一或多個資源代辦 (RA)。資源代辦是用於啟動、停止和監控特定種類的服務 (資源) 的程式 (通常是外圍程序檔)。資源代辦僅可由 LRM 呼叫。協力廠商可以將他們自己的代辦包含在檔案系統中的已定義位置,從而為他們自己的軟體提供即裝即用的叢集整合功能。

1.5.2 程序流程

SUSE Linux Enterprise High Availability Extension 使用 Pacemaker 做為 CRM。CRM 被當做精靈 (crmd) 來實作,即在每個叢集節點上都有一個例項。Pacemaker 會選出一個 crmd 例項做為主要例項,以此來集中所有叢集決策。如果所選的 crmd 程序 (或它所在的節點) 失敗,則會建立一個新的 crmd 程序。

可反映出叢集組態及叢集中所有資源的目前狀態的 CIB 會保留在每個節點上。CIB 的內容將在整個叢集中自動保持同步。

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

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

接著,PE 將根據 CIB 中的資訊計算出叢集的理想狀態,以及達到該狀態的方式,並會將一系列指示饋送至 DC。DC 透過訊息傳送/基礎架構層送出指令,而這些指令將由其他節點上的對等 crmd 接收。每個 crmd 皆使用其 LRM (當做 lrmd 實作) 執行資源修改。lrmd 不支援叢集感知,它會直接與資源代辦 (程序檔) 互動。

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

在某些情況下,可能需要關閉節點以保護共享資料或完成資源復原。為執行此操作,Pacemaker 提供了圍籬區隔子系統 stonithd。STONITH 是Shoot The Other Node In The Head(關閉另一個節點) 的首字母縮略字。通常使用 STONITH 共用區塊裝置、遠端管理板或遠端電源開關來實作該功能。為了方便使用 STONITH 裝置,在 Pacemaker 中將它們模型化為資源 (並在 CIB 中進行設定)。但是,stonithd 會負責瞭解 STONITH 拓撲,讓其用戶端要求圍籬區隔某個節點,而自身則執行其餘的工作。

列印此頁面