集羣系統概述

集羣系統概述

1 引言

第一臺計算機問世已經半個世紀了,在這期間計算機技術經歷了五次更新換代。更新換代的標誌主要有兩個:一個是計算機的器件,另一個是系統體系結構。從第一代到第五代計算機,器件發生了根本的變化:從電子管、晶體管發展到集成電路,而集成電路又經小規模、中規模、大規模、非常大規模等階段發展到超大規模階段。系統體系結構的不斷改進,許多重要的概念的不斷提出並且得到實現,推動計算機技術向更高的層次發展。從早期的變址寄存器、通用寄存器、程序中斷和I/O通道等概念,到 虛擬存儲 器、Cache存儲器、微程序設計、系列機、基於總線的多CPU系統、向量處理機等概念,發展到64位RISC處理器、基於MPP、NUMA、集羣等體系結構的可伸縮並行處理系統,計算機系統技術也取得了突飛猛進的發展.

     隨着計算機系統技術的突飛猛進, 高性能計算所採用的硬件設備也越來越先進, 經歷了從向量計算機到並行計算機再到集羣系統的過度, 當前, 集羣系統在高性能計算領域越來越得到廣泛的應用.

2 集羣系統

對集羣的研究起源於集羣系統的良好的性能可擴展性(scalability)。提高CPU主頻和總線帶寬是最初提供計算機性能的主要手段。但是這一手段對系統性能的提供是有限的。接着人們通過增加CPU個數和內存容量來提高性能,於是出現了向量機,對稱多處理機(SMP)等。但是當CPU的個數超過某一閾值,象SMP這些多處理機系統的可擴展性就變的極差。主要瓶頸在於CPU訪問內存的帶寬並不能隨着CPU個數的增加而有效增長。與SMP相反,集羣系統的性能隨着CPU個數的增加幾乎是線性變化的。

  集羣集羣技術可如下定義:一組相互獨立的服務器在網絡 中表現爲單一的系統,並以單一系統的模式加以管理。 此單一系統爲客戶工作站提供高可靠性的服務。大多數模式下,集羣中所有的計算機擁有一個共同的名稱,集羣內任一系統上運行的服務可被所有的網絡客戶所使用。集羣必須可以協調管理各分離的組件的錯誤和失敗,並可透明地向集羣中加入組件。一個集羣包含多臺( 至少二臺) 擁有共享數據存儲 空間的服務器。任何一臺服務器運行一個應用時,應用數據被存儲在共享的數據空間內。 每臺服務器的操作系統和應用程序文件存儲在其各自的本地儲存空間上。集羣內各節點服務器通過一內部局域網相互通訊。當一臺節點服務器發生故障時,這臺服務器上所運行的應用程序將在另一節點服務器上被自動接管。當一個應用服務發生故障時,應用服務將被重新啓動或被另一臺服務器接管。 當以上任一故障發生時,客戶將能很快連接到新的應用服務上

簡單的說,集羣就是一組計算機,它們作爲一個整體向用戶提供一組網絡資源。這些單個的計算機系統就是集羣的節點(node)。一個理想的集羣是,用戶從來不會意識到集羣系統底層的節點,在他/她們看來,集羣是一個系統,而非多個計算機系統。並且集羣系統的管理員可以隨意增加和刪改集羣系統的節點。

集羣可以劃分爲三方面:High-Availability(HA)(高可用性集羣)、Load Balance(負載 均衡 集羣)、Height Performance Computation(HPC)(高性能計算集羣),嚴格來說,這些分類存在着一些交叉, 有一些文章將負載均衡集羣劃分到高可用性集羣內,本文將集羣劃分爲高性能計算集羣和高可用性集羣。

2.1 高性能計算集羣


     簡單的說,高性能計算(High-Performance Computing)是計算機科學的一個分支,它致力於開發超級計算機,研究並行算法和開發相關軟件。 高性能計算主要研究如下兩類問題:
1. 大規模科學問題,象天氣預報、地形分析和生物製藥等;
2. 存儲 和處理海量數據,象數據挖掘、圖象處理和基因測序;
     高性能計算集羣主要爲高性能計算的需求而設計, 從並行任務間的關係角度來看可以分成以下幾類


1.高吞吐計算(High-throughput Computing)


    這類高性能計算,可以把它分成若干可以並行的子任務,而且各個子任務彼此間沒有什麼關聯。象在家搜尋外星人(SETI@HOME -- Search for Extraterrestrial Intelligence at Home)就是這一類型應用。這一項目是利用Internet上的閒置的計算資源來搜尋外星人。SETI項目的服務器將一組數據和數據模式發給Internet上參加SETI的計算節點,計算節點在給定的數據上用給定的模式進行搜索,然後將搜索的結果發給服務器。服務器負責將從各個計算節點返回的數據彙集成完整的數據。因爲這種類型應用的一個共同特徵是在海量數據上搜索某些模式,所以把這類計算稱爲高吞吐計算。所謂的Internet計算都屬於這一類。按照Flynn的分類,高吞吐計算屬於SIMD(Single Instruction/Multiple Data)的範疇。

2.分佈計算(Distributed Computing)


    另一類計算剛好和高吞吐計算相反,它們雖然可以給分成若干並行的子任務,但是子任務間聯繫很緊密,需要大量的數據交換 。按照Flynn的分類,分佈式的高性能計算屬於MIMD(Multiple Instruction/Multiple Data)的範疇。


3. 高性能計算集羣.

高性能集羣通過將多臺機器連接起來同時處理複雜的計算問題。模擬星球附近的磁場、預測龍捲風的出現、定位石油資源的儲藏地等情況都需要對大量的數據進行處理。傳統的處理方法是使用超級計算機來完成計算工作,但是超級計算機的價格比較昂貴,而且可用性和可擴展性不夠強,因此集羣成爲了高性能計算 領域矚目的焦點。

高性能計算 集羣 ,英文原文爲High Performance Computing Cluster,簡稱HPC Cluster,是指以提高科學計算能力爲目的計算機集羣技術。HPC Cluster是一種並行計算集羣的實現方法。並行計算是指將一個應用程序分割成多塊可以並行執行的部分並指定到多個處理器上執行的方法。目前的很多計算機系統可以支持SMP(對稱多處理器)架構並通過進程調度機制進行並行處理,但是SMP技術的可擴展性是十分有限的,比如在目前的Intel架構上最多隻可以擴展到8顆CPU。爲了滿足哪些"計算能力飢渴"的科學計算任務,並行計算集羣的方法被引入到計算機界。著名的"深藍"計算機就是並行計算集羣的一種實現。
  由於在某些廉價而通用的計算平臺(如Intel+Linux)上運行並行計算集羣可以提供極佳的性能價格比,所以近年來這種解決方案 越來越受到用戶的青睞。 比如殼牌石油(Shell )所使用的由IBM xSeries 服務器 組成的1024 節點的Linux HPC Cluster 是目前世界上計算能力最強的計算機之一。
  高性能計算 集羣 向用戶提供一個單一計算機的界面。前置計算機負責與用戶交互,並在接受用戶提交的計算任務後通過調度器程序將任務分配給各個計算節點執行;運行結束後通過前置計算機將結果返回給用戶。程序運行過程中的進程間通信(IPC )通過專用網絡 進行。
  高性能計算 集羣 中使用的服務器通常可以分爲用戶節點、管理 節點、存貯節點和計算節點四種。它們的角色分別是:
  用戶節點:
  提供用戶界面的計算機。它從用戶那裏接受任務,運行調度器(在本地或獨立的"控制節點"上)將任務分派到其它計算機,並將運算結果返回給用戶。
  管理節點:
  提供管理功能的計算機。它應該能夠使管理員從這一計算機對集羣中的任意一臺計算機進行監視和操作,並處理集羣中所有計算機的日誌和報警信息。
  存貯節點:
  提供存貯共享的計算機。爲了使任務可以並行執行,每臺執行任務的計算機必須能夠訪問同樣的數據。存貯節點通過網絡共享(NFS)或其它方式來確保數據訪問的同步。
  計算節點:
  真正執行計算任務的計算機。集羣中的大部分計算機都是這種類型。一個HPC Cluster中通常同時使用三個網絡,它們分別是IPC網絡,管理網絡和存貯訪問網絡。根據具體的使用需求和選擇的節點特性,這些網絡可以使用多種介質和協議。
  IPC網絡:
  用於並行任務執行時的進程間通信的專用網絡,通常要求延遲小,帶寬大。
  管理網絡:
  用來收集集羣信息、監視集羣計算機和執行維護任務的網絡。
  存貯訪問網絡:
  用來訪問公用存貯的專用網絡。

下面主要介紹當前應用較多的Linux集羣系統

2.2.1 Beowulf

1.Beowulf集羣歷史  
   在1994年夏季,Thomas Sterling和Don Becker在CESDIS(The Center of Excellence in Space Data and Information Sciences)用16個節點和以太網 組成了一個計算機集羣系統,並將這個系統命名爲Beowulf。Beowulf集羣。Beowulf集羣提供了一種使用COTS(Commodity off the shelf)硬件構造集羣系統以滿足特殊的計算需求的方法。這裏的COTS是指象PC和以太網這種廣爲應用的標準設備,它們通常可以由多家廠商提供,所以通常有很高的性價比。Beowulf集羣這種方法很快從NASA傳遍了整個科研機構和社團。實際上,Beowulf集羣現在已被人們看作高性能計算 中的一個分支或流派。
   因爲幾乎每個Beowulf集羣的設計者都有自己的Beowulf集羣的定義,恐怕很難給Beowulf集羣下一個確切的定義。一些人認爲只有那些採用和原始的Beowulf集羣系統一樣方法構建的系統才叫Beowulf集羣。而另一些人則認爲凡是能夠在多個工作站上運行並行代碼的系統都稱爲Beowulf集羣。這裏我們只是列舉多數Beowulf集羣具有的特徵作爲Beowulf集羣的定義:
  Beowulf是一種系統結構,它使得多個計算機組成的系統能夠用於並行計算。Beowulf系統通常有一個管理 節點和多個計算節點構成。它們通過以太網(或其他網絡)連接。管理節點監控計算節點,通常也是計算節點的網關和控制終端。當然它通常也是集羣系統文件服務器。在大型的集羣系統中,由於特殊的需求,這些管理節點的功能也可能由多個節點分攤。
  Beowulf系統通常由最常見的硬件設備組成,例如,PC、以太網卡和以太網交換 機。Beowulf系統很少包含用戶定製的特殊設備。
  Beowulf系統通常採用那些廉價且廣爲傳播的軟件,例如,Linux 操作系統、並行虛擬機(PVM)和消息傳遞接口(MPI)。
