問題的部分原因在於術語集群用於不同場合。IT 經理可能關心如何使服務器運行時間更長,或使應用程序運行得更快,而數學家可能更關心在服務器上進行大規模數值計算。兩者都需要群集,但是各自需要不同特性的群集。
本文調查了不同形式的集群以及許多實現中的一部分,這些實現可以買到,也可以免費軟件形式獲得。盡管列出的所有解決方案並不都是開
IEEE SCI
IEEE 標准 SCI 的延遲更少(低於 2.5 微秒),並且其單向速度可達到 400 MB/秒 (3.2 Gbps)。SCI 是基於環拓撲的網絡系統,不像以太網是星形拓撲。這將使在較大規模的節點之間通信速度更快。更有用的是環面拓撲網絡,它在節點之間有許多環形結構。兩維環面可以用 n 乘 m 的網格表示,其中在每一行和每一列都有一個環形網絡。三維環面也類似,可以用三維立體節點網格表示,每一層上有一個環形網絡。密集超級計算並行系統使用環面拓撲網絡,為成百上千個節點之間的通信提供相對最快的路徑。
大多數操作系統的限制因素不是操作系統或網絡接口,而是服務器的內部 PCI 總線系統。幾乎所有台式 PC 通常有基本 32-位,33-MHz PCI,並且大多數低端服務器只提供 133 MB/秒 (1 Gbps),這限制了那些網卡的能力。一些昂貴的高端服務器,如 CompaqProliant 6500 和 IBM Netfinity 7000 系列,都有 64-位, 66-MHz 網卡,它們能夠以四倍速度運行。不幸地是,矛盾是更多公司使用低端的系統,因此大多數供應商最終生產和銷售更多低端 PCI 網卡。也有專門的 64-位,66-MHz PCI 網卡,但價格要貴許多。例如,Intel 提供了這種類型的“快速以太網”網卡,價格約 $400 到 $500,幾乎是普通 PCI 版本價格的 5 倍。
科學群集
某些並行群集系統可以達到如此高的帶寬和低延遲,其原因是它們通常繞過使用網絡協議,如 TCP/IP。雖然網際協議對於廣域網很重要,但它包含了太多的開銷,而這些開銷在節點相互已知的封閉網絡群集中是不必要的。其實,那些系統中有一部分可以在節點之間使用直接內存訪問 (DMA),它類似於圖形卡和其它外圍設備在一台機器中的工作方式。因此橫跨群集,可以通過任何節點上的任何處理器直接訪問一種形式的分布式共享內存。它們也可以使用低開銷的消息傳遞系統,在節點之間進行通信。
消息傳遞接口 (MPI) 是並行群集系統間消息傳遞層的最常見實現。MPI 存在幾種衍生版本,但在所有情況下,它為開發者訪問並行應用程序提供了一個公共 API,這樣開發者就不必手工解決如何在群集的節點之間分發代碼段。其中一個,Beowulf 系統首先將 MPI 用作公共編程接口。很難決定使用哪種高性能集群包。許多都提供類似服務,但計算的具體要求才是決定性因素。很多情況下,在那些系統中的研究工作只是解決需求的一半,而且使用那些軟件需要集群包開發者的特殊幫助和合作。
Beowulf
當談到 Linux 集群時,許多人的第一反映是 Beowulf。那是最著名的 Linux 科學軟件集群系統。沒有一個包叫做 Beowulf。實際上,它是一個術語,適用於在 Linux 內核上運行的一組公共軟件工具。其中包括流行的軟件消息傳遞 API,如“消息傳送接口”(MPI) 或“並行虛擬機”(PVM),對 Linux 內核的修改,以允許結合幾個以太網接口、高性能網絡驅動器,對虛擬內存管理器的更改,以及分布式進程間通信 (DIPC) 服務。公共全局進程標識空間允許使用 DIPC 機制從任何節點訪問任何進程。Beowulf 還在節點間支持一系列硬件連通性選件。
Beowulf 可能是考慮 Linux 時注意到的第一個高性能集群系統,這只是因為它的廣泛使用和支持。關於這個主題,有許多文檔和書籍。Beowulf 與以下一些科學集群系統之間的差異可以是實際的,或者只是在產品名稱中有差異。例如,盡管名稱不同,Alta Technologies 的 AltaCluster 就是一個 Beowulf 系統。某些供應商,如 ParTec AG,一家德國公司,提供了 Beowulf 模型的衍生版本,以包括其它管理接口和通信協議。
Giganet cLAN
Giganet 提供了一種定制的基於硬件的解決方案,它使用非 IP 協議在一個科學群集的節點間進行通信。如前所述,“虛擬接口”協議通過除去不少協議的開銷,如 IP,以支持服務器間更快的通信。另外,硬件系統可按千兆比特速度運行,並且延遲很短,使它非常適合構建最多達 256 個節點的科學群集。該供應商支持 MPI,這樣許多並行應用程序就可以在類似的系統(如 Beowulf)上運行。
它也有 Beowulf 的缺點,即不能用作網絡負載共享系統,除非想要編寫應用程序來監控和分發在服務器間傳送的網絡包。
Legion
Legion 試圖構建一個真正的多計算機系統。這是一個群集,其中每個節點都是一個獨立系統,但在用戶看來,整個系統只是一台計算機。Legion 設計成支持一台世界范圍的計算機,由上百萬個主機以及數以萬億計的軟件對象組成。在 Legion 中,用戶可以創立他們自己的合作小組。
Legion 提供了高性能並行、負載均衡、分布式數。開放源碼,但是大多數軟件都遵循分發 Linux 源碼的公共慣例,特別是由於那些實現集群的人還常常希望調整系統性能,以滿足需要。
硬件
集群總是涉及到機器之間的硬件連接。在現今大多數情況下,這只是指“快速以太網”網卡和集線器。但在尖端科學領域中,有許多專為集群設計的網絡接口卡。它們包括 Myricom 的 Myrinet、Giganet 的 cLAN 和 IEEE 1596 標准可伸縮一致接口 (SCI)。那些卡的功能不但在群集的節點之間提供高帶寬,而且還減少延遲(發送消息所用的時間)。對於在節點間交換狀態信息以使其操作保持同步情況,那些延遲是至關重要的。
Myricom
Myricom 提供網卡和交換機,其單向互連速度最高可達到 1.28 Gbps。網卡有兩種形式,銅線型和光纖型。銅線型 LAN 可以在 10 英尺距離內以全速進行通信,而在長達 60 英尺距離內以半速進行操作。光纖型 Myrinet 可以在 6.25 英裡長的單模光纖或者 340 英尺長的多模光纖上全速運行。Myrinet 只提供直接點到點、基於集線器或基於交換機的網絡配置,但在可以連接到一起的交換光纖數量方面沒有限制。添加交換光纖只會增加節點間的延遲。兩個直接連接的節點之間的平均延遲是 5 到 18 微秒,比以太網快得多。
集群類型
最常見的三種群集類型包括高性能科學群集、負載均衡群集和高可用性群集。
科學群集
通常,第一種涉及為群集開發並行編程應用程序,以解決復雜的科學問題。這是並行計算的基礎,盡管它不使用專門的並行超級計算機,這種超級計算機內部由十至上萬個獨立處理器組成。但它卻使用商業系統,如通過高速連接來鏈接的一組單處理器或雙處理器 PC,並且在公共消息傳遞層上進行通信以運行並行應用程序。因此,您會常常聽說又有一種便宜的 Linux 超級計算機問世了。但它實際是一個計算機群集,其處理能力與真的超級計算機相等,通常一套象樣的群集配置開銷要超過 $100,000。這對一般人來說似乎是太貴了,但與價值上百萬美元的專用超級計算機相比還算是便宜的。
負載均衡群集
負載均衡群集為企業需求提供了更實用的系統。如名稱所暗示的,該系統使負載可以在計算機群集中盡可能平均地分攤處理。該負載可能是需要均衡的應用程序處理負載或網絡流量負載。這樣的系統非常適合於運行同一組應用程序的大量用戶。每個節點都可以處理一部分負載,並且可以在節點之間動態分配負載,以實現平衡。對於網絡流量也如此。通常,網絡服務器應用程序接受了太多入網流量,以致無法迅速處理,這就需要將流量發送給在其它節點上運行的網絡服務器應用。還可以根據每個節點上不同的可用資源或網絡的特殊環境來進行優化?
高可用性群集
高可用性群集的出現是為了使群集的整體服務盡可能可用,以便考慮計算硬件和軟件的易錯性。如果高可用性群集中的主節點發生了故障,那麼這段時間內將由次節點代替它。次節點通常是主節點的鏡像,所以當它代替主節點時,它可以完全接管其身份,並且因此使系統環境對於用戶是一致的。
在群集的這三種基本類型之間,經常會發生混合與交雜。於是,可以發現高可用性群集也可以在其節點之間均衡用戶負載,同時仍試圖維持高可用性程度。同樣,可以從要編入應用程序的群集中找到一個並行群集,它可以在節點之間執行負載均衡。盡管集群系統本身獨立於它在使用的軟件或硬件,但要有效運行系統時,硬件連接將起關鍵作用。
Giganet
Giganet 是用於 Linux 平台的虛擬接口 (VI) 體系結構卡的第一家供應商,提供 cLAN卡和交換機。VI 體系結構是獨立於平台的軟件和硬件系統,它由 Intel 開發,用於創建群集。它使用自己的網絡通信協議在服務器之間直接交換數據,而不是使用 IP,並且它並不打算成為 WAN 可路由的系統。現在,VI 的未來取決於正在進行的“系統 I/O 組”的工作,這個小組本是 Intel 領導的“下一代 I/O”小組與 IBM 和 Compaq 領導的“未來 I/O 小組”的合並。Giganet 產品當前可以在節點之間提供 1 Gbps 單向通信,最小延遲為 7 微秒。