複製鏈接
請複製以下鏈接發送給好友

Cluster

(計算機網絡技術)

鎖定
集羣(cluster)是一種較新的技術,通過集羣技術,可以在付出較低成本的情況下獲得在性能、可靠性、靈活性方面的相對較高的收益,其任務調度則是集羣系統中的核心技術
集羣是一組相互獨立的、通過高速網絡互聯計算機,它們構成了一個組,並以單一系統的模式加以管理。一個客户與集羣相互作用時,集羣像是一個獨立的服務器。集羣配置是用於提高可用性和可縮放性。
中文名
集羣
外文名
cluster
操    作
計算機、電腦
性    質
服務器
用    於
高性能計算等
技    術
集羣技術

Cluster技術簡介

集羣技術本身有很多種分類,市場上的產品也很多,都沒有很標準的定義。一般可以分為以下幾種:
基於冗餘的集羣
嚴格來講,這種冗餘系統並不能叫做真正的集羣,因為它只能夠提高系統的可用性,卻無法提高系統的整體性能。
有以下幾種類型。
A.容錯機
特點是在一台機器內部對其所有的硬件部件都進行冗餘(包括硬盤、控制卡、總線、電源等等)。
能夠基本做到與軟件系統無關,而且可實現無縫切換,但價格極其昂貴。
典型市場產品:Compaq NonStop(Tandem),Micron(NetFrame),Straus
B.基於系統鏡像的雙機系統
特點是利用雙機,將系統的數據和運行狀態(包括內存中的數據)進行鏡像,從而實現熱備份的目的。
能夠做到無縫切換,但因為採用軟件控制,佔用系統資源較大,而且由於兩台機器需要完全一樣的配置,所以性能價格比太低。
典型市場產品:Novell SFT III,Marathon Endurance 4000 for NT
C.基於系統切換的雙機系統
特點是利用雙機,將系統的數據(僅指硬盤數據)進行鏡像,在主機失效的情況下從機將進行系統一級的切換。
性能價格比適中,但無法實現無縫切換。
典型市場產品:Legato(Vinca) StandbyServer for NetWare,Savoir(WesternMicro)SavWareHA(Sentinel),Compaq StandbyServer [1] 
基於應用程序切換的集羣
特點是當集羣中的某個節點故障時,其它節點可以進行應用程序一級的切換,所以所有節點在正常狀態下都可以對外提供自己的服務,也被成為靜態的負載均衡方式。
性能價格比高,但也無法實現無縫切換,而且對單個應用程序本身無法做到負載均衡。
典型市場產品:Legato(Vinca) Co-StandbyServer for NT,Novell HA Server,Microsoft Cluster Server,DEC Cluster for NT,Legato Octopus,Legato FullTime,NeoHigh Rose HA,SUN Clusters,Veritas Cluster Server (FirstWatch),CA SurvivIT,1776
基於並行計算的集羣
主要應用於科學計算、大任務量的計算等環境。有並行編譯、進程通訊、任務分發等多種實現方法。
典型市場產品:TurboLinux enFuzion,Beowulf,Supercomputer Architectures,Platform
基於動態負載均衡的集羣
所有節點對外提供相同的服務,這樣可以實現對單個應用程序的負載均衡,而且同時提供了高可用性
性能價格比極高,但目前無法支持數據庫 [1] 
典型市場產品:TurboCluster Server,Linux Virtual Server,F5 BigIP,Microsoft Windows NT Load Balance Service

Cluster產品分類

HA集羣
實現高可用性,但對單個應用性能沒有提高,市場上大部分產品都是屬於這類,技術上也較簡單。
IP負載均衡集羣
利用IP技術實現對通用IP應用的支持。這種技術並不是很新,最早是在硬件上面採用的,Linux出現後才有了很多純軟件的模式,這也是open source帶來的好處吧
並行計算集羣
包括了一些象PVM,beowulf這樣的信息傳遞機制和API庫,也有任務調度產品,當然技術上最難的是並行編譯/並行系統等更智能化的產品
應用負載均衡集羣
雖然cluster的最高目的是實現真正的與應用程序無關的動態負載均衡,但由於技術上的限制,現在都只能在特殊的應用中實現,需要修改應用程序,所以並沒有通用產品,大多是廠商有自己的並行版本。例如oracle paraller server.
以上基本是按照工程或者説產品的角度劃分的,和技術上劃分應該有一定區別。