2 .Beowulf集羣的分類 
  
  由於一些特殊的目的如系統性能,有些Beowulf集羣系統也採用一些用戶定製的設備(它們通常由一家廠商提供)。爲了區分這些特殊的系統,通常把Beowulf分爲兩大類:

l  第一類Beowulf集羣(CLASS I Beowulf)
  
  這一類Beowulf集羣全部由COTS設備組成。第一類Beowulf系統的優點是:硬件設備由多個來源,通常具有廉價和易管理維護的特點。不依賴於單個硬件供應商,所有設備驅動都由Linux開發社團提供,通常都是標準設備,例如,SCSI、以太網等等
  當然第一類Beowulf集羣的缺點也是非常顯然的。由於所採用的硬件都沒有經過性能優化,所以其很難達到很好的性能。比如,由於以太網的高延遲和低帶寬使得集羣系統中消息傳遞很難達到MIMD應用的需求,從而使整個集羣系統的計算能力大打折扣。
 

l  第二類Beowulf集羣(CLASS II Beowulf)
  
  第二類Beowulf集羣是指那些採用了用戶定製設備的Beowulf集羣。這類集羣系統最大優點是具有很好的性能。例如,採用Myrinet作爲集羣系統的IPC網絡可以極大地提供進程間消息傳遞延遲和速度。它的缺點就是依賴於單個硬件提供商而且價格高昂。

3.Beowulf 集羣硬件和網絡 
  
  Beowulf 集羣硬件和網絡層次需要解決的問題是如何組織硬件使其達到最高的性價比。爲了達到很好的性價比,Beowulf通常採用廉價的COTS硬件。當然有時爲了提供某些關鍵的性能,也會使用一些特殊的設備。
  從硬件組織的角度說,Beowulf集羣中的節點都是非共享內存的計算機,它們通過消息傳遞進行通信。實際上,我們還有其他組織硬件完成並行計算的方式。
  簡單地說,有兩種組織硬件完成並行計算的方法:
(1)通過消息傳遞通信的本地內存(非共享內存)計算機系統 (Beowulf集羣)
(2)通過內存訪問通信的共享內存計算機系統 (SMP計算機)
  當然也存在將多個本地或共享內存計算機相連並創造一個混和的共享內存計算機系統的可能。但在最終用戶看來,這種計算機系統就好像一個大型的共享內存計算機。這種技術被我們叫做非一致內存訪問NUMA(Non Uniform. Memory Access)。但是從底層說,一個NUMA計算機系統必須在節點間傳遞消息。
  當然也可以將共享內存計算機作爲一個本地內存的計算機連入一個Beowulf集羣系統。由於Linux系統 支持SMP計算機,所以Linux系統本身能夠在SMP中的多個CPU上調度作業。所以Beowulf集羣本身就沒有必要識別集羣的節點是不是共享內存計算機了。
  因爲Beowulf集羣採用消息傳遞完成並行程序間通信,所以網絡傳輸成了系統的瓶頸。在實際的系統中,通常採用有兩套彼此的獨立的網絡設備 。一套是普通的以太網,用於象系統管理和文件服務等普通的網絡通信。另一套網絡是用於進程間通信的高速網,象Myrinet和Giganet。和100M以太網相比,這類網絡具有低延遲和高帶寬的特性。
  還有三類設備雖然不是必須,但是對於集羣管理卻是非常重要的:
  KVM Swither:KVM是指Keyboard、Video和Mouse。這個設備可以讓系統管理員 用一套KVM管理系統中的所有節點。
  遠程電源管理設備(如ASM):這類設備使得管理員可以在管理節點Power on/off其他節點。
  Terminal Server:這種設備通過串口將節點連接起來。通過這個設備,管理員可以在管理節點上虛擬出其他節點上的控制終端。和KVM相比,這種方法不需要硬件的切換。
  
  Beowulf集羣在軟件層次面臨的問題是如何在硬件層次上獲得最大的性能。通常,Beowulf集羣採用Linux+MPI的方式支持並行計算。MPI是採用消息傳遞的方式實現並行程序間通信。雖然也可以採用其他的通信方法,但是消息傳遞模式是最適合於集羣系統的。簡單地說,有兩種在並行程序間傳遞併發的方法:
  使用處理器間的消息傳遞(MPI)
  使用操作系統的線程(Thread)
  其他的方法也存在,但是這兩種方法應用得最廣泛。 雖然存在效率和移植的問題,這兩種方法都可以在SMP,NUMA 和Cluster 上實現。
  

2.2.2 Platform LSF

由platform公司開發的lsf 多集羣系統使多個異構的計算機能夠通過局域網或廣域網共享計算資源,並能夠爲用戶提供對資源的透明訪問。Lsf現在主要支持以下三種大規模資源共享:

  1. 一個大企業中的多個部門,每個部門可以有一個或多個集羣,這樣就使得部門內部和部門之間可以共享資源。
  2. 較小部門的數據中心。大的昂貴的計算資源如超級計算機可以透明地與遠方較小的部門直接進行共享。
  3. 通過鬆散連接的站點共享資源。

Lsf將多個集羣連接在一起,一個集羣往往是企業中的一個部門,每個集羣中有一個主控機,此主控機負責收集該集羣系統中的各臺主機的負載 信息,並且根據各主機的負載信息情況對作業進行調度。各個集羣系統之間根據一定的策略進行資源共享。在每個主控機上定義了該集羣能共享哪些集羣系統中的資源。當用戶發送了一個任務請求時,lsf系統能將此任務發送到對應的資源所在地,並根據調度策略選擇負載較輕的機器對此任務進行處理。當多個用戶請求同一個資源時,根據用戶的請求優先級來確保優先級高的用戶的緊急任務能首先得到滿足。Lsf還具有以下特點:

  1. 提供了增強的計算能力。
    通過全局資源共享,用戶可以訪問各種各樣的計算資源,許多閒置的計算機現在都可以充分利用起來進行任務處理,許多機器也可以並行地執行同一個任務,這樣就大大增強了用戶的計算能力。
  2. lsf提供了用戶可配置的安全 策略。
    通過讓用戶使用RFC931協議、Kerberos、和DCE認證等策略,系統保證了遠方的任務來自授權的用戶。
  3. 每一個集羣都是一個自治的系統。
    每個集羣中的主控機的配置文件中記錄瞭如下信息:如允許在多個集羣系統之間傳輸的任務的數量與類型,允許在多個集羣之間共享資源的用戶名。
  4. 提供非共享的用戶賬號和文件系統。
    當任務在多個集羣之間進行傳輸時,用戶的賬號可以根據配置文件進行映射。爲了支持異構的系統,lsf通過在任務執行前後將文件在集羣系統之間傳遞來提供對非共享的文件系統的支持。
  5. 良好的可擴展性。
    在單一的集羣系統中通過主控機進行管理,所有的配置信息都在主控機上,多個集羣系統之間信息的傳遞主要是與主控機有關,而與集羣中的其它主機無關。因此lsf的集羣能非常容易地擴展到成百甚至上千臺。

lsf系統支持多種操作系統平臺。
如主要的UNIX平臺:Sun Solaris、 HP-UX、 IBM AIX、 Digital UNIX/Compaq Tru64 UNIX、SGI IRIX以及 Red hat Linux、 Windows NT、Windows 2000等。

2.2.3 TurboCluster

TurboCluster是一個企業級的集羣方案 ,它允許在多個計算機上構建高可用的、可擴展的網絡。它支持Intel和Alpha芯片,支持Linux 、Windows NT 和Solaris操作系統平臺。使用TurboCluster系統可以顯著地提高基於TCP/IP協議的多種網絡服務的服務質量,這些服務包括Web、Mail、News和Ftp等。TurboCluster具有良好的可用性、可擴展性和可管理性,集羣內部的實際服務器 的數量可以擴充到無限臺。TurboCluster是一種基於軟件的集羣系統解決方案 ,它還能夠支持異構的網絡環境。

當客戶向集羣系統發送一個請求時,該請求首先到達高級流量管理 器,高級流量管理器通過一定的調度策略將此請求轉發到集羣中的某一臺實際服務器上對此請求進行處理,最終的迴應請求將直接發送給客戶。由於最終的迴應請求沒有通過高級瀏覽管理器而是直接發送給客戶,這樣大大減輕了高級瀏覽管理器上的負載,從而降低了瓶頸產生的可能。TurboCluster中採用的調度策略有:輪迴(Round Robin)、加權輪迴(Weighted Round Robin)、最少連接(Least Connection)。爲了減少高級流量管理器產生失效的可能,TurboCluster爲高級流量管理器準備了一個備份機。該備份機不斷詢問管理器來確認它正在正常工作,一旦發現主管理器已經失效,備份機將接替它繼續工作。

TurboCluster具有如下一些增強的性能。

  1. 通過heartbeat在備份機上監測流量管理器的運行狀態來提供更高的可用性。
  2. 對不可預測的系統或應用程序的失效進行自動管理。
  3. 提供動態的負載平衡,它能夠消除瓶頸並且處理峯值負載。
  4. 高級流量管理器只轉發已經授權的請求,通過在實際的應用程序服務器的前端增加虛擬防火牆 來提高網絡的安全性。
  5. TurboCluster對外只顯現出流量管理器的IP,而集羣系統中的實際服務器的IP地址對外界而言是不可見的。
  6. 當實際服務器正在對外界提供服務時就可以對它進行維護工作。

Mosix集羣

實際上把Mosix集羣放在高性能集羣這一節是相當牽強的,但是和Beowulf等其他集羣相比,Mosix集羣確實是種非常特別的集羣,它致力於在Linux系統上實現集羣系統的單一系統映象SSI(Single System Image)。Mosix集羣將網絡上運行Linux的計算機連接成一個集羣系統。系統自動均衡節點間的負載。因爲Mosix是在Linux系統內核中實現的集羣,所以用戶態的應用程序不需要任何修改就可以在Mosix集羣上運行。通常用戶很少會注意到Linux和Mosix的差別。對於他來說,Mosix集羣就是運行Linux的一臺PC。儘管現在存在着不少的問題,Mosix始終是引人注目的集羣系統。

