集羣技術


1 集羣技術的定義

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


2 採用集羣的目的

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


3 集羣的分類

  1 科學集羣
  科學集羣是並行計算的基礎。通常,科學集羣涉及爲集羣開發的並行應用程序,以解決複雜的科學問題。科學集羣對外就好像一個超級計算機,這種超級計算機內部由十至上萬個獨立處理器組成,並且在公共消息傳遞層上進行通信以運行並行應用程序
  負載均衡集羣
  負載均衡集羣爲企業需求提供了更實用的系統。負載均衡集羣使負載可以在計算機集羣中儘可能平均地分攤處理。負載通常包括應用程序處理負載和網絡流量負載。這樣的系統非常適合向使用同一組應用程序的大量用戶提供服務。每個節點都可以承擔一定的處理負載,並且可以實現處理負載在節點之間的動態分配,以實現負載均衡。對於網絡流量負載,當網絡服務程序接受了高入網流量,以致無法迅速處理,這時,網絡流量就會發送給在其它節點上運行的網絡服務程序。同時,還可以根據每個節點上不同的可用資源或網絡的特殊環境來進行優化。與科學計算集羣一樣,負載均衡集羣也在多節點之間分發計算處理負載。它們之間的最大區別在於缺少跨節點運行的單並行程序。大多數情況下,負載均衡集羣中的每個節點都是運行單獨軟件的獨立系統。
  但是,不管是在節點之間進行直接通信,還是通過中央負載均衡服務器來控制每個節點的負載,在節點之間都有一種公共關係。通常,使用特定的算法來分發該負載。
  3 高可用性集羣
  當集羣中的一個系統發生故障時,集羣軟件迅速做出反應,將該系統的任務分配到集羣中其它正在工作的系統上執行。考慮到計算機硬件和軟件的易錯性,高可用性集羣的主要目的是爲了使集羣的整體服務儘可能可用。如果高可用性集羣中的主節點發生了故障,那麼這段時間內將由次節點代替它。次節點通常是主節點的鏡像。當它代替主節點時,它可以完全接管其身份,因此使系統環境對於用戶是一致的。
  高可用性集羣使服務器系統的運行速度和響應速度儘可能快。它們經常利用在多臺機器上運行的冗餘節點和服務,用來相互跟蹤。如果某個節點失敗,它的替補者將在幾秒鐘或更短時間內接管它的職責。因此,對於用戶而言,集羣永遠不會停機。
  在實際的使用中,集羣的這三種類型相互交融,如高可用性集羣也可以在其節點之間均衡用戶負載。同樣,也可以從要編寫應用程序的集羣中找到一個並行集羣,它可以在節點之間執行負載均衡。從這個意義上講,這種集羣類別的劃分是一個相對的概念,不是絕對的。


4 集羣的系統結構

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


5 集羣系統的任務調度方法

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


6 模擬集羣和數字集羣的區別

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


7 集羣系統的發展趨勢

  雖然集羣系統的構建目前可以說是模塊化的,從硬件角度來看可以分爲節點機系統、通訊系統、存儲系統等,軟件角度則主要有操作系統、集羣操作系統(COS)、並行環境、編譯環境和用戶應用軟件等,目前高性能計算機的通訊、存儲等硬件系統是伴隨摩爾定律快速發展的,跟蹤、測試、比較最新硬件設備構成的高性能計算機的可能方案也成了高性能計算機廠商的重要科研活動,而所有這些關鍵部件研發、系統方案科研以及廠商的自主部件研發的高度概括就是“整合計算”。整合硬件計算資源的同時,伴隨着整合軟件資源,其中集羣操作系統COS是軟件系統中連接節點機操作系統和用戶並行應用的重要“黏合劑”,也是高性能計算機廠商的技術殺手鐗。
  高性能集羣系統目前在國內的應用領域主要集中在氣象雲圖分析和石油勘探的領域。這樣的應用對於高性能集羣系統來說進入門檻比較低,所以目前這些領域都採用了國內廠商構建的集羣系統。雖然對比要處理大量併發的小問題的用於商業計算的高可用性集羣來說,高性能集羣實現起來要簡單一些。但實際上,高性能集羣的構建中仍有許多技術上的難點,尤其是高性能集羣系統往往是針對一個很獨特的科學計算的應用,而對這種應用的實現用高性能集羣系統來計算,就必須要先建立數學模型,而這樣的建模過程需要大量的對於這種應用模式的理解。總結起來,可管理性、集羣的監控、並行程序的實現、並行化的效率以及網絡實現是構建高性能集羣的幾個難點。這其中,並行化程序的實現就是指特定應用領域的特定應用程序集羣系統上的實現。雖然有諸多的技術實現上的難點,但集羣系統本身的優勢仍然給了廠商們克服難點、攻克高性能集羣的力量。首先撇開一些具體的優勢不說,從互聯網中心服務器的變化來看,可以清晰地觀察到集羣結構是中心服務器的發展趨勢。20世紀90年代以前,中心服務器一般都用大型機(Mainframe),大型機上可以完成一切的應用和服務,用戶從終端通過網絡完成應用。這種應用模式帶來許多的好處:應用集中、比較好部署、系統監控、管理方便等。但大型機的缺點也是非常明顯的,主要是設備昂貴,很難實現高可用解決方案;非高可用系統在出現故障時,全部應用都受到影響;操作系統、設備和部件比較專用,用戶本身維護困難;可擴展性不強等。這些缺點中的任何一個都是用戶難以接受的。隨着PC及其操作系統的普及和Intel CPU的性能和穩定性的不斷提高,人們逐漸用PC服務器構成的分佈式系統(Distributed System)去代替大型機。分佈式系統解決了大型機上面提到的多個缺點,卻丟棄了大型機應用的優點,服務器多且雜,不好監控、管理,不好部署。因此綜合大型機和分佈式系統優勢的服務器必將成爲趨勢,集羣系統就是這樣應運而生的服務器。



From: http://baike.baidu.com.cn/view/4804677.htm


發佈了38 篇原創文章 · 獲贊 13 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章