Cluster目的

1提高性能
一些計算密集型應用,如:天氣預報、核試驗模擬等,需要計算機要有很強的運算處理能力,現有的技術,即使普通的大型機器計算也很難勝任。這時,一般都使用計算機集羣技術,集中幾十台甚至上百台計算機的運算能力來滿足要求。提高處理性能一直是集羣技術研究的一個重要目標之一。
2降低成本
通常一套較好的集羣配置,其軟硬件開銷要超過100000美元。但與價值上百萬美元的專用超級計算機相比已屬相當便宜。在達到同樣性能的條件下,採用計算機集羣比採用同等運算能力的大型計算機具有更高的性價比。
3提高可擴展性
用户若想擴展系統能力,不得不購買更高性能的服務器,才能獲得額外所需的CPU存儲器。如果採用集羣技術,則只需要將新的服務器加入集羣中即可,對於客户來看,服務無論從連續性還是性能上都幾乎沒有變化,好像系統在不知不覺中完成了升級。
4增強可靠性
集羣技術使系統在故障發生時仍可以繼續工作,將系統停運時間減到最小。集羣系統在提高系統的可靠性的同時,也大大減小了故障損失。

Cluster系統結構

根據典型的集羣體系結構,集羣中涉及到的關鍵技術可以歸屬於四個層次:
(1)網絡層:網絡互聯結構、通信協議、信號技術等。
(2)節點機及操作系統層高性能客户機、分層或基於微內核的操作系統等。
(3)集羣系統管理層:資源管理、資源調度、負載平衡、並行IPO、安全等。
(4)應用層:並行程序開發環境、串行應用、並行應用等。
集羣技術是以上四個層次的有機結合,所有的相關技術雖然解決的問題不同,但都有其不可或缺的重要性。
集羣系統管理層是集羣系統所特有的功能與技術的體現。在未來按需(On Demand)計算的時代,每個集羣都應成為業務網格中的一個節點,所以自治性(自我保護、自我配置、自我優化、自我治療)也將成為集羣的一個重要特徵。自治性的實現,各種應用的開發與運行,大部分直接依賴於集羣的系統管理層。此外,系統管理層的完善程度,決定着集羣系統的易用性、穩定性、可擴展性等諸多關鍵參數。正是集羣管理系統將多台機器組織起來,使之可以被稱為“集羣”。

Cluster調度方法

