服務器集羣技術

在發展初期,一路處理器便可爲一臺服務器及其所有應用提供動力。接着就發展到了多處理時代,這時兩路或多路處理器共享一個存儲池,並能處理更多更大的應用。然後出現了服務器網絡,該網絡中的每臺服務器都專門處理不同的應用集。現在,發展到了服務器集羣,兩臺或多臺服務器像一臺服務器一樣工作,提供更高的可用性和性能,這已經遠遠超出了您的想像。應用可從一臺服務器轉移到另一臺服務器,或同時運行在若干臺服務器上――所有這一切對用戶都是透明的。
集羣並不是新事物,但在軟件和硬件方面,直到最近它們還是專有的。信息系統經理對集羣進行了更加仔細的考慮,這是因爲現在他們可以使用大規模生產的標準硬件實現集羣,如RAID、對稱多處理系統、網絡和I/O網卡及外設。集羣技術在未來將會獲得更大的發展,現在,不斷推出新的集羣選件,而真正的集羣標準尚在制定之中。

何爲集羣?
        簡單的說,集羣就是兩臺或多臺計算機或節點在一個羣組內共同工作。與 單獨工作的計算機相比,集羣能夠提供更高的可用性和可擴充性。集羣中的每個節點通常都擁有自己的資源(處理器、I/O、內存、操作系統、存儲器),並對自己的用戶集負責。
故障切換功能提供了可用性:當一個節點發生故障時,其資源能夠"切換"到集羣中一個或多個其它節點上。一旦發生故障的節點恢復全面運行,通過前瞻性地將一臺服務器的功能"切換"到集羣中其它服務器上,可以實現升級,停止該服務器的運行以增加組件,然後將其放回到集羣中,再將其功能從其它服務器轉回該服務器。利用分佈式訊息傳遞(DMP)可提供額外的可擴充性,DMP是一種集羣內通信技術,該技術允許應用以對最終用戶透明的方式擴展到單個對稱多處理(SMP)系統以外。
集羣中的每個節點必須運行集羣軟件以提供服務,如故障檢測、恢復和將服務器作爲約 個系統進行管理的能力。集羣中的節點必須以一種知道所有其它節點狀態的方式連接。這通常通過一條由於局域網路徑相分離的通信路徑來實現,並使用專用網卡來確保節點間清楚的通信。該通信路徑中繼系統間的一?quot;心跳",這樣,如果一個資源發生故障因而無法發送心跳,就會開始故障切換過程。實際上,最可靠的配置採用了使用不同通信連接(局域網、SCSI和RS232)的冗餘心跳,以確保通信故障不會激活錯誤的故障切換。

集羣級別
        今天,對於集羣購買者來說,幸運的是有多款不同檔次的集羣可供選擇,它們可提供廣泛的可用性。當然,可用性越高,價格也越高,管理複雜性也越大。

共享存儲
        共享磁盤子系統往往是集羣的基礎、它使用共享的SCSI或光纖通道。每個節點使用其本地磁盤存儲操作系統交換空間和系統文件,而應用數據存儲在共享磁盤上,每個節點均可讀取由其它節點寫入的數據。應用間的併發磁盤訪問需要分佈鎖定管理器(DLM),而且共享磁盤子系統與其集羣節點之間的距離會受到所選擇介質(SCSI或光纖通道等)的限制。

服務器鏡像(鏡像磁盤)
        需要數據冗餘而又無需佔用額外磁盤子系統的環境有權選擇服務器間的鏡像數據。除了成本更低以外,服務器鏡像的另一個優勢是,在主板服務器與輔助服務器之間的連接可以是基於局域網的,這樣就消除了SCSI 距離限制。數據寫到主板服務器上後,它還寫到了輔服務器上;通過鎖定服務器數據保持了數據的完整性。一些服務器鏡像產品還可將工作負載從主服務器轉換到輔服務器上。

非共享
        現在,一些集羣產品使用的是"非共享"體系結構,在此體系結構中,節點既不共享集中式磁盤,也不在節點間鏡像數據。發生故障時,非共享集羣所具有的軟件能夠將磁盤所有權從一個節點傳送至另一個節點,而無需使用分佈式分佈式鎖定管理器(DLM)。

