伺服器集群簡介
一旦在伺服器上安裝並運行了集群服務,該伺服器即可加入群集。集群化操作可以減少單點故障數量,並且實現了群集化資源的高可用性。下述各節簡要介紹了群集創建和集群操作中的節點行為。
關於Windows Server 2003的企業版和Datacenter版都可以支持最大達8個節點的集群配置;其典型的特徵是可為資料庫、訊息系統、檔案與列印服務這些關鍵業務套用,提供高可用性和可擴展性,在集群中的多個伺服器(節點)保持不間斷的聯繫。即是說如果在集群中的某一節點因出錯或維護不可用時,另一節點會立刻提供服務,以實現容錯。正在訪問服務的用戶可以繼續訪問,而不會察覺到服務已經由另一台伺服器(節點)提供。
創建群集
在
伺服器群集產品中含有用來在伺服器上安裝群集軟體和創建新群集的群集安裝實用工具。創建新群集時,首先在選擇作為群集的第一個成員的計算機上運行該實用工具。第一步是確定群集名稱並創建群集資料庫和初始的群集成員列表來定義新群集。 Windows server 2003 群集新增了一個群集管理設定嚮導以及使用 cluster.exe
命令行界面創建( 包括從遠程創建 )群集的功能。
創建群集的第二步是,添加可供所有
群集成員使用的共用
數據存儲設備。這樣,創建的新群集將帶有一個節點、自己的本地數據存儲設備以及群集共用資源 —— 通常是磁碟或數據存儲和連線介質資源。
創建群集的最後一步是,在另外將要成為群集成員的每一台計算機上運行安裝實用工具。每當將新節點添加到群集中時,新節點都會自動從群集的原始成員獲得現有群集資料庫的副本。當節點加入或形成群集時,群集服務會更新該節點私有的配置資料庫副本。
形成群集
如果伺服器運行了群集服務並且無法找到群集中的其它節點,它自己可以形成一個群集。要形成群集,節點必須能夠獲得對
仲裁資源的獨占權。
當最初形成群集時,群集中的第一個節點將包括群集配置資料庫。每當有新節點加入群集時,新節點都會在本地獲得並保持群集配置資料庫的副本。仲裁資源用恢復日誌(其中含有同節點無關的群集配置和狀態數據)的形式存儲配置資料庫的最新版本。
在群集運行中,群集服務使用仲裁恢復日誌執行以下操作 :
保證只有一組活動、可相互通訊的節點才能形成群集
僅當某個節點可以獲得對仲裁資源的控制權時 , 才允許它形成群集
僅當某個
節點可以同控制
仲裁資源的節點通訊時 , 才允許它加入或留在現有群集中
集群服務的狀態
從群集中的其它節點和群集服務管理接口的角度看,當形成群集時,群集中的每個節點可能處於三種不同狀態中的一種。事件處理器會記錄這些狀態,而事件日誌管理器會將這些狀態複製到群集的其它節點。群集服務狀態包括:
脫機。此時的節點不是完全有效的群集成員。該節點及其
群集伺服器可能在運行,也可能未運行。
在線上。此時的節點是完全有效的群集成員。它遵從群集資料庫的更新、對仲裁算法施加自己的影響、維護心跳通訊,並可以擁有和運行資源組。
暫停。它只能支持它當前已擁有的那些資源組。之所以提供暫停狀態,是為了允許執行某些維護。大多數
伺服器群集組件會將在線上和暫停視為等價的狀態。
優勢
一、集群系統可解決所有的伺服器硬體故障,當某一台伺服器出現任何故障,如:硬碟、記憶體、CPU、主機板、I/O板以及電源故障,運行在這台伺服器上的套用就會切換到其它的伺服器上。
二、集群系統可解決軟體系統問題,我們知道,在計算機系統中,用戶所使用的是應用程式和數據,而套用系統運行在作業系統之上,作業系統又運行在伺服器上。這樣,只要套用系統、作業系統、伺服器三者中的任何一個出現故障,系統實際上就停止了向客戶端提供服務,比如我們常見的軟體
當機,就是這種情況之一,儘管伺服器硬體完好,但伺服器仍舊不能向客戶端提供服務。而集群的最大優勢在於對故障伺服器的監控是基於套用的,也就是說,只要伺服器的套用停止運行,其它的相關伺服器就會接管這個套用,而不必理會套用停止運行的原因是什麼。
三、集群系統可以解決人為失誤造成的套用系統停止工作的情況,例如,當管理員對某台伺服器操作不當導致該伺服器停機,因此運行在這台伺服器上的套用系統也就停止了運行。由於集群是對套用進行監控,因此其它的相關伺服器就會接管這個套用。
缺點
我們知道集群中的套用只在一台伺服器上運行,如果這個套用出現故障,其它的某台伺服器會重新啟動這個套用,接管位於共享磁碟柜上的數據區,進而使套用重新正常運轉。我們知道整個套用的接管過程大體需要三個步驟:偵測並確認故障、後備伺服器重新啟動該套用、接管共享的數據區。因此在切換的過程中需要花費一定的時間,原則上根據套用的大小不同切換的時間也會不同,越大的套用切換的時間越長。
加入群集
尋找
如果一個伺服器要加入現有群集 , 則它必須運行群集服務並且必須成功找到群集中的其它節點。在找到其它節點後,加入的伺服器必須接受群集成員資格驗證,並獲得群集配置資料庫的副本。
條件
加入現有群集的過程開始於 Windows Server 2003 或 Windows 2000 Service Control Manager 在
節點上啟動群集服務之時。在啟動過程中,群集服務會配置並裝入該節點的本地數據設備。它並不會試圖將共用的群集數據設備作為節點在線上,因為現有群集可能正在使用這些設備。
過程
為了查找其它節點 , 會啟動一個發現過程。當節點發現任何群集成員時,它將執行
身份驗證序列。第一個群集成員會對新加入者進行身份驗證,並且在新伺服器得到成功驗證後返回成功狀態。如果驗證不成功(未能識別待加入節點的群集成員身份,或者它使用了無效的帳戶密碼),則加入群集的請求會被拒絕。
驗證
進行成功驗證後,首先在線上的群集節點會檢查加入節點上的配置資料庫副本。如果該副本已過時,對加入伺服器進行驗證的群集節點會為加入的伺服器傳送該資料庫的更新副本。剛加入群集的節點在收到複製的資料庫後,可以用它查找共享資源並根據需要將它們在線上。
脫離群集
當節點關閉或群集服務被停止時,節點可能脫離群集。但當節點不執行群集操作(比如不向群集配置資料庫提交更新)時,節點也可能被迫脫離(被逐出)群集。
如果節點根據預先的計畫脫離群集,它會向其它所有節點成員傳送 ClusterExit 訊息,通知它們它將脫離群集。該節點不等待任何回響就會立即進行關閉資源和所有群集連線的操作。由於其餘
節點收到了退出訊息,因此它們不會執行在節點意外失效或網路通訊停止時發生的重新分組過程以重新確立群集成員身份。
方法
有兩種常用的伺服器集群方法,一種是將備份伺服器連線在主伺服器上,當主伺服器發生故障時,備份伺服器才投入運行,把主伺服器上所有任務接管過來。另一種方法是將多台伺服器連線,這些伺服器一起分擔同樣的套用和資料庫計算任務,改善關鍵大型套用的回響時間。同時,每台伺服器還承擔一些容錯任務,一旦某台伺服器出現故障時,系統可以在
系統軟體的支持下,將這台伺服器與系統隔離,並通過各伺服器的負載轉嫁機制完成新的負載分配。PC伺服器中較為常見的是兩台伺服器的集群,UNIX系統可支持8台伺服器的集群系統,
康柏的專用系統OpenVMS可支持多達96台伺服器的集群系統。
集群的特點
在集群系統中,所有的計算機擁有一個共同的名稱,集群內任一系統上運行的服務可被所有的網路客戶所使用。集群必須可以協調管理各分離組件的錯誤和失敗,並可透明的向集群中加入組件。用戶的公共數據被放置到了共享的磁碟櫃中,應用程式被安裝到了所有的伺服器上,也就是說,在集群上運行的套用需要在所有的伺服器上安裝一遍。當集群系統在正常運轉時,套用只在一台伺服器上運行,並且只有這台伺服器才能操縱該套用在共享磁碟柜上的數據區,其它的
伺服器監控這台伺服器,只要這台伺服器上的套用停止運行(無論是硬體損壞、作業系統
當機、套用軟體故障,還是人為誤操作造成的套用停止運行),其它的伺服器就會接管這台伺服器所運行的套用,並將共享磁碟柜上的相應數據區接管過來。其接管過程如下圖所示(以套用A為例):
1.套用A正常工作時;
2.套用A停止工作後,其它的備用伺服器將該套用接管過來。 具體接管過程分三部執行: a.系統接管 b.載入套用 c.客戶端連線
集群技術的分類
高可用集群
高可用集群的英文全稱是High Availability,簡稱HA cluster。高可用的含義是最大限度地可以使用。從集群的名字上可以看出,此類集群實現的功能是保障用戶的應用程式持久、不間斷地提供服務。
負載均衡集群
負載均衡集群也是由兩台或者兩台以上的伺服器組成。分為前端負載調度和後端服務兩個部分。負載調度部分負責把客戶端的請求按照不同的策略分配給後端服務節點,而後端節點是真正提供應用程式服務的部分。與HA Cluster不同的是,負載均衡集群中,所有的後端節點都處於活動狀態,它們都對外提供服務,分攤系統的工作負載。
科學計算集群
高性能計算集群,簡稱HPC集群。這類集群致力於提供單個計算機所不能提供的強大計算能力,包括數值計算和數據處理,並且傾向於追求綜合性能。HPC與超級計算類似,但是又有不同,計算速度是超級計算追求的第一目標。最快的速度、最大的存儲、最龐大的體積、最昂貴的價格代表了超級計算的特點。隨著人們對計算速度需求的提高,超級計算也套用到各個領域,對超級計算追求單一計算速度指標轉變為追求高性能的綜合指標,即高性能計算。