MOSIX爲Linux核心增添了集羣計算的功能。它支持的操作系統平臺有BSD/OS 和Linux,它允許任意多個基於X86/Pentium的服務器和工作站協同工作。在MOSIX集羣環境中,用戶無需對應用程序進行修改,或將應用程序與庫連接起來,或將應用程序分配到不同的節點上運行。MOSIX會自動將這些工作透明地交給別的節點來執行。

MOSIX的核心是適應性的資源管理 算法,它對各節點的負載進行監測並做出相應的迴應,從而提高所有進程的整體性能。它使用搶先的進程遷移方法來在各節點中分配和再分配進程,從而充分利用所有的資源。適應性的資源管理算法具體上又包括適應性的負載平衡算法、內存引導算法和文件I/O的優化算法。這些算法都對集羣中的資源使用情況的變化做出響應。如:節點上的不平衡的負載分佈或由於內存不足而導致的過多的磁盤換入換出。在這種情況下,MOSIX將進程從一個節點遷移到另外一個節點上,從而來均衡 負載或將進程遷移到有足夠的內存空間的節點上。

由於MOSIX是在Linux的核心中實現的,因此它的操作對應用程序而言是完全透明的。可以用它來定義不同的集羣類型,這些集羣中的機器可以相同也可以不同。

與Turbocluster、Lsf等集羣系統不同的是,MOSIX集羣中的每個節點既是主節點又是服務節點,不存在主控節點。對於那些在本地節點創建的進程而言,該節點就是一個主節點;對於那些從遠方節點遷移過來的進程而言,該節點就是服務節點。這意味着可以在任意時刻向集羣中增加節點或從集羣中刪除節點,而不會對正在運行的進程產生不良的影響。MOSIX的另外一個特性就是它的監測算法能夠監測每個節點的速度、負載、可用內存、IPC 以及I/O rate 。系統使用這些信息來決定將進程發送到哪個具體的節點上。當在某個節點上創建了一個進程以後,該進程就在這個節點上執行。當該節點的負載超過了一定的閥值以後,就將該進程透明地遷移到別的節點上繼續執行。

MOSIX文件系統採用直接文件系統訪問的方法,它可以允許遷移到別的節點的進程在本地進行I/O操作。這樣就減少了需要進行I/O操作的進程與創建該進程的節點之間的通訊,從而允許這些進程更加自由地在集羣中的節點中進行遷移。MOSIX文件系統使所有節點都可以像訪問本地文件系統一樣透明地訪問其它節點上的所有目錄和文件。

一個低端的MOSIX配置可以包含通過以太網連接起來的多臺PC機。一個較大的配置可以包含通過快速以太網連接起來的多臺工作站和服務器。高端的MOSIX配置可以包含通過Gigabit-Ethernet連接起來的多臺SMP 或非SMP工作站和服務器。

除了高性能科學計算,MOSIX提供了一個有趣的選項,用於以共同設置創建集羣環境。通過使用服務器和工作站上的閒置資源,它可以更快更有效地創建和運行應用程序。由於訪問了多臺服務器,並且可以動態調整羣集大小和更改負載均衡規則,它還可以提供高度的服務器可用性。MOSIX的不利之處是它更改Linux內核行爲的一些核心部分,於是系統級應用程序將不會按期望運行。要使用網絡應用程序時,而該程序使用基於單個服務器地址的套接字連接,MOSIX通常也會受到限制。這意味着網絡應用程序在一個服務器節點上開始運行時,如果IP地址與套接字綁定,那麼它必須繼續在該節點上運行。顯然,MOSIX還正在開始遷移套接字,因此這很快就變成了爭論的焦點。

2.2.5 EDDIE

Eddie的主要目的是提供一些供那些進行重要任務處理的網站使用的工具,從而使這些網站能夠提供持續的高級服務。Eddie創建了一個真正的分佈式web服務器結構,它支持分佈於不同的物理地點的web服務器。它的結構如圖所示。

下圖所示的分佈式服務器包含兩個集羣,它們分別是site 1 和site 2。每個集羣都包含着一臺域名服務器和若干臺運行web服務器軟件的實際的服務器。當用戶敲入一個域名時,首先在Local DNS上對這個域名進行解析,找出與其對應的IP地址。如果Local DNS無法對這個域名進行解析,就將此域名發送到Authoritative DNS上,Authoritative DNS返回應該訪問的服務器的IP地址,然後用戶就可以訪問指定的服務器上的內容了。


Eddie 集羣結構圖 
  

Eddie主要包含兩個軟件包:HTTP網關和增強的DNS服務器。如圖5-2所示,在每個站點上增加一個新的服務器(即前端機),在其上運行HTTP網關來接受外界發來的請求並且將請求調度到合適的後端機上執行,DNS服務器上運行增強的DNS服務器軟件,通過該軟件可以在多個地理上分散的網址上均衡負載。

Eddie主要有以下與衆不同的特點:

  1. 提高了web服務器的吞吐量。通過提供強大的負載平衡能力,Eddie使用戶可以充分利用分佈式web服務器中的所有資源。主要在兩個地方使用了負載平衡。首先後端機將本機上的負載信息如CPU負載、內存、磁盤延遲、運行隊列數據以及頁面錯等信息發送給前端機,前端機根據負載輕重將外界請求發送到合適的服務器上。另外在增強DNS服務器軟件中也提供了負載平衡的功能,前端機和後端機的綜合負載信息都發送到Authoritative DNS服務器上,然後Local DNS可以根據各個Authoritative DNS上的負載的輕重來決定將域名解析的任務發送到哪一臺Authoritative DNS上。這樣就可以充分利用分佈式服務器環境中的所有資源,增強了web服務器的吞吐量。
  2. 提供很好的服務質量。首先Eddie通過使用靜態和動態負載平衡策略提高了web服務器的吞吐量,減少了用戶請求的響應時間;其次,當用戶發一個請求時,系統就要檢查是否來自該用戶的連接已經存在,如果存在,就將請求繼續發送到上次對該請求提供服務的服務器上,這樣就保證了用戶對web訪問的持續性。如果沒有足夠的資源,則將用戶請求加入等待隊列,並且告訴用戶它的請求要等待一會兒纔會被處理。
     Eddie 功能結構圖 

 

2.2.6 Windows® Compute Cluster Server™ 2003

Windows Compute Cluster Server™由兩部分組成。第一部分是Windows Server 2003 Compute Cluster Edition(CCE),它是一種源自Windows Server 2003(標準x64版本)的64位操作系統。第二部分是Microsoft Compute Cluster Pack(CCP),它可以提供集羣部署和管理工具,包括:作業調度工具、MPI以及用來管理集羣節點和任務的控制檯與界面。這些工具可與當前的Windows基礎設施相集成,例如,可使用活動目錄(Active Directory)管理用戶和安全 性,集羣管理控制檯可利用微軟管理控制檯(Microsoft Management Console)等。Cluster Pack還能夠與支持MPI、並行調試以及OpenMP的Visual Studio 2005協同工作。 作爲HP統一集羣產品組合一部分的Windows Compute Cluster Server 2003可用於HP集羣平臺3000和4000系統,以及集羣平臺4000刀片服務器系統。 HP消息傳送接口(HP-MPI)是領先的MPI標準實施,對於創建和移植並行應用至關重要,而且已被計劃移植到Windows產品中。另外,惠普和微軟還將與軟件提供商緊密合作,共同實現64位應用到Windows Computer Cluster Server 2003的移植和優化。

 

 

 

 

2.2. 7 Windows HPC Server 2008

Windows HPC Server 2008將是現有Windows Computer Cluster Server 2003的繼任者,基於Windows Server 2008 64-bit系統核心,因此不支持32位和IA64架構硬件。無疑,新的命名方式意味着微軟已經做好了準備,有信心迎接最艱苦的HPC工作量考驗。

  Windows HPC Server 2008將提供新的高速網絡、高效靈活的集羣管理工具、面向服務的體系結構(SOA)工程進度安排、支持合作伙伴的集羣文件系統,可用於計算流體力學、水利樞紐模擬等大規模並行項目,或者BLAST、蒙特卡羅模擬等複雜的並行項目。

  Altair Engineering Inc.、Cluster Resources Inc.、Platform Computing等多家相關行業企業都已宣佈支持Windows HPC Server 2008,而Panasas、Quantum Corp StorNext、HP PolyServe、Sanbolic的集羣文件系統均得到該系統的支持,IBM的IBM GPFS也將在不久後加入這一行列。

  在美國內布拉斯加大學PKI研究院的計算中心內,Windows HPC Server 2008已經被部署在一套擁有1151個節點的大型集羣上,爲政府、科研和工業用戶提供服務。愛荷華大學、劍橋大學、3M、Baker Hughes Inc.(石油服務公司)也都已經着手部署這套系統。

 

2.2.8 其它集羣

Legion


  Legion 試圖構建一個真正的多計算機系統。這是一個羣集,其中每個節點都是一個獨立系統,但在用戶看來,整個系統只是一臺計算機。Legion 設計成支持一臺世界範圍的計算機,由上百萬個主機以及數以萬億計的軟件對象組成。在Legion 中,用戶可以創立他們自己的合作小組。
  Legion提供了高性能並行、負載均衡、分佈式數據管理和容錯性。它通過其容錯管理和成員節點間的動態重新配置來支持高可用性。它還有一個可擴充核心,該核心可以在出現新的改進和進展時動態替換或升級。系統並不是只接受單一控制,而是可以由任意數量的組織管理,而每個組織都支持整體的自治部分。Legion API通過其內置的並行性提供了高性能計算 。
  Legion需要使用特別編寫的軟件,以使它可以使用其API庫。它位於用戶計算機操作系統之上,協調本地資源和分佈式資源。它自動處理資源調度和安全 性,還管理上下文空間以描述和訪問整個系統中上億種可能之外的對象。然而,在每個節點上運行時,不需要使用系統管理員特權,並且可以使用無特權的用戶帳號進行工作。 這將增加加入Legion 的節點和用戶的靈活性。

