Cluster 簡介

胡永祥 2017/12/01 13:20:56
4231

Cluster 簡介


簡介

說明Cluster 的架構與實際案例

作者

胡永祥


1. 前言

    對於要求服務等級高的應用服務而言 , Cluster 架構可同時監視硬體和軟體事件,在適當時機提供給系統高可用性的保護,讓重要的服務不中斷. Cluster 的應用軟體很多,本文以實際專案案例使用的Redhat cluster (RHCS) 說明Cluster 架構

2. Cluster 說明

Cluster兩台以上的伺服器/節點(node) 共同組成完成一件工作Cluster有四種主要類型:

儲存類型Cluster中的伺服器提供了一致性的檔案系統映像,讓伺服器可以同步讀、 寫同一共享的檔案系統。

高可用性類型消除單點失敗、將失效的服務從無法使用的節點移往另一個Cluster節點

平衡負載類型分派網路服務的需求,送到多個Cluster節點,使用根據負載的需求,來決定節點的數量。若其中負載平衡中的節點無法運作,負載平衡的軟體會偵測到這個事件,然後將需求導向至其他的叢集節點。

高效能類型使用Cluster節點來進行同步計算,能讓應用程式同步運作,藉此增進應用程式的效能。

3.  Cluster 架構

Cluster 組成的伺服器中透過 Heartbeat 監控其他伺服器以 Heartbeat 定時回應來判斷是否需要進行處置多台伺服器Cluster架構中,可應用將多台資料庫伺服器組成 Cluster 對一座 Storage 進行資料存取也可設計將多台應用伺服器組成 Cluster 對另一組資料庫伺服器組成的 Cluster 進行資料存取

無論是多個node 或兩個node 完整架構是需要一個仲裁角色Cluster才能工作仲裁角色可以是第三方伺服器也可以是Storage ,主要就是cluster 至少有 (n/2+1) 個節點數就會建立Quorate狀態

兩台伺服器組成 Cluster 環境其中主要伺服器停止服務時,備援伺服器便會馬上接手主要伺服器的 Service 。 但這種兩台伺服器組成 Cluster架構有一個情形需要防範,就是若兩台伺服器的 Heartbeat 網路線拔除或 Heartbeat 的網路不通彼此兩台伺服器會認為自已是唯一活著的伺服器,所以會按照 fence 設定將對方進行 fence 已確保自已享有獨立的 resource彼此兩台伺服器互相將對方 fence 造成整個系統一直處於不穩定的 fence loop 中這就稱為“fencing race

圖一 :多台伺服器組成Cluster 架構範例

圖二 :有StorageCluster 架構範例

4.  Cluster Fence

Cluster 架構中有時伺服器可能不是真的故障 而是因爲伺服器負載過重無法對Heartbeat 即時回應經過一段時間負載減輕後Heartbeat可即時回應。 這種情境下如果其 Service 中有包含 File system resource若沒有將伺服器執行隔離 (fence) 會造成兩台伺服器同時掛載 File system,就會造成檔案系統資料不一致,嚴重的話可能會毀損整個檔案系統。Fencing Device RHCS 設計的裝置,可以直接對伺服器的電源執行 Power ON/Power OFF 將失連的伺服器進行隔離

圖三:Cluster Fence 架構範例

圖四:兩台伺服器的fence架構範例

5. 結論

專案實務上,許多對服務品質要求等級高的客戶,都需要建構Cluster 環境,特別在電信與金融的客戶這是必要的環境需求本文簡單說明Cluster 的基本架構,讓日後在專案架構規劃時能有參考。

胡永祥