一個叢集包括了下列的特色:
無單一節點失效狀況的硬體設定
叢集中可以含有一個雙重控制器的 RAID 陣列、多個網路通道以及冗餘的不斷電系統(UPS)以確保在應用程式 中斷或資料遺失方面沒有單一的失效結果。
或者,可以設定一個低價的叢集來提供比無單一節點失效狀況之叢集較低的可用性,例如您可以設定一個 含有一個單一控制器 RAID 陣列以及只有單一乙太網路通道的叢集。
![]() | 請注意 |
---|---|
某些較低價的替代品(例如軟體 RAID 與 multi-initiator 的並列 SCSI)並不相容或適用於共用的叢集儲存。 請參考 第 1.1 節 以取得更多資訊。 |
服務設定的架構
叢集讓您可以很容易地設定個別的服務來提高資料與應用程式的存取性,如要建立一項服務,您必須指定 服務將使用的資源以及服務的內容,包括服務的名稱、應用程式啟動、停止與狀態的程式碼、磁碟分割區、 掛載點以及您希望服務在其上執行的叢集成員。 在您新增一項服務之後,叢集管理軟體會儲存這些資訊在 共用儲存裝置上的一個叢集設定檔案,所有的叢集成員都可以存取這個設定資料。
叢集為資料庫應用程式提供了一個容易使用的架構,例如一個『資料庫服務』可以 伺服高存取性的資料給一個資料庫應用程式。 在一部叢集成員上執行的應用程式提供網路存取給資料庫用戶端 系統,例如網頁伺服器。 假如該服務容錯移轉到另一部成員,應用程式仍然可以存取共用資料庫的資料。 通常都會指派一個 IP 位址給網路可存取的資料庫服務,該 IP 位址也會隨著服務容錯移轉,以維持用戶 端的透通式存取。
叢集服務的架構也可以很輕易地延伸至其他的應用程式。
容錯移轉網域
藉由指定一項服務給一個『受限的容錯移轉網域』,您可以限制發生容錯移轉時 足以執行一項服務的成員。(不屬於容錯移轉網域的叢集成員無法啟動指定給一個受限容錯移轉網域的服務。) 您可以依據偏好設定來命令位於容錯移轉網域的成員,以確保特定的成員來執行服務(只要該成員是使用中的話)。 假如一項服務被指派給一個『非受限的容錯移轉網域』,服務可以在任何可用的 叢集成員上啟動(假如容錯移轉網域中沒有任何成員可以使用)。
資料完整性的保證
為了確保資料的完整性,同一時間只有一個成員可以執行一項服務並且存取服務的資料,在叢集硬體配置中 使用電源開關使得一個成員可以在容錯移轉過程中重新啟動另一部成員的服務之前進行 power-cycle 該成員。 這將可避免任何兩部系統同時存取相同的資料,導致資料毀損。 建議您使用電源開關(雖然非必要的) 來確保所有失效狀況下資料的完整性,看門狗計時器是另一種電源控制的選擇,可用來確保服務容錯移轉正確的操作。
叢集管理的使用者介面
叢集管理介面幫助了管理的工作,例如建立、啟動與停止服務、從一個成員重置服務到另一部成員、修改叢集設定 (增加或移除服務或資源)以及監視叢集成員與服務。
乙太網路通道連結
如要監視其他成員的系統狀況,每一部成員都監視遠端電源開關(假如有的話)的使用狀況,並且透過網路 通道傳送 heartbeat pings。 藉由乙太網路的通道連結,多個乙太網路介面將會被設定為一個單一的介面來 進行操作,以降低典型系統間交換式乙太網路連線的單一節點失效狀況風險。
用於 quorum 資訊的共用儲存裝置
共用的狀態資訊包括了成員是否正在使用中,服務狀態資訊包括服務是否執行中,以及那一個成員執行該 服務。 每一個成員會檢查以確保其他成員的狀態是更新的。
在含有兩部成員的叢集中,每一部成員定期寫入一個時間戳以及叢集狀態資訊到位於共用磁碟儲存裝置上 的兩個共用叢集分割區。 為了確保正確的叢集操作,當一部成員無法在開機時寫入 primary 與 shadow 這兩個共用叢集分割區時,它將不被允許加入叢集。 除此之外,假如一個成員無法更新它的時間戳,而且 當傳送 heartbeats 至系統失敗時,將會從叢集中移除該成員。
圖形 2 顯示出在一個叢集配置中成員如何進行通訊,請注意用來透過序列埠 存取系統主控台的終端伺服器並不是一個必要的叢集組成元件。
服務容錯移轉的能力
假如發生一個硬體或軟體的失效情況,叢集將會採取適當的動作以維護應用程式的存取性與資料的完整性。 舉例來說,當一部成員完全地失效時,(屬於所關聯的容錯移轉網域或叢集中的)另一部成員將會重新啟動 它的服務。 正在該成員上執行的服務將不會中斷。
當失效的成員重新開機,而且可以寫入到共用的叢集分割區後,它便可以重新加入叢集並且執行服務。 取決於如何設定這些服務,叢集將會重新均衡成員間執行的服務。
手動的服務重置能力
除了自動地服務容錯移轉外,叢集允許您正常地停止一部成員上的服務,並且在另一部成員上重新啟動它們。 您可以在一個成員系統上執行規劃好的維護工作,同時還能繼續提供應用程式與資料的可用性。
系統事件紀錄設施
為了確保問題能夠在影響到服務可用性之前被偵測並且解決,叢集系統程式使用傳統的 Linux syslog 子系統 來紀錄訊息。 您可以自訂紀錄訊息的嚴重性等級。
應用程式監視
叢集的基礎架構也可以選擇性的監視一個應用程式的狀態與使用狀況,在這種情況下,如果發生一個應用 程式特定的錯誤,叢集將會自動重新啟動應用程式。 因應應用程式的錯誤,該應用程式將會試著在一開始 所執行的成員上重新啟動,如果失敗的話,將會在另一部叢集成員上重新啟動。 您可以指派一個容錯移轉 網域給服務,以指定那些成員有資格執行該服務。