Cplant


  Sandia National Lab中的Computational Plant是一個大規模整體並行羣集,用於實現TeraFLOP(萬億次浮點運算)計算並構建在商業組件上。整個系統由“可伸縮單元”組成,這些“可伸縮單元”可以劃分成適合不同目的(計算、磁盤I/O、網絡I/O、服務管理)。羣集中的每個節點都是一個Linux系統,帶有專門開發的、提供分區服務的內核級模塊。每個分區的功能可以通過裝入和卸載內核級模塊來修改。

  項目分三個階段完成,開始階段是原型,有128個基於433-MHz DEC Alpha 21164的系統,其中每個都有192 MB RAM和2 GB驅動器,相互之間用Myrinet網卡和8-端口的SAN交換機連接。第1階段將它擴充爲400個基於21164的工作站,這些工作站的運行速度爲500 MHz,有192 MB RAM,沒有存儲 器,用16-端口的SAN交換機以超立方體結構連接起來,並且運行Red Hat 5.1。當前的第2階段有592臺基於DEC 21264的機器,它們的運行速度爲500 MHz,有256 MB RAM,沒有驅動器。每個節點都使用64-位,33-MHz PCI Myrinet網卡,並且仍使用16-端口交換機以超立方體結構連接。

  在Cplant上運行的應用程序包括解決稀疏線性系統、流體力學和結構力學中計算系統的優化、分子力學的模擬、線性結構力學的有限元分析,以及並行應用程序的動態負載均衡庫。

JESSICA 2


  香港大學的系統研究小組有一個基於Java的羣集,叫做支持Java的單系統映像計算體系結構(JESSICA),它作爲一箇中間件層以完成單系統映像的幻想。該層是每個使用分佈式共享內存(DSM)系統進行通信的節點上運行的所有線程的一個全局線程空間。該項目使用ThreadMark DSM,但最終將用他們自己創建的JiaJia Using Migrating-home Protocol (JUMP)。他們使用定製的基於Java的ClusterProbe軟件來管理羣集的50個節點。

PARIS


  法國的IRISA研究所的“大規模數字模擬應用程序的編程並行和分佈式系統”(PARIS)項目提供了幾種用於創建Linux服務器羣集的工具。該項目由三部分組成:羣集的資源管理軟件、並行編程語言的運行時環境,以及分佈式數字模擬的軟件工具。

  資源管理軟件包括用於共享內存、磁盤和處理器資源的Globelins分佈式系統,及其Dupleix和Mome分佈式共享內存系統。

資源管理軟件包括用於共享內存、磁盤和處理器資源的 Globelins 分佈式系統,及其 Dupleix 和 Mome 分佈式共享內存系統。

    負載均衡羣集負載均衡羣集在多節點之間分發網絡或計算處理負載。在這種情況下,區別在於缺少跨節點運行的單並行程序。大多數情況下,那種羣集中的每個節點都是運行單獨軟件的獨立系統。但是,不管是在節點之間進行直接通信,還是通過中央負載均衡服務器來控制每個節點的負載,在節點之間都有一種公共關係。通常,使用特定的算法來分發該負載。

網絡流量負載均衡是一個過程,它檢查到某個羣集的入網流量,然後將流量分發到各個節點以進行適當處理。它最適合大型網絡應用程序,如 Web 或 FTP 服務器。負載均衡網絡應用服務要求羣集軟件檢查每個節點的當前負載,並確定哪些節點可以接受新的作業。這最適合運行如數據分析等串行和批處理作業。 那些系統還可以配置成關注某特定節點的硬件或操作系統功能:這樣,羣集中的節點就沒有必要是一致的。

 

EnFuzion

EnFuzion 是 TurboLinux 推出的科學羣集產品,它並不基於 Beowulf。但是,它可以支持上百個節點以及許多不同的非 Linux 平臺,包括 Solaris、Windows NT、HP-UX、IBM AIX、SGI Irix 和 Tru64。EnFuzion支持在節點之間實現自動負載均衡和資源共享,而且可以自動重新安排失敗的作業。EnFuzion 非常有趣,因爲它運行所有現有軟件,並且不需要爲環境編寫定製的並行應用程序。它支持在節點間實現自動負載均衡和資源共享,而且可以自動重新安排失敗的作業。

 

2.2 高可用性集羣

高可用性(HA)羣集致力於使服務器系統的運行速度和響應速度儘可能快。它們經常使用在多臺機器上運行的冗餘節點和服務,用來相互跟蹤。有許多應用程序都必須一天二十四小時地不停運轉,如所有的web服務器、工業控制器、ATM、遠程通訊轉接器、醫學與軍事監測儀以及股票處理機等。對這些應用程序而言,暫時的停機都會導致數據的丟失和災難性的後果。如果某個節點失敗,它的替補將在幾秒鐘或更短時間內接管它的職責。因此,對於用戶而言,羣集永遠不會停機。
  某些HA羣集也可以維護節點間冗餘應用程序。因此,用戶的應用程序將繼續運行,即使他或她使用的節點出了故障。正在運行的應用程序會在幾秒之內遷移到另一個節點,而所有用戶只會察覺到響應稍微慢了一點。但是,這種應用程序級冗餘要求將軟件設計成具有羣集意識的,並且知道節點失敗時應該做什麼。但對於Linux,大多數現在還做不到。因爲Linux系統沒有HA集羣標準,並且也沒有公共API可供應用程序開發者構建有羣集意識的軟件。
  HA羣集可以執行負載均衡,但通常主服務器運行作業,而系統使輔助服務器保持閒置。輔助服務器通常是主服務器操作系統設置的鏡像,儘管硬件本身稍有不同。輔助節點對主服務器進行活動監控或心跳觀察,以查看它是否仍在運行。如果心跳計時器沒有接收到主服務器的響應,則輔助節點將接管網絡和系統身份(如果是Linux系統,則是IP主機名和地址)。但是,Linux在這一領域仍有一點忽略。

高可用集羣通常有兩種工作方式:

容錯系統:通常是主從服務器 方式。從服務器檢測主服務器的狀態,當主服務工作正常時,從服務器並不提供服務。但是一旦主服務器失效,從服務器就開始代替主服務器向客戶提供服務。
負載均衡 系統:集羣中所有的節點都處於活動狀態,它們分攤系統的工作負載。一般Web服務器集羣、數據庫集羣和應用服務器集羣都屬於這種類型

下面列舉出市場上主要的HA集羣.

 

2.2.1 Apptime .Watchdog 3.0

  Wizard公司建立於1992年,2000年改名爲Apptime。Watch-dog3.0是該公司出品的高可用及負載平衡集羣產品。Watch-dog在1999年移植到linux平臺上。Watch-dog Light是Watch-dog的簡化版,只能支持兩個節點和一個應用服務。 在Watch-dog 3.0 中數據是不能夠併發訪問的,每個需要數據訪問的應用服務只能單獨訪問數據,數據在被訪問期間鎖定,這就避免了併發訪問可能造成的衝突。

  當一個提供服務的節點需要更新時,系統管理員可以手動的在該節點上執行failover,Watch-dog 3.0 linux版本不需要改動內核,該產品適用於Red Hat, SuSE, Debian, FreeBSD,Windows NT/2000, Solaris, HP-UX, IRIX, AIX以及Tru64 UNIX.,起價爲每節點1000美元,Watch-dog Light起價爲每節點250美元,其用戶範圍包括ISP,ASP,電信運營商,電子商務等。

  下面列出了Watch-dog 3.0最重要的特點:

  1. 最多可支持32,000 個節點

  2. 一個SNMP 網關

  3 . 支持多種應用服務,包括MySQL, Oracle, Sybase, Informix, SQL Server,Samba, sendmail等

  4 . 簡單的管理工具

  5 . 支持多種平臺的真實服務器,包括Windows NT/2000 以及 Solaris

  Apptime的集羣管理軟件包含了基於X500或LDAP的分佈式集羣管理以及基於HTTP/XML的遠程檢測和管理。

 

2.2.2 Hewlett-Packard MC/ServiceGuard

  Hewlett-Packard帶來的產品是MC/ServiceGuard,它原是基於HP-UX的高可用集羣產品,移植到linux平臺後仍然保持了其優良的功能。MC/ServiceGuard的高可用性已經得到了驗證,在UNIX環境下已經售出了超過45000份許可證。MC/ServiceGuard構成了其他HP的高可用性解決方案的基礎。包括了多種容錯方案(Campus Cluster, MetroCluster Continental-Clusters)

MC/ServiceGuard和linux內核有着緊密的聯繫。HP的即將開放源碼的Watchdog記時驅動器已經和linux內核緊密結合在了一起。MC/ServiceGuard的初期版本最多支持4個節點,預計在後續版本中會增加到16個。MC/ServiceGuard在開始階段會安裝在HP的基於intel芯片的網絡服務器中,之後也會運行在基於RISC處理器的服務器上。集羣中的每個節點都是對等的,每個節點提供一個或多個應用,當一個節點失效時,該節點上的應用自動轉移到集羣中的其他節點上去。該應用所對應的ip地址也被移動到相同的節點上去,所以客戶可以使用同樣的機器名或ip地址進行連接。

  HP的目標是那些需要在數據庫以及應用層保護其關鍵任務的企業應用。 HP同時與SAP及其他公司合作以提供ERP領域中的機羣解決方案。MC/ServiceGuard的價格還沒有最後制訂,在HP-UX平臺下的MC/ServiceGuard有三個定價方法,基於每節點的;基於功能的和基於每處理器的。

  MC/ServiceGuard的重要特點有:

  1. 對於錯誤的快速監測和快速恢復。

  2. 在系統軟硬件維護期間仍然保持應用的有效性。

  3. 在線重配置

  4. 可伸縮的負載平衡機制

  5. 應用程序不需爲支持高可用性而做任何修改

  6 . 數據保護

  MC/ServiceGuard 管理及監控軟件、硬件以及網絡的故障,故障的檢測和恢復過程是完全自動的,不需要管理員的介入。應用包可以通過幾個簡單的命令從一個節點移動到另一個節點。允許集羣中一個節點的定期維護,同時其他節點繼續工作。當該節點的維護完成後再重新加入集羣。同樣也允許改變節點的操作系統。

  MC/ServiceGuard擁有新的在線重配置功能,可以在系統運行時改變集羣的配置。 該功能允許用戶增減應用包,修改應用的屬性,修改整個包,與此同時集羣和其他的應用仍在運行。也允許用戶在線增減節點。節點失效後,在該節點上的不同應用可以被轉移到不同的新節點上去。工作量也被分配到其他的節點上。分配工作量使失效對集羣的影響減少到最小。

 