如何實現故障切換?
        可以使用多種方法配製集羣實現故障切換。第一種方法是N路配製,集羣中的所有節點在正常情況下都擁有自己的用戶和工作負載。一個故障節點的資源可切換到其它節點,但由於剩餘的服務器承擔了額外的負載,因此其性能將有所下降。
        N+1配製包括一個熱待機系統,它在主系統發生故障之前一直處於空閒模式。在N+1配製中,當一個節點發生故障時可避免其它節點的性能下降。但是,由於待機節點在正常情況下並不提供服務,因而成本較高。
        在任何配製中,一旦出現問題,集羣軟件將能夠首先進行本地恢復。本地恢復即在發生故障時,在本地節點自動重新啓動應用或服務的能力。對節點並非致命的故障來說,邏輯上本地恢復是首選方式,因爲與切換至另一個節點相比,它對用戶的中斷更少。
        就故障切換的種類而論,一些集羣產品可進行並行恢復,其中資源能夠故障切換到不同地區的遠程節點上。這很適合於容災需求。次外,爲了解決多個節點故障問題,一些集羣產品可以進行級聯故障切換,其工作方式就像多米諾骨牌一樣:節點一故障切換到節點二,節點二發生故障後再切換到節點三等等。

故障切換舉例
以下是雙節點集羣故障切換舉例,其中兩個節點都擁有其自己的用戶和以下的應用。
1. 節點1因出現內存問題導致了應用故障。用戶訊息錯誤且其應用停止運行。集羣管理軟件將這一問題通知系統管理員。
2. 節點1進行本地恢復,重新啓動故障應用。用戶能夠重新啓動其應用。
3. 當應用再次發生故障時,集羣軟件向節點2進行故障切換。故障切換需要大約1分鐘,用戶必須等待。(實際時間可能會從幾秒至幾分鐘。)一些應用能夠檢測故障過程並向用戶顯示信息,告知她們向另一臺服務器傳輸應用。
4. 該應用和客戶機通信被切換到節點2。一旦該應用在節點2中重新啓動,用戶即可繼續工作。
5. 診斷和修理節點1。將已恢復正常的節點1放回遠處後,關恢復(切換)過程就會啓動,以使應用和相關資源回到節點1。可人工或自動實現該故障恢復。例如,在非高峯期間,可將其配置爲故障恢復狀態。

集羣可擴充性
        除了提高的可用性,性能可擴充性也是集羣的一個主要優勢。通常,可通過集羣負載平衡提高性能。本質上,負載平衡意味着將相關應用和資源從繁忙節點轉移到不繁忙節點。
真正的可擴充性是在其它區域實現的。第一個區域是增加可擴充性,這意味着能夠在不拋棄以前系統的情況下,不斷添加服務器、磁盤存儲器等。實際上,隨着您的計算機需求不斷增加,集羣提供了隨着您的發展進行支付的環境。當能夠在集羣多個節點上自動分配其工作負載的真正"支持集羣"應用在未來形成開發標準後,您將看到第二種類型 的可擴充性。除此之外還可分離應用,以使一個應用的不同"線程"運行在不同節點上,從而極大提高可

應用如何處理故障切換?
        下一個問題是"應用如何處理故障切換?"答案是"這取決於所使用的應用和集羣產品。"一些集羣產品爲專門應用(如數據庫或通信協議)提供了恢復或切換套件。這些套件可在應用故障時進行檢測,並可在另一服務器上重新啓動該應用。
        應用處理故障的方法由於集羣產品的不同而不同。正如我們以前提到的一樣,儘管不同的廠商都試圖制定一個通用標準,但現在集羣軟件還沒有公共標準。
        然而,必須修改現在的應用以處理故障切換,應用的最終目標不受硬件的影響。一個解決方案是與操作系統共同運行的一組程序和API(應用編程口),從而使得應用廠商能夠創建執行這些恢復功能的程序。使用這些API使應用"支持集羣"。當前集羣產品的許多廠商都在努力奮鬥,以確保集羣產品能夠符合這些不同的操作系統API。

虛擬接口體系結構(VIA)
        由英特爾、康柏、惠普、微軟、戴爾、SCO和天騰聯合推出了虛擬接口體系結構(VIA)計劃正爲開發集羣硬件和軟件產品制定標準,該標準將是獨立於廠商的,它將爲用戶購買技術時提供更多的選擇。

需牢記的重點
        真正的集羣可被認爲是多處理髮展演變的下一步――以前,應用應用跨越一個系統的多個處理器運行,現在,應用可以跨越跨越若干系統的多個處理器運行。
集羣提供了兩個主要優勢:高可用性(通過故障切換功能)和可擴充性(通過增加擴展和跨越處理器進行負載平衡)。
        當節點出現硬件或軟件問題後,就會進行故障切換,該節點的應用及通信連接將切換到另一臺服務器上。可使用集羣管理產品規定那些應用應進行故障切換,以及那些故障條件可觸發這一過程。
可以獲得許多集羣種類和配置,以爲用戶提供他們所需的確切可用性級別。共享磁盤、服務器鏡像及非共享是這些配置的幾個。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章