進程遷移
進程遷移就是將一個進程從當前位置移動到指定的處理器上。它的基本思想是在進程執行過程中移動它,使得它在另一個計算機上繼續存取它的所有資源並繼續運行,而且不必知道運行進程或任何與其它相互作用的進程的知識就可以啓動進程遷移操作,這意味着遷移是透明的。進程遷移是支持負載平衡和高容錯性的一種非常有效的手段。對一系列的負載平衡策略的研究表明:進程遷移是實現負載平衡的基礎,進程遷移在很多方面具有適用性。 [2] 
(1)動態負載平衡。將進程遷移到負載輕或空閒的節點上,充分利用可用資源,通過減少節點間負載的差異來全面提高性能。
(2)容錯性和高可用性。某節點出現故障時,通過將進程遷移到其它節點繼續恢復運行,這將極大的提高系統的可靠性和可用性。在某些關鍵性應用中,這一點尤為重要。
(3)並行文件IO。將進程遷移到文件服務器上進行IO,而不是通過傳統的從文件服務器通過網絡將數據傳輸給進程。對於那些需向文件服務器請求大量數據的進程,則將有效地減少通訊量,極大地提高效率。
(4)充分利用特殊資源。進程可以通過遷移來利用某節點上獨特的硬件或軟件能力。
(5)內存導引機制。當一個節點耗盡它的主存時,內存導引機制將允許進程遷移到其它擁有空閒內存的節點,而不是讓該節點頻繁地進行分頁或和外存進行交換。這種方式適合於負載較為均衡,但內存使用存在差異或內存物理配置存在差異的系統。
進程遷移的實現角度
進程遷移的實現複雜性及對OS的依賴性阻礙了進程遷移的廣泛使用,尤其是對透明的進程遷移的實現。根據應用的級別,進程遷移可以作為OS的一部分、用户空間、系統環境的一部分或者成為應用程序的一部分。
(1)用户級遷移:用户級實現較為簡單,軟件開發和維護也較為容易,因此,現有的很多系統都是採用用户級實現,如Condor和Utopia。但由於在用户級無法獲得Kernel的所有狀態,因此,對於某類進程,無法進行遷移。另外,由於Kernel空間和User空間之間存在着壁壘,打破這個邊界獲得Kernel提供的服務需要巨大的開銷。因此,用户級實現的效率遠遠低於內核級實現。
(2)應用級遷移:應用級遷移的實現較為簡單,可移植性好,但是需要了解應用程序語義並可能需對應用程序進行修改或重新編譯,透明性較差,這方面的系統有Freedman、Skordos等。
(3)內核級遷移:基於內核的實現可以充分利用OS提供的功能,全面的獲取進程和OS狀態,因此實現效率較高,能夠為用户提供很好的透明性。但是由於需要對OS進行修改,實現較為複雜。這方面的典型系統有MOSIX和Sprite系統。
進程遷移的主要工作就在於提取進程狀態,然後在目的節點根據進程狀態再生該進程。在現實中,一個進程擁有很多狀態,並且隨着操作系統的演化,進程狀態也越來越多樣。
一般來説,一個進程的狀態可以分為以下幾類:
①進程執行狀態。表示當前運行進程的處理器狀態,和機器高度相關。包括內核在上下文切換時保存和恢復的信息,如通用和浮點寄存器值、棧指針、條件碼等。
②進程控制。操作系統系統用來控制進程的所有信,一般包括進程優先級、進程標識,父進程標識等。一旦系統編排了進程控制信息,進程遷移系統必須凍結該進程的運行。
③進程Memory狀態和進程地址空間。包括進程的所有虛存信息,進程數據和進程的堆棧信息等,是進程狀態的最主要的一部分。
④進程的消息狀態。包括進程緩衝的消息和連接(Link)的控制信息。進程遷移中通訊連接的保持以及遷移後連接的恢復是進程遷移中一項較有挑戰意義的問題。
⑤文件狀態。進程的文件狀態包括文件描述符和文件緩衝符。保持文件的Cache一致性和進程間文件同步訪問也是進程遷移機制需要着重考慮的。

Cluster區別

模擬集羣與數字集羣不同的地方,説簡單點就是:模擬集羣在單信道比數字對講機用户容量要小,語音沒有數字對講機清楚,只能實現簡單的數據功能。 [2] 
數字集羣分TDMA和FDMA兩種,TDMA是提供給專業用户使用的,是時分的制式。FDMA是提供給民用的,是頻分的制式。
FDMA和模擬對講機相比,除了可以把信道間隔做得更窄(模擬的是25KHz,數字的是12.5KHz兩時隙或6.25KHz四時隙),單信道用户量更大外,對用户來説並沒有太大的更新體驗。
TDMA制式的對講機和模擬對講機相比,除了單信道用户容量更大外,還可以現實同頻中轉。模擬系統中,要實現中轉,必須要有收、發頻率一對。而在TDMA時分數字系統中,可利用數字技術,通過時隙的轉換來實現中轉。例如:當中轉枱收到A時隙的數據時,同時轉發出去的數據就是在B時隙上實現的。
現在在中國還沒有自己的數字對講機標準。現在MOTOROLA的數字對講機是TDMA制式的,ICOM和建伍的數字對講機是FDMA制式的。

Cluster市場前景

集羣技術已經發展了多年,其中的分支也非常多。目前集羣技術正逐漸走向分層結構,以後也肯定會有專門用户前端、後端的集羣產品出現。
隨着計算機應用地位的逐漸提升,系統安全和重要性的日益增加,集羣技術必將會有着極為廣闊的應用前景。
參考資料
  • 1.    張劍.信息安全技術:電子科技大學出版社 ,2013:130,215
  • 2.    張靖.計算機網絡安全與防護:電子科技大學出版社 ,2010:79