2.2.3 Legato Systems Legato Cluster

  Legato是一家在企業級存儲管理軟件方面處於領先地位的公司。該公司使用集羣技術以提高數據和應用的可用性。Legato Cluster是該公司一系列產品的名字,該系列產品的主要組成部分是Legato Cluste Enterprise,它包含了基本的集羣技術,而解決方案包則是在Legato Cluste Enterprise的基礎上加上幾個附加的模塊,Legato eCluster是一個解決方案包,它包含了Cluster Enterprise的幾個徵對Apache、Netscape以及HTTP 性能檢測而添加的附加模塊。Legato eCluster必須有web服務器的支持。

  Legato的集羣產品不公開源碼,但他們提供了一個完整的perl開發環境以支持開放源碼研究。Legato 的集羣產品於2000年4月移植到linux平臺上。Legato Cluster Enterprise不需要改變linux內核,而且沒有服務器數量的限制,這意味着用戶可以根據應用環境的需要部署儘可能多的服務器。

  Legato Cluster產品(Legato Cluster Enterprise和Legato eCluster)的主要特性有:

  1. 單一的配置界面,使管理和重配置大型的集羣變得更容易。

  2. 沒有服務器數量的限制,這對於有數百個web 服務器的商業環境來說非常重要。

  3 . 支持多種平臺,包括Linux ,Unix 和Windows NT/2000

  4 . 提供一個perl開發環境,允許在Legato Cluster架構上開發開放源碼的集羣解決方案。以及根據特定的應用定製解決方案。

  5 . Legato Cluster提供對Apache的支持模塊。

  6 . 支持TCP/IP,允許通過LAN或WAN連接。

  Legato eCluster的目標是使用ip層負載平衡解決方案的用戶。ip層負載平衡通過一個director將對指定ip地址的訪問請求分配到所有運行Legato eCluster軟件的web服務器上。 如果服務失效,Legato eCluster 重啓該服務或將機器標識,ip 地址,web 服務都轉移到另一臺備用機器上,然後將服務與內容連接起來。內容可以存放在SAN, NAS, NFS或本地硬盤上。如果內容的一個拷貝失效,則通過網絡將服務與內容的第二份拷貝連接起來。

  Legato Cluster通過對服務器的隔離檢測提供數據完整性,隔離檢測提供一種機制以使Legato Cluster的節點可以檢測自己是否與集羣中的其他節點隔離。其主要的目的是防止兩個節點都認爲對方已失效,而同時向同一塊磁盤空間中寫入數據。

  Legato Cluster防止對數據的併發訪問,任何一個時刻只有一個服務器能夠對一個特定的磁盤區域進行寫操作。Legato Cluster沒有提供複製數據的功能,該功能需由第三方提供.

  Legato Cluster提供一個單一的配置界面,管理員可以對整個集羣進行配置而不用對每個節點逐一進行配置。

 

2.2.4 Mission Critical Linux Convolo

  Mission Critical Linux公司提供專業的linux應用服務以及諮詢服務。Mission Critical Linux提供的服務包括預配置的集羣解決方案;安全服務技術(SST)提供對系統的安全的遠程管理,檢測,更新;Crash Analysis套件提供系統core dump的能力。Convolo是Mission Critical Linux公司提供的兩個節點的linux集羣產品。該產品基於Mission Critical Linux公司的開放源代碼的Kimberlite技術,遵循GPL。Convolo滿足了商業用戶對於高可用性以及數據完整性的要求。Convolo在2000年7月開始發售,售價爲每節點995美元。

Convolo 由一個有多年企業集羣開發經驗的開發小組做基於linux 的開發,其他大多數的高可用產品都是從unix 平臺移植而來的。Convolo適用於所有主要的linux發行版本以及IA-32 及IA-64結構。

  Convolo的目標是那些需要高可用性的數據庫以及提供動態內容的基礎的internet服務提供商;需要高可用性的文件服務器、郵件服務器、數據庫的企業用戶以及定製服務的用戶。

  下面是Convolo的主要特徵:

  1. 開放源碼

  2. 共享的存儲結構,支持SCSI和Fibre Channel,任何節點都能直接訪問

所有的共享磁盤。

3. 與linux 的版本及硬件平臺無關

4. 支持多種應用,包括Oracle, Sendmail,MySQL, NFS等

   Convolo 被設計爲在大範圍的系統失效後仍然能夠保持數據的完整性。在Convolo的設計中包含了對通過SCSI 或Fibre Channel總線互連的磁盤共享的支持。多個節點可以同時訪問存儲在共享磁盤分區上的文件以得到集羣的配置和狀態信息,同時過程鎖定機制使在一個時間內只有一個節點能修改這些信息。Convolo沒有使用DLM來控制對數據的訪問,所以在一個時間內只有一個節點能運行一個指定的服務及訪問該服務的數據,如果該節點失效,服務及對服務數據的訪問移動到另一個節點上

  爲了保證數據的完整性,在Convolo 1.2中提供了整個NFS的failover功能,包括了NFS鎖定協議以及一系列的鑑定機制。

Convolo包括了一個基於web的GUI管理工具和一個命令行管理工具,簡單的安裝/配置腳本,以及完整的文檔。

2.2.5 PolyServe Understudy and LocalCluster

  PolyServe公司提供了兩個系列的linux集羣產品。第一個系統現在已經發售,它包含了failover以及應用恢復特性,其目標是中小型的互連網應用,例如web服務器、防火牆、VPN、代理服務器、FTP服務器等。第二個系列現在還在開發中。 它提供了一系列完整的工具以支持大型的互聯網應用。

  第一個系列的產品包括Understudy 和LocalCluster Understudy是一個兩節點的高可用性及負載均衡的集羣產品,從1999年11月開始發售,

Understudy是一個低價的純軟件解決方案。Understudy要求集羣中節點的數據各自獨立,節點要部署在同一個子網中。Understudy不提供數據複製的功能,所以節點的數據需要手工更新。

  LocalCluster是一個支持多節點的產品,於2000年9月開始發售。LocalCluster是一個真正的分佈式解決方案,所有節點都是平等的。LocalCluster能夠在節點之間複製web數據。因爲數據複製到集羣中所有節點上,所以當一個失效的節點恢復後,其數據會自動的更新。現在LocalCluster還不能複製數據庫或動態的web內容 PolyServe的所有產品都使用了組通信技術。該技術提供了一個可複製的、可爲整個集羣進行配置的數據庫。允許管理員管理整個集羣而不是爲每個節點修改配置。

  Understudy 以及其他PolyServe的集羣產品可以運行Linux,FreeBSD/BSD, Windows NT/2000, 和Solaris上。PolyServe使其產品儘可能不受linux內核改變的影響,PolyServe支持多種linux發行版本,包括Red Hat, SuSE, Debian, Slackware等。

  下面介紹PolyServe系列集羣產品的主要特點:

  1. 擴展能力:一個集羣可以擴展到128 個節點,還可以由多個子集羣構成一

個可以容納數千個節點的集羣。

  2. 集羣文件系統:由物理上的共享存儲器所構成的可併發訪問的文件系統。

  3. 對整個集羣的配置工具

  4. 可以指定節點在failover 時的優先級,一個節點上不同的服務可以被轉

移到不同的備份節點上。

  5. 多系統的管理能力,可管理用戶,打印機,安全,應用等,可在一個控制

臺下管理單一系統,子集羣或整個集羣。

  PolyServe 未來的集羣產品將是一個共享的SSI 集羣,其目標是互聯網數據中心、ASP 、ISP 電子商務站點、以及內容提供商。產品的名稱和細節將在2001年公佈。

 

2.2.6 Red Hat High Availability Server

    Red Hat是在世界範圍內領先的linux發行商,佔據50%以上的市場份額。Red Hat High出品的High Availability Server是一項開放源碼的集羣技術,提供動態負載平衡以及TCP/IP,UDP服務的failover支持。High Availability Server在2000年6月開始出售,兩節點的負載平衡集羣售價爲1995美元。這個價格包含了技術支持,包括一年內的通過電話或web進行的安裝和配置的支持,之後可以以每節點995美元的價格添加節點。

  High Availability Server基於Red Hat linux 6.2,它支持與其他的linux版本,Solaris, 及Windows NT/2000組成一個異構的網絡環境。

  High Availability Server的目標是web服務器、FTP服務器、郵件網關、防火牆等需要負載平衡和高可用性的基於ip的應用。

  High Availability Server最主要的特點有

  1. 開放源碼的發行版

  2. 簡單的安裝

  3. 高性能以及高伸縮性

  4. 高適應性

  5. 增強的安全性

  6 . 易管理性

  High Availability Server需要對linux內核做一些修改,所有的改變都是開放源碼的。

  一個專門的安裝程序負責安裝集羣所需要的軟件包,節點的數量只取決於用戶的硬件和網絡環境。High Availability Server爲web服務器提供了增強的安全性,爲那些在開放的網絡環境下工作的web服務器提供了增強的安全配置。

  High Availability Server可以被配置爲FOS和LVS兩種工作模式,在FOS模式下,系統被配置爲兩個節點的熱備份集羣,爲應用提供冗餘。在LVS模式下,系統被配置爲一個多節點的集羣,其中包含兩個負責負載平衡的服務器,它們負責將用戶的請求定向到一個或多個基於ip的服務上,負載平衡的算法有輪轉調度,加權輪轉調度,最小連接調度和加權最小連接調度四種,負載均衡技術有網絡地址轉換,Ip隧道和直接路由三種。

