跳到主要內容區塊

計資中心電子報C&INC E-paper

專題報導

叢集技術與雲端服務<一>
  • 卷期:v0015
  • 出版日期:2010-12-20

作者:李泳泉 / 臺灣大學計算機及資訊網路中心作業管理組幹事


站在服務提供者的立場,服務的可用性(Availability)是一項重要的指標,服務中斷可能會違反我們與使用者訂立的合約,同時也造成使用者對服務的不信任。使用叢集技術可相當程度的避免因硬體故障或維修所造成的服務中斷。在這個系列中作者將簡介叢集的組成,並說明如何應用叢集技術打造高可用性的雲端服務。

 

前言

企業在對外提供資訊服務時總希望服務或設備供應商可以協助達成服務等級協議(Service Level Agreement, SLA)所訂定的承諾,通常以”9”為可用性(Availability)目標。例如要達成5個9的目標,就表示要服務要維持99.999%的正常運作時間(Uptime),換算一年下來,服務中斷的時間不可超過10分鐘。同樣的,使用者在使用雲端服務時,N個9也會是使用者對服務可用性的期望,同時也是我們服務提供者所要努力目標。

機器及設備的升級或故障維修都可能造成服務中斷,然而硬體的升級或維修卻是服務提供者必然會面對的狀況。在這種情況下,高可用性叢集技術是大多數人的選擇。 

 

叢集簡介

叢集的概念是指多台電腦透過某些技術或架構運作成單一系統,共同提供服務,多台電腦互相為備援,以維持伺服器與應用程式運作時間,確保服務的可用性。叢集的基本架構如下圖所示:

 

由上圖可看到叢集架構主要包含以下幾個角色:

  • 用戶端(Client):用戶端會透過網路存取叢集所提供的服務,這裡指的用戶端通常不會是終端使用者(End User);叢集的用戶端多半會是另一個提供服務的角色;例如資料庫叢集的用戶端多半為Web Server、Mail Server或其他應用系統。一般而言,叢集架構對用戶端而言應是透明的,意即用戶端不會知道自己使用的服務是否是由叢集架構提供;用戶端存取100台叢集主機所提供的服務與存取1台主機提供的服務的方式應該是相同的。
  • 叢集主機(Cluster Servers):提供服務的多台主機,叢集主機會安裝相同的應用程式及設定以共同提供服務;依運用程式的架構不同,叢集主機可能會同時一起提供服務(Load Balance)、或由其中一台主機提供服務,當該主機因故無法提供服務(例如故障或關機維修),另一台主機會自動接替該主機執行服務(Active/Standby);在叢集中我們常以節點(Node)來稱呼叢集主機。
  • 共用磁碟(Disk Sets):共用磁碟是叢集架構中很重要的一環,所有的服務資料都會儲存在共用磁碟中,所有的叢集主機也會存取相同的共用磁碟並看到相同的資料,以確保服務在節點之間轉移時的正確性,服務在移轉前後不會有資料遺失或不一致的情形發生。為了確保共同磁碟的可用性,共同磁碟通常會以磁碟陣列系統來提供;磁碟陣列以多顆硬碟提供儲存空間,除了加快資料寫入速度,也確保在一定比例硬碟損毁的情況下,整個磁碟陣列系統依然能正常運作,損毁的硬碟上的資料也不會遺失。叢集主機可透過許多方式與共同磁碟連接;一般常見是透過網路以iSCSI的方式,若有效能及穩定性的考量,則會考慮透過光纖通道(Fibre-Channel)傳輸。iSCSI設定容易、相容性及擴充性高,且建置成本較為便宜;但傳輸效能會受限於網路頻寬、穩定性也取決於網路的穩定性。光纖通道相對於iSCSI有效佳的傳輸效能及穩定性,傳輸效能較iSCSI可快上2-8倍;但設定相較於iSCSI要來得複雜,建置成本也較高。 

 

應用實例

接下來我們來看一個實際的應用,下圖是資料庫的叢集架構示意;由於現在的應用系統對資料庫的依賴程度越來越高,資料庫服務的中斷也代表著整體服務的中斷,因此資料庫服務是最常見而且需求量最大的叢集架構應用。

由上圖可以看出資料庫叢集的節點(叢集主機)是以Active/Standby的模式運作,這兩台主機都會安裝資料庫系統,但只有一台主機的資料庫系統會啟動並提供服務,另一台主機的資料庫系統便處於待命狀態;兩台主機透過HeartBeat的機制來偵測彼此是否依然在運作,HeartBeat機制通常透過網路偵測的方式運作,例如透過Ping或測試服務的通訊埠(Port)是否有回應,當HeartBeat偵測到原本提供服務的主機發生異常狀況,便會將另一台主機的資料庫系統啟動以接手服務。除了資料庫服務的轉移外,叢集服務的IP以及共用磁碟的控制權也會一併轉移。

 

結語

透過叢集架構以多台主機提供相同服務,意味著在叢集架構下只要有部份主機能正常運作即能提供服務;因此我們可以承受部份主機故障,或將部份主機關機進行維修。今年的10月及11月計資中心在不影響服務的情況下完成了校務系統主機的記憶體及光纖介面卡的擴充,即是仰賴叢集架構提供的服務。在下篇文章中我們將介紹如何評估及規劃叢集架構,以及我們如何以叢集架構來建構及提供高可及性的雲端服務。 

 

參考文獻

1.Introducing Microsoft Cluster Service (MSCS) in the Windows Server 2003 Family
http://msdn.microsoft.com/en-us/library/ms952401.aspx

 

2.容錯移轉叢集概觀
http://technet.microsoft.com/zh-tw/library/cc770737(WS.10).aspx


3.電腦叢集 - wiki
http://zh.wikipedia.org/zh-tw/%E8%AE%A1%E7%AE%97%E6%9C%BA%E9%9B%86%E7%BE%A4