2.2.7 SGI Linux FailSafe

  SGI 有兩個集羣產品,ACE和FailSafe。 ACE 是研發性質的技術,而FailSafe 是已經推向市場的集羣技術。在本文中只介紹FailSafe技術。FailSafe於1995年發佈,運行在SGI的IRIX Unix操作系統上。SGI和SuSE將其移植到了linux上,SGI在2000年8月將FailSafe的源碼開放。(http://oss.sgi.com/projects/failsafe/)

  Linux FailSafe是一個高可用的集羣產品,每個集羣支持最多8個節點。 各節點可以訪問共享的RAID 或鏡象磁盤。

  Linux FailSafe 爲用戶提供了一組系統恢復的工具,並允許用戶爲特定的應用編寫自己的恢復工具。Linux FailSafe爲多個重要的應用提供了高可用性的支持。包括NFS, Samba, Apache, 和Oracle。Linux FailSafe不需要應用做任何修改。

  雖然Linux FailSafe具有商業集羣產品的所有特徵,其主要面對的還是那些有創造性

的專業用戶。 一些應用(例如建模)使用大量的數據,所有的運算耗時數小時甚至數天,所以它們更需要高可用性的支持。雖然Linux FailSafe適用於商業應用,

  SGI 的主要目標是諸如CAD/CAM 、化學及生物學、數據管理、工程分析、科學計算等用戶

  下面列出了Linux FailSafe集羣技術的主要特點:

  1. 高可用性服務

  2. 動態集羣配置:一個節點可以動態的加入集羣或從集羣中刪除而不會導致

應用的中斷。

  3. 基於java 的集羣管理

  4. 在服務不間斷的情況下對節點進行維護:用戶可以將節點從集羣中刪除,

對其進行升級,然後再將其重新加入到集羣中,而集羣的服務不會受到任

何影響。

  5. 對數據完整性的保護

  Linux FailSafe 不需要對linux 內核的修改,Linux FailSafe 通過確保一個失效的節點不會再對一個文件系統或數據庫進行寫操作來提供對數據完整性的保護。當一個節點被發現失效後,集羣中的其他節點將其從集羣中刪除。

  Linux FailSafe有基於java的GUI。 基於java 的GUI 包括用來配置集羣的FailSafe 管理器以及用來以動態圖形的方式顯示集羣狀態的FailSafe 集羣觀測器。

2.2.8 SteelEye Technology LifeKeeper for Linux

  SteelEye Technology公司在1999年12月從NCR收購了Life-Keeper 技術,從而也擁有了使用該技術的一系列集羣產品。在此之前NCR已經在數千臺服務器上部署了Life-Keeper,它們運行在Solaris, Windows NT, 和MP-RAS環境下,SteelEye對其做了一些修進,例如對java GUI的修改,但在本質上它還是那項受到好評的NCR公司的集羣技術。

  LifeKeeper從2000年6月開始發售,起價爲每節點1500美元,SteelEye可以提供節點的配置和全天的支持服務,但要另外收費。LifeKeeper 3.01現在支持Red Hat Linux 和 Caldera OpenLinux,在將來會支持SuSE以及其他的linux發行版本。LifeKeeper還支持Windows NT, Solaris, 和MP-RAS,對Windows 2000的支持會在2001年內實現。

  LifeKeeper的目標是ISP、ASP以及那些在intel平臺上部屬電子商務應用和數據庫的客戶。

  下面列出了LifeKeeper最主要的特點:

  1. 對關鍵資源的良好保護,爲關鍵的商務應用提供最長的運行時間。

  2. 可伸縮的配置選項。

  3 . 基於java的GUI,提供良好的易用性和易配置性。

  4. 已在數千臺服務器上得到了證實

  5 . 支持多種平臺,包括Linux, Unix, 以及 Windows NT/2000

  LifeKeeper的linux版使用linux的API,不用對內核做任何改變。應用也同樣不需改變。SteelEye提供的應用恢復工具可以在應用失效時自動切換,目前支持的應用有Oracle、 Apache、 Sendmail、 Samba、Lotus Domino和Informix。如果支付一些費用的話,你也可以得到根據需要定製的應用恢復工具。 爲了確保客戶能夠對應用和數據進行連續的訪問,LifeKeeper 在節點失效時自動將應用轉移到另一個節點並保護數據。

  LifeKeepe 的體系結構沒有限制節點數的上限,但是由於現今基於linux 的存儲解決方案的限制,在每根SCSI總線上只能連接兩個服務器,這就限制了在共享SCSI 硬盤的解決方案中,

在一個共享的SCSI硬盤上只能連接兩個節點。

  LifeKeeper 提供了對Apache 服務器的靜態數據複製功能,通用的數據複製功能將在今年提供。

  爲了實現數據完整性,LifeKeeper 使用SCSI 預定來保護通過共享的SCSI 總線被其他節點訪問的數據。 當安裝LifeKeeper,一個SCSI預定的補丁也同時被安裝。這個補丁現在已經被包含在Red Hat Linux 6.2 中,而且Caldera等其他linux發行商也正在將其包含到自己的發行版中。

  LifeKeeper可以從網絡上的任何地方通過一個基於java的集中的GUI來進行管理。 這個GUI 允許管理員管理所有基於linux 的應用、數據庫、服務器。SteelEye 現在正與Caldera 、Compaq 、Dell 、 IBM 、 Intel, Red Hat以及其他的集羣技術提供商合作。希望提供一個綜合了網絡和系統配置的易於配置的環境,類似於Hewlett-Packard 的OpenView 、 IBM 的NetView 和Tivoli 、 以及 Computer Associates 的Unicenter/TNG 。

 

2.2.9 TurboLinux Cluster Server 6

  Cluster Server 6 是TurboLinux公司的第三代集羣技術,它是從TurboCluster 4.0改進而來。Cluster Server 6主要是一個負載平衡及可伸縮的解決方案,TurboLinux同時也宣稱其是一個高可用性的集羣方案。 這意味着同一個應用及配置在所有的節點上均可用。一旦一個節點上的服務失效,它可以在另一個節點上重新啓動,不會造成服務的中斷。

  TurboLinux本身是遵循GPL的,但是在它之上的Cluster Server 6則不是遵循GPL的。集羣中的節點可以運行TurboLinux、 Red Hat Linux、 Solaris或Windows NT/2000操作系統。TurboLinux宣稱Cluster Server 6可以使網絡應用的無故障運行時間達到99.995%。Cluster Server 6不需要特定的硬件,也不需要對應用的修改。

  Cluster Server 6的目標是小到中型的需要高可用的web服務及內聯網服務的商務應

用,電子商務站點,需要廉價的負載平衡軟件解決方案的顧客。

  Cluster Server 6的主要特點有:

  1. 負載平衡解決方案

  2. 對節點的數目幾乎沒有限制

  3. 易用的集羣管理接口

  4. 節點間的安全連接

  5 . 節點可運行在TurboLinux, Red Hat Linux, Solaris或Windows NT/2000操作系統之上。

  Cluster Server 6對linux內核進行了一些修改,所有對內核的改動都是開放源碼的,可以下載,Cluster Server 6中沒有包含對內核的補丁,因爲這些修改已經加入了TurboLinux發行版本中。

  Cluster Server 6的加速連接特性改善了包路由以及傳輸管理的性能,添加了三種負載均衡技術:網絡地址轉換、ip隧道和直接路由。 一個新的集羣管理控制檯(CMC )使管理員可以實時觀測到集羣的狀態,負載和性能。CMC使管理員能夠管理集羣的設置,維護。 管理員只需要幾下鼠標的點擊就可以使一個節點從集羣中脫離出來以對其進行維護,同時不會對集羣的性能造成影響。

 

2.2.10 Veritas Cluster Server for Linux

  Veritas軟件公司的主要產品有 Veritas Cluster Server和 Veritas Global Cluster Manager,主要運行在Windows NT/2000、HP-UX 和Solaris上。

Cluster Server for Linux側重於對服務的管理而不是對節點的管理。一個應用由多個資源組成,一些是基於硬件的,另一些是基於軟件的。 例如,一個數據庫服務包括一個或多個邏輯上的網絡標識,象ip 地址;一個關係數據庫管理系統(RDBMS );一個文件系統;一個邏輯磁盤管理器;多個物理磁盤。當節點失效時,所有的資源需要轉移到另一個節點上以重建該服務。

  在底層,Cluster Server for Linux監測一個服務所用到的資源。 當發現服務失效時,會自動重啓服務,包括本地重啓或移動到另一個節點後重啓,取決於失效的類型,如果一個服務的一個獨立的資源失效,則不需要重啓整個服務而只需要重啓失效的那個部分。

  Cluster Server for Linux的目標是互聯網、電信及金融方面的應用。

  Cluster Server for Linux的主要特點有

  1 . 可伸縮,2~32個節點

  2 . 可運行在HP-UX, Solaris, 和 Windows NT/2000上。

  3 . 鞏固的系統管理。

  Cluster Server for Linux是一個與體系結構無關的集羣技術。

Linux虛擬服務器 (Linux Virtual Server, LVS)建築 於實際的服務器集羣之上,用戶看不到提供服務的多臺實際服務器,而只能看見一臺作爲負載 平衡器的服務器。實際的服務器通過高速局域網或地理上分散的廣域網連接。實際服務器的前端是一臺負載平衡器,他將用戶的請求調度到實際服務器上完成,這樣看起來好像所有服務都是通過虛擬服務器來完成的。Linux虛擬服務器能夠提供良好的可升級性、可靠性和可用性。用戶可以透明地增加或減少一個節點,可以對實際服務器進行監測,如果發現有節點失敗就重新配置系統。

Linux Virtual Server的結構如圖所示。


 Linux 虛擬服務器結構圖 

 

3.1 調度算法

LVS 提供了四種調度算法:輪轉調度,加權輪轉調度,最少連接調度,加權最少連接調度。

  1. 輪轉調度(Round Robin Scheduling )
    輪轉調度不考慮服務器的連接數和響應時間,它將所有的服務器都看作是相同的。當以輪轉的形式將連接分發到不同的服務器上。
  2. 加權輪轉調度(Weighted Round Robin Scheduling)
    根據每個機器的處理能力的不同給每個機器分配一個對應的權重,然後根據權重的大小以輪轉的方式將請求分發到各臺機器。這種調度算法的耗費比其它的動態調度算法小,但是當負載變化很頻繁時,它會導致負載失衡,而且那些長請求會發到同一個服務器上。
  3. 最少連接調度(Least Connection Scheduling)
    最少連接調度將用戶請求發送到連接數最少的機器上。最少連接調度是一種動態調度方法,如果集羣中各臺服務器的處理能力相近,則當負載的變化很大時也不會導致負載失衡,因爲它不會把長請求發送到同一臺機器上。但是當處理器的處理能力差異較大時,最少連接調度就不能很好的發揮效能了。
  4. 加權最小連接調度(Weighted Least Connection Scheduling)
    根據服務器的性能不同而給它們分配一個相應的權重,權重越大,獲得一個連接的機會就越大。

2.3.9 其他 HA 集羣

RESONATE DISPATCH 系列


   Resonate有一種基於軟件的負載均衡方法,類似於Linux虛擬服務器。但是,它支持更多特性,以及一些更好的負載均衡算法。例如,使用Resonate,可以在每個羣集節點裝入一個代理,以確定該節點當前的系統負載。然後,負載均衡服務器檢查每個節點的代理,以確定哪個節點的負載最少,並且將新的流量發送給它。另外,Resonate還可以使用它的Global Dispatch產品更有效地支持地區性分佈式服務器。

  Resonate已經在Red Hat Linux上徹底測試了該軟件,相信它也可以在其它發行版上運行。Resonate的軟件還可以在其它各種平臺上運行,包括Solaris、AIX、Windows NT,並且它還可以在混合環境中進行負載均衡。

Novell HA 套件

Novell HA 是Novell 公司的開放源代碼高可用集 , Novell 公司併購了歐洲 Linux 第一大廠 SuSE 之後,成爲全球能夠抗衡 RedHat 的主要力量 . SuSE 企業版 Linux 帶有一套開放源代碼的 HA 集羣軟件,包括 HA project 的heartbeat, heartbeat-ldirectord, heartbeat-pils, heartbeat-stonith, 集羣關聯的存儲軟件 drbd, 虛擬 IP 的src_vipa 軟件 . 和 RHCS 不同的是, SuSE/Novell 企業版 Linux 自帶的 HA 集羣軟件並非一個獨立的軟件,如上介紹,而是由不同的開放源代碼項目提供的不同部分的程序。

集羣軟件的獲得 :

本集羣軟件組件已經附帶在 SuSE Linux Enterprise Server 光盤中 (SLES9, SLES10), SuSE Linux Enterprise Server(SLES9, SLES10) 的光盤,可以免費從 download.novell.com 獲得,並提供 2 個月的在線網絡更新服務 .用戶只需要在 novell 站點上免費註冊一個 novell 站點賬號,就可以下載 SLES9, SLES10 的所有光盤 ISO 。

Novell Cluster Service

Novell 在敗落前,曾經是一家非常偉大的公司,有着非常雄厚的技術力量。 早在 10 多年前, Novell 公司就在集羣領域獨樹一幟,是當時唯一能夠在 PC 服務器上構建出 32 節點集羣的廠商 .

Novell 收購 SuSE 公司之後,將原來在 Novell netware 操作系統上的大量企業級應用移植和整合到了 SuSE Linux Enterprise Linux 平臺 , Novell 當時名震集羣領域的 Novell Cluster Service 也被整合移植到了 Linux 平臺,Novell Cluster Service 是一個商業系統,並非開放源代碼產品 。

linux-HA

linux-HA 是開放源代碼的 HA 項目,linux-HA 項目歷史悠久, 很多linux 發行附帶的HA 集羣都是採用了linux-HA的heartbeat 系統和相關的組件. 需要構建完全的開源,自由而且免費的高可用集羣的用戶可以選擇.


  對於 Linux ,有許多集羣系統可供選用。同時,那些項目中有幾個是非商業性的,甚至是實驗性質的。雖然對學術界和某些組織這也沒有形成問題,但大公司通常首選著名供應商的商業支持平臺。供應商,如 IBM 、 SGI、 HP 和 Sun ,提供了用於在 Linux 中構建科學羣集的產品和服務,因爲羣集很流行,並且可以銷售大量的服務器設備。一旦商業機構認爲其它形式的集羣是可靠的,那些相同的服務器供應商或許會圍繞着開放源碼集羣解決方案創建自己的產品。 
   Linux 作爲服務器平臺的重要性依賴於支持大型服務器和服務器羣集的能力。這就使它可以與 Sun 、 HP 、IBM 和其它公司的 UNIX 服務器在更高層面上競爭。雖然 Windows NT 和 2000 不支持 Linux 能夠支持的集羣範圍,但是 HA 集羣正規方法的可用性以及用於構建有羣集意識的 API 也使它能夠參與競爭。 
 如果正在考慮構建一個羣集,那麼您應當仔細檢查那些可能性,並將它們與您的需求做比較。您也許會發現想要實現的目標還不能成爲一個完整的解決方案,或許會發現已經有了現成的解決方案。

 

3 集羣的文件系統

集羣系統文件系統,主要包括Coda,Global,xFS,MOSIX,OCFS,Lustre等。 
集羣計算的發展需要發展並升級文件系統,此文件系統不僅能夠對多個文件提供並行的訪問,而且能在對同一文件進行訪問的進程間提供cache一致性。大多數傳統的網絡 文件系統如NFS、AFS、Coda對於並行處理而言是遠遠不夠的,因爲它們都依賴中心文件服務器 。但是,隨着越來越多的客戶的加入,服務器的cpu很快就成爲了性能的瓶頸。爲了解決這個問題,處理能力更強的服務器已經被製造了出來,而且文件系統的設計者們也試圖將更多的工作交給客戶來完成,但是即使是這樣,服務器的速度仍然是文件系統可升級性的瓶頸。新一代的文件系統如Global File System(GFS) 、XFS和 Frangipani 比較適合於集羣系統。因爲這些系統都在集羣系統中的機器上分配存儲 器、cache 和控制權,並且提供了並行文件訪問和cache一致性的解決方法。


3 .1 Coda 文件系統

Coda文件系統(Coda File System)適用於分佈式網絡環境。它是在1987年在卡耐基梅隆大學以AFS2爲原型開發出來的。 Linux Virtual Server 就採用了Coda 文件系統。Coda 提供了以下適用於網絡文件系統的特性。

1. 爲移動的客戶提供了斷開操作。

2. 它是一種自由軟件。

3. 通過客戶訪問的持續緩存提供了高可用性。

4. 服務器複製功能。

5. 提供了認證的安全模型、加密和訪問控制。

6. 部分網絡失效後能夠繼續工作。

7. 具有網絡帶寬適應性。

8. 較好的可擴展性。

9. 即使在網絡失效時也爲共享定義了良好的語法。

AFS和Coda文件系統都將所有的文件放於同一個目錄下,如AFS 是/afs,Coda是 /coda,這意味着所有的客戶都可以使用相同的配置,所有的用戶看到的是相同的文件樹。對於大的安裝而言這是非常重要的。對於NFS文件系統而言,客戶需要服務器的最新列表而在Coda中只需要找到根目錄/coda。

當在客戶端敲入"cat /coda/tmp/foo"這樣的請求時,cat將調用系統調用向核心請求服務,核心首先找到對應的文件索引節點並返回與該文件相關的文件句柄。索引節點包含文件的一些相關信息,文件句柄用於打開文件。系統調用首先進入核心的虛擬文件系統(VFS),然後它將請求傳送給核心中的Coda文件系統模塊進行處理。Coda文件系統模塊包含着從VFS來的最近的一些請求,然後它將此請求交給Coda緩衝管理器venus進行處理。Venus通過察看硬盤緩衝區、向服務器發請求等方式來定位文件的所在地。如果在硬盤緩衝區中沒有找到匹配的文件,則通過遠程系統調用向服務器發請求,並且將取到的文件放在cache中,這時,這個文件就是一個普通的文件了,因此可以通過本地文件系統對該文件進行讀寫的操作。如果在硬盤緩衝區找到了此文件,則可以直接使用這個文件。當對此文件進行了一定的修改並且關閉了以後,venus將把新文件傳送給服務器從而來更新服務器上的文件。其它的操作如修改文件系統,創建新目錄,刪除文件,去除符號鏈接等都可以傳送給服務器。

但是由於網絡有時會出現問題,因此如何保證文件的連續性是一個非常重要的問題。當venus意識到服務器不可用時,它就將客戶端對文件的更新存儲在修改日誌中,當服務器重新可用時,便根據修改日誌對服務器上的相應的文件進行更新。

 3. 2 Global 文件系統 

GFS(Global File System)是Minnesota大學開發的基於SAN的共享存儲的機羣文件系統,後來Sistina公司將GFS產品化。GFS在很長一段時間都是以源代碼 開放軟件 的形式出現的,後來由於Sistina希望通過向用戶提供支持和服務的計劃未能取得成功,爲了要促進自己的財務收入,Sistina在2001年將GFS變成了一種“專有軟件”。Red Hat公司收購Sistina之後,在遵循GPL協議(General Public License)的條件下履行諾言公開了GFS的源代碼。現在,GFS的全名被稱爲“紅帽全球文件系統”(Red Hat Global File System,GFS)的軟件,每臺服務器每年收取2200美元的費用。

GFS 最初是在IRIX 上開發的,後來移植到LINUX 上,並開放源碼 

通過使用GFS,多臺服務器可以共用一個文件系統來存儲文件。信息既可以存儲在服務器上,也可以存儲在一個存儲局域網絡上。

GFS與GPFS結構相似,但它是全對稱的機羣文件系統,沒有服務器,因而沒有性能瓶頸和單一故障點。GFS將文件數據緩存於節點的存儲設備中,而不是緩存在節點的內存中。並通過設備鎖來同步不同節點對文件的訪問,保持UNIX文件共享語義。GFS實現了日誌,節點失效可以快速恢復。GFS使用SCSI設備鎖來進行同步,目前很少設備實現這種設備鎖。在沒有設備鎖的情況下,GFS也是通過唯一的鎖服務器來進行同步,因此,鎖服務器是其性能的瓶頸。

用戶通過GFS可以加快數據訪問速度,並進行信息複製。一旦一臺服務器出現問題,用戶仍可以通過網絡內其他的計算機訪問有關的數據。GFS對於以以下兩種方式連接而成的計算機集羣尤其有用:1、計算機集羣中任何一臺機器都可以在另一臺機器發生故障時接管這臺計算機的工作,2、計算機集羣中的所有機器聯合起來組成一臺超級計算機。

GFS允許多個Linux機器通過網絡共享存儲設備。每一臺機器都可以將網絡共享磁盤看作是本地磁盤,而且GFS自己也以本地文件系統的形式出現。如果某臺機器對某個文件執行了些操作,則後來訪問此文件的機器就會讀到寫以後的結果。

GFS設計 時就考慮到了可以通過NFS或者HTTP協議進行擴展。但是數據控制和數據傳輸的開銷顯然要小於NFS。

控制路徑從用戶應用通過VFS傳遞到NFS客戶端。NFS通過TCP/IP協議執行遠程調用。NFS服務器端響應調用請求,通過VFS訪問本地文件系統,然後由本地文件系統來訪問本地的存儲設備。數據傳輸路徑包括:用戶內存和NFS客戶端緩存之間的內存拷貝,NFS客戶端與網絡緩存之間的拷貝,緩存網絡緩存和NFS服務器端緩存之間的拷貝。這些拷貝通過系統總線和網絡連接進行。

控制路徑從用戶應用通過VFS到達GFS。GFS向網絡存儲池(network storage pool,NSP)中的存儲設備發出請求。塊對齊數據(Block aligned data )在用戶內存和存儲設備間傳輸,非對齊數據則臨時的通過系統內存傳遞。

GFS中有一個很重要的概念,叫網絡存儲池(The network storage pool,NSP)。NSP爲每臺機器提供了一個統一的存儲地址空間。GFS通過NSP實現了存儲設備的網絡共享。這些存儲設備可以是共享SCSI(Shared SCSI)和共享通道(Fibre Channel - FC)。NSP包裝這些存儲設備使得它們好像節點本地的文件系統。

NSP還可以根據存儲設備的類型分爲多個子存儲池(subpools)。NSP同時也對鎖進行管理 。GFS發送“鎖”和“解鎖”命令給NSP,NSP收到後把邏輯鎖號轉成對應的物理設備的鎖號進行鎖定。

 GFS把文件系統組織成數個資源組(resource groups,RG)。通過RG,GFS把文件系統的資源分佈在整個NSP上。一個存儲設備上可以存在多個RG。RG實際上是各微型的文件系統(minifile system)。從文件到RG,以及從RG到NSP子池的映射。文件可能被存放在數個RG和多重存儲池中。

優點:

GFS 的主要優點在於:

高可用性:如果一個GFS 客戶失效,數據還可以通過其他GFS 客戶訪問;

擴展性:因爲不需要中心服務器,所有很容易擴展存儲容量和訪問帶寬; 

缺點:

和現在流行的SAN 型文件系統相比,設計思想似乎有點落後了;

費用較高;


3.3 xFS 文件系統


    xFS 試圖通過將服務器的功能如保持cache 的一致性、定位數據和處理磁盤請求分佈在各個客戶上來提供對文件系統數據的低延遲、高帶寬的訪問。
爲了保持cache一致性,xFS採用瞭如下的方法。它將客戶方的所有的內存空間看爲一個大的cache,這樣就減少了客戶方的數據緩存,利用了閒置機器的內存,這種合作型的緩存可以通過減少到達磁盤的請求量來降低讀延遲。
爲了將定位數據的功能分佈到每個客戶端,xFS讓每個客戶都必須對文件的一個子集對應的請求進行處理。文件數據在多個客戶端加以分類從而提供更高的帶寬,這些分類數據包括一些奇偶信息,通過這些信息可以在機器失效時恢復分類的數據報。 這種方法可以保證沒有任何節點會產生單點失效的情況。

xFS 主要特性包括以下幾點:

  1. 數據完全性

  採用XFS文件系統,當意想不到的宕機發生後,首先,由於文件系統開啓了日誌功能,所以你磁盤上的文件不再會意外宕機而遭到破壞了。不論目前文件系統上存儲的文件與數據有多少,文件系統都可以根據所記錄的日誌在很短的時間內迅速恢復磁盤文件內容。

   2. 傳輸特性

  XFS文件系統採用優化算法,日誌記錄對整體文件操作影響非常小。XFS查詢與分配存儲空間非常快。xfs文件系統能連續提供快速的反應時間。筆者曾經對XFS、JFS、Ext3、ReiserFS文件系統進行過測試,XFS文件文件系統的性能表現相當出衆。

   3. 可擴展性

  XFS 是一個全64-bit的文件系統,它可以支持上百萬T字節的存儲空間。對特大文件及小尺寸文件的支持都表現出衆,支持特大數量的目錄。最大可支持的文件大小爲263 = 9 x 1018 = 9 exabytes,最大文件系統尺寸爲18 exabytes。

  XFS使用高的表結構(B+樹),保證了文件系統可以快速搜索與快速空間分配。XFS能夠持續提供高速操作,文件系統的性能不受目錄中目錄及文件數量的限制。

   4. 傳輸帶寬

  XFS 能以接近裸設備I/O的性能存儲數據。在單個文件系統的測試中,其吞吐量最高可達7GB每秒,對單個文件的讀寫操作,其吞吐量可達4GB每秒

 


3. 4 MOSIX 文件系統

MOSIX 集羣使用了自己的文件系統MFS 文件系統。MFS將集羣中的所有文件系統和目錄都看作是一個文件系統,而且它提供了對所有節點上的所有文件系統的統一訪問,它還通過只提供一個cache保證了cache的一致性。
MFS包含了許多位於不同節點上的文件子樹,因此它就允許對多個文件進行並行操作和cache一致性。
在MOSIX集羣中進行進程遷移時,如果此進程主要佔用的是CPU資源,則遷移此進程對於提供系統性能是非常有效的,但是如果此進程需要進行大量的I/O操作,則遷移進程非常不利。這是因爲每個I/O操作都需要與該進程原來所處的節點進行通訊。
因此MFS增加了對DFSA(Direct File System Acess)的支持。DFSA的目的就是讓那些需要進行大量I/O操作的進程遷移到遠端節點上,該遠端節點擁有大多數I/O操作將會涉及到的文件,因此大多數的I/O操作都能在遠端節點上完成,而且在遠端節點上可以通過本地訪問來訪問數據。如果一個系統調用是節點無關的,此係統調用就會在遠端節點上執行,否則就在本地執行。 MFS 比其它網絡文件系統優越的地方就是它允許使用本地文件系統,這樣就減少了進程和文件服務器之間的通訊開銷。

 3.5 Oracle 集羣文件系統 (OCFS)

  OCFS 專門爲支持 Oracle RAC 應用程序的數據和磁盤共享而設計。它在 RAC 集羣的服務器節點間提供一致的文件系統映像,充當原始設備的替身。 除了簡化集羣數據庫管理外,它還在保持原始設備性能優勢的同時克服了原始設備的侷限性。 
    OCFS 第 1 版支持 Oracle 數據文件、spfile、控制文件、仲裁磁盤文件、歸檔日誌、配置文件以及 Oracle 集羣註冊表 (OCR) 文件(Oracle 數據庫 10g 中的新文件)。設計它不是爲了使用其他文件系統的文件,甚至不是爲了使用那些必須在集羣每個節點上安裝的 Oracle 軟件 — 除非您使用第三方解決方案。此外,OCFS 不提供諸如 I/O 分配(分割)等 LVM 功能,也不提供冗餘功能。 

    Oracle 支持用於 32 位和 64 位發行版本的 Red Hat Advanced Server 2.1 、Red Hat Enterprise Linux 3 和Novell SUSE (United Linux) 上的 OCFS 第 1 版中的 Oracle 數據庫,該數據庫需要從可下載的二進制文件進行安裝。如果您自己對其進行重新編譯,則 Oracle 不提供支持。

 

 3.6 Lustre

Lustre 對象存儲文件系統就是由客戶端(client )、存儲服務器(OST ,Object Storage Target )和元數據服務器(MDS )三個主要部分組成。Lustre 的客戶端運行Lustre 文件系統,它和OST 進行文件數據I/O 的交互,和MDS 進行命名空間操作的交互。爲了提高Lustre 文件系統的性能,通常Client 、OST 和MDS 是分離,當然這些子系統也可以運行在同一個系統中。其三個主要部分如圖所示.


 Lustre 文件系統的組成 
  

Lustre是一個透明的全局文件系統,客戶端可以透明地訪問集羣文件系統中的數據,而無需知道這些數據的實際存儲位置。客戶端通過網絡讀取服務器上的數據,存儲服務器負責實際文件系統的讀寫操作以及存儲設備的連接,元數據服務器負責文件系統目錄結構、文件權限和文件的擴展屬性以及維護整個文件系統的數據一致性和響應客戶端的請求。 Lustre把文件當作由元數據服務器定位的對象,元數據服務器指導實際的文件I/O請求到存儲服務器,存儲服務器管理在基於對象的磁盤組上的物理存儲。由於採用元數據和存儲數據相分離的技術,可以充分分離計算和存儲資源,使得客戶端計算機可以專注於用戶和應用程序的請求;存儲服務器和元數據服務器專注於讀、傳輸和寫數據。存儲服務器端的數據備份和存儲配置以及存儲服務器擴充等操作不會影響到客戶端,存儲服務器和元數據服務器均不會成爲性能瓶頸。

Lustre 的全局命名空間爲文件系統的所有客戶端提供了一個有效的全局唯一的目錄樹,並將數據條塊化,再把數據分配到各個存儲服務器上,提供了比傳統SAN 的" 塊共享" 更爲靈活的共享訪問方式。全局目錄樹消除了在客戶端的配置信息,並且在配置信息更新時仍然保持有效。


更多資料請參考 :

 

Beowulf Introduction and Overview  <http://www.beowulf.org>

Platform-lsf  <http://www.platform.com/Products/platform-lsf>

TurboCluster Server  <http://www.hallogram.com/turbolinuxser/index.html>

The Mosix Howto,<http://www.mosix.org>

Eddie ,<http://eddie.sourceforge.net/>

Windows hpc <http://www.microsoft.com/hpc/en/us/default.aspx>

Legion,<http://legion.virginia.edu/>

Cplant ,<http://www.cs.sandia.gov/cplant/>

JESSICA2,<http://i.cs.hku.hk/~clwang/projects/JESSICA2.html>

Linux HPC Cluster Installation, IBM Redbooks,http://www.redbooks.ibm.com/

HP_UCP ,<http://h20427.www2.hp.com/program/bcs/cn/zh/Sites_levels/HP_UCP-1.asp>

EnFuzion,<http://www.axceleon.com/science.html>

Resonate, <http://www.resonate.com/products.html>

Apptime .Watchdog ,<http://www.apptime.com/>

Legato ,http://www.legato.com/

High Availability Server , <http://www.redhat.com/cluster_suite/>

Linux FailSafe ,<http://oss.sgi.com/projects/failsafe/>

Lifekeeper ,<http://www.hudong.com/wiki/lifekeeper>

TurboLinux Cluster Server,<http://www.turbolinux.com>

Cluster Server, <http://www.symantec.com/business/cluster-server>

Linux Virtual Server,<http://www.linuxvirtualserver.org/>

Novell Cluster Service,<http://www.novell.com/products/openenterpriseserver/>

OSCAR: A packaged Cluster software stack for High Performance Computing, http://www.openclutergroup.org/

Linux-HA Heartbeat System Design, http://www.linux-ha.org

xCAT HOW-TO, http://www.x-CAT.org

MPICH, http://www.mcs.anl.gov/mpi/mpich.

PVM, http://www.epm.ornl.gov/pvm/pvm_home.html

OpenPBS,http://www.openpbs.org/

Maui, http://www.supercluster.org/

Intermezzo, <http:/inter-mezzo.org/>

Coda, http://www.coda.cs.cmu.edu/

GFS, <http://globalfilesystem.org/>

Lustre,<http://www.novell.com/products/openenterpriseserver/> ,<http://wiki.lustre.org>

 

 

 

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