以往,集群系統主要都是基於商業操作系統的。例如COMPAQ基於TRUE64 UNIX的集群產品TruClusterServer;NOVELL的NetWare Cluster Services(NCS)等。這類產品價格十分昂貴,並且留給用戶的選擇余地十分有限。
由於LINUX本身是基於GPL的,完全開放的,而INTEL-BASE的硬件平
台又具有很高的性價比,因此,將多台LINUX服務器組成集群系統以提供具有高可用性的企業應用平台應運而生,這給大家提供了一種用低廉的價格構建具有高可用性的企業應用平台的可能,從而大大推動了以前很少人用得起的昂貴的集群系統普及的進程。
1999年,市場上還很少看見LINUX集群產品。但對LINUX集群產品的關注迅速升溫,到目前為止,ApptimeTechnology, Legato Systems,Lineo, Mission Critical Linux, Motorola,PolyServe, Red Hat, SGI, SteelEye Technology,和TurboLinux都發布了他們的LINUX集群產品,並且HP在2001年也加入了這個行列。
這些產品被廣泛地應用在各種領域,包括嵌入式LINUX應用、具有負載均衡功能的WEB應用、以及一些要求具有高可用性的關鍵企業應用當中。並且還可以結合NAS或SAN在數據存儲方面的優點,構成完整的企業應用解決方案。
市場的領導者
目前,在高可用性集群技術上有三位領導者:
SteelEye的 LifeKeeper for Linux
Mission Critical Linux的 Convolo
Legato Cluster
LifeKeeper for Linux是私有的,具有自己的版權;Convolo是開放源碼的;
Legato Cluster也是私有的。三家公司都具有專門的集群產品開發團隊,並具有在LINUX及其它操作系統下開發集群系統的經驗。它們的集群產品在市場上比其它公司的產品更受歡迎。
LifeKeeper forLinux起源於NCR的基於UNIX的LifeKeeper。1999年,SteelEye收購了NCR,並保留了LifeKeeper的幾個核心開發人員。隨後,SteelEye做了大量工作,將LifeKeeper從UNIX移植到LINUX上。LifeKeeper專注於集群技術,並承諾將繼續發展LifeKeeper for Linux以滿足不斷增長的客戶需求。
Convolo在這三個產品當中技術是比較先進的,它是開放源碼的,並吸取了開放源碼社區的大量營養。由於有開放源碼社區撐腰,MissionCriticalLinux認為他們最了解集群用戶的需求,Convolo提供了幾個很重要的功能:數據一致性支持、NFS故障恢復支持。Convolo目前雇傭了幾位以前在DEC公司從事集群產品開發的技術人員,這些人具有VMS CLUSTER和TruCluster的開發經驗。
Legato是企業存儲軟件的市場領導者。現在,它將注意力投向集群產品,並希望能夠將其在存儲市場的優勢融合進它的集群產品中。到目前為止,除Legato外,還沒有其它公司的集群產品能夠將存儲技術整合入集群產品之中。Legato是目前市場上唯一的支持SAN的集群產品提供商。
除這三家公司以外,其它公司都在相繼推出其LINUX下的集群產品。如HP、PolyServe、SGI、TurboLinux、RedHat等。
值得一提的是SGI的failsafe。
Failsafe自2000年8月起已經變為開放源碼。Failsafe總共有230,000行源代碼,其復雜程度超過目前所知的任何一個開放源碼的集群系統。除Linux FailSafe外,SGI還保留了IRIX FailSafe ,IRIX FailSafe具有自主版權。目前Linux FailSafe和 IRIX FailSafe的源代碼樹是相互獨立的,這就意味著IRIXFailSafe發展的源代碼可以迅速並入Linux FailSafe的源代碼樹,從而Linux FailSafe可以迅速取得IRIXFailSafe的新功能;而由於GPL的限制,Linux FailSafe發展的源代碼卻不能直接並入IRIXFailSafe的源代碼樹。不過SGI的IRIXFailSafe開發人員可以獲得開源社區的思想,從開源社區中吸取營養,並迅速反應到他們的產品中。目前Failsafe已顯示出與linux-ha.org合並的趨勢,在不遠的將來,Failsafe極有可能成為LINUX下面高可用性集群技術的一種標准。
目前,RedHat的集群產品RedHatHa-Server主要源自LVS,繼承了LVS的負載平衡功能。RedHat在集群技術方面滯後於大多數LINUX集群產品提供商,並且在年內還看不出有超越的跡象。不過RedHat在集群產品方面有一個極具野心的計劃,但它在這方面的開發將嚴重依賴於開放源碼社區的發展。除集群產品外,RedHat還涉足企業市場及嵌入式LINUX市場。
TurboLinux,與Apptime一樣,是最早提供LINUX下的集群產品的公司,大約要比其它公司早一年左右,在1999年TurboLinux就已經涉足LINUX集群技術。其TurboLinux Cluster Server6主要是一個負載平衡集群,另外加上其Ha-Server,可以構成一個具有高可用性的集群系統。TurboLinux Cluster Server6的整個設計思想受LVS影響很深,幾乎就是LVS的翻版。
未來12個月預測
未來12個月的贏家有可能是RedHat。至2002年中期,RedHat有可能成為LINUX下的集群技術的領導者。這要看RedHat願意在集群技術上花多大的精力。一旦RedHat發展出一個具有競爭力的LINUX下的集群產品,它就會利用其在LINUX發行版市場的巨大優勢取得LINUX集群產品市場的較大份額。
Apptime的Watchdog在1999年中期就已經推向市場,但在歐洲之外的地區它只取得了很小的市場份額,未來12個月將決定它能否同其它LINUX集群產品繼續競爭。Watchdog有可能成為一個區域性產品。
集群及相關技術簡介
集群就是兩台或更多的互連的計算機(我們稱之為節點)整合在一起,對外表現為具有高可用性、高性能和易管理性的單一的、統一的計算資源。
目前最常見的集群類型包括高性能科學集群和商業集群,其中商業集群又可分為負載均衡集群和高可用性集群。
科學集群
通常,科學集群被設計來解決復雜的科學問題,這些科學問題都需要大量的計算。盡管它不使用專門的並行超級計算機,這種超級計算機內部由十至上萬個獨立處理器組成。但它卻使用商業系統,如通過高速連接來鏈接的一組單處理器或雙處理器PC,並且在公共消息傳遞層上進行通信以運行並行應用程序。因此,您會常常聽說又有一種便宜的 Linux超級計算機問世了。但它實際上是一個計算機集群,其處理能力與真的超級計算機相等,通常一套象樣的集群配置開銷要超過0,000。這對一般人來說似乎是太貴了,但與價值上百萬美元的專用超級計算機相比還算是便宜的。
某些並行集群系統可以達到相當高的帶寬和低延遲,其原因是它們通常繞過常用的網絡協議,如TCP/IP。雖然網際協議對於廣域網很重要,但它包含了太多的開銷,而這些開銷在節點相互已知的封閉網絡集群中是不必要的。其實,那些系統中有一部分可以在節點之間使用直接內存訪問(DMA),它類似於圖形卡和其它外圍設備在一台機器中的工作方式。因此橫跨集群,可以通過任何節點上的任何處理器直接訪問一種形式的分布式共享內存。它們也可以使用低開銷的消息傳遞系統,在節點之間進行通信。
消息傳遞接口 (MPI) 是並行集群系統間消息傳遞層的最常見實現。MPI存在幾種衍生版本,但在所有情況下,它為開發者訪問並行應用程序提供了一個公共API,這樣開發者就不必手工解決如何在集群的節點之間分發代碼段。Beowulf 系統首先將 MPI 用作公共編程接口。
科學集群的典型代表是Beowulf和SGI的Advanced Cluster Environment (ACE).
負載均衡集群
負載均衡集群為企業需求提供了更實用的系統。如名稱所示,該系統使負載可以在計算機集群中盡可能平均地分攤處理。該負載可能是需要均衡的應用程序處理負載或網絡流量負載。這樣的系統非常適合於運行同一組應用程序的大量用戶。每個節點都可以處理一部分負載,並且可以在節點之間動態分配負載,以實現平衡。對於網絡流量也是如此。通常,網絡服務器應用程序接受了太多入網流量,以致無法迅速處理,這就需要將流量發送給在其它節點上運行的網絡服務器應用。還可以根據每個節點上不同的可用資源或網絡的特殊環境來進行優化。
負載均衡集群在多節點之間分發和處理負載。大多數情況下,這種集群中的每個節點都是運行單獨軟件的獨立系統。但是,不管是在節點之間進行直接通信,還是通過中央負載均衡服務器來控制每個節點的負載,在節點之間都有一種公共關系。通常,使用特定的算法來分發該負載。
網絡流量負載均衡是一個過程,它檢查到某個集群的入網流量,然後將流量分發到各個節點以進行適當處理。它最適合大型網絡應用程序,如Web 或 FTP服務器。負載均衡網絡應用服務要求集群軟件檢查每個節點的當前負載,並確定哪些節點可以接受新的作業。這最適合運行如數據分析等串行和批處理作業。這些系統還可以配置成關注某特定節點的硬件或操作系統功能:這樣,集群中的節點就沒有必要是一致的。
高可用性集群
高可用性(HA)集群的出現是為了使集群的整體服務盡可能可用,以便考慮計算硬件和軟件的容錯性。如果高可用性集群中的主節點發生了故障,那麼這段時間內將由次節點代替它。次節點通常是主節點的鏡像,所以當它代替主節點時,它可以完全接管其身份,並且因此使系統環境對於用戶是一致的。
HA集群致力於使服務器系統的運行速度和響應速度盡可能快。它們經常在多台機器上運行的冗余節點和服務,用來相互跟蹤。如果某個節點失敗,它的替補將在幾秒鐘或更短時間內接管它的職責。因此,對於用戶而言,集群永遠不會停機。
某些 HA集群也可以維護節點間冗余應用程序。因此,即使正在使用的節點出了故障,用戶的應用程序將繼續運行,正在運行的應用程序會在幾秒之內遷移到另一個節點,而所有用戶只會察覺到響應稍微慢了一點。但是,這種應用程序級冗余要求將軟件設計成具有集群意識的,並且知道節點失敗時應該做什麼。但對於Linux,目前要完全做到這一點還有一定難度。因為 目前Linux 系統沒有 HA 集群標准,並且也沒有公共 API可供應用程序開發者構建有集群意識的軟件。
HA集群可以執行負載均衡,但通常主服務器運行作業,而系統使輔助服務器保持閒置。輔助服務器通常是主服務器操作系統設置的鏡像,盡管硬件本身稍有不同。輔助節點對主服務器進行活動監控或心跳觀察,以查看它是否仍在運行。如果心跳計時器沒有接收到主服務器的響應,則輔助節點將接管網絡和系統身份(如 IP主機名和地址)。
HA集群通常包括2至8個或更多的節點,不過目前80%的HA 集群都是2個節點。Apptime的Watchdog,Hewlett-Packard的MC/Service Guard, Legato ClusterEnterprise,Lineo的Availix Clustering, Mission Critical Linux的Convolo,Motorola的HA-Linux,SGI的FailSafe, SteelEye的LifeKeeper,以及Veritas ClusterServer都是HA集群。
在集群的這三種基本類型之間,經常會發生混合與交叉。可以發現高可用性集群也可以在其節點之間均衡用戶負載,同時仍試圖維持高可用性程度。同樣,可以從要編入應用程序的集群中找到一個並行集群,它可以在節點之間執行負載均衡。
自動故障接管
自動故障接管指的是當一個節點出現故障後,其相關資源能夠自動轉移到別的節點上。在一些集群產品中,故障節點的資源甚至可以轉移到多個其它正常工作的節點上。通常需要轉移的資源包括:物理磁盤的歸屬、邏輯卷、數據庫、IP地址、應用程序進程、打印隊列以及鎖等。
自動故障接管通常有兩種模式。一種為active/passive模式,一種為active/active模式。active/passive模式即一個或多個節點運行應用程序,處於激活狀態,而另有一個節點處於備份狀態,當處於激活狀態的節點出現故障後,則備份節點立即將其工作接管。active/active模式即所有節點都處於激活狀態,當其中有節點出現故障後,其工作自動由其它節點分攤而接管掉。
至於具體采用哪種模式,則要權衡其性價比。在active/passive模式中,有一個節點始終是空閒的,因此即使有節點出現故障,由於有後備節點替補,整個系統性能不會有任何降低;在active/active模式中,由於沒有後備節點,當有節點出現故障時,故障節點的任務會分攤到其它節點上面,因此其它節點的任務會加重,從而造成整個系統性能有一定的衰減。
下面我們談談故障接管中對數據的處理:
集群采用共享數據結構時,故障節點的與數據相關工作就會按系統管理員的預先設置轉移到其它節點上去。而當集群沒有采用共享數據結構時,則一旦故障發生,則故障節點所屬的磁盤則必須切換給其它節點。在這個過程中,為了維護數據一致性,目標節點必須阻止故障節點對數據的訪問。有時節點只是暫時掛起,而並沒死掉,因此還必須區分這一情況,這是一個很痛苦的過程。相比較而言,共享數據具有更大的優勢,但采用共享數據模式時,則必須解決正常情況和故障情況下分布式鎖定問題,以確保數據一致性。對集群而言,NAS和SAN是解決共享數據的兩種很好的方法。NAS走的是TCP/IP協議,而SAN走的是FC協議族。NAS造價更低廉,更適合中小企業;而SAN則必須構造專門的SAN光纖網絡並采用專門的交換機,造價比較昂貴,更適合於大型應用。
不管采用哪種模式,都給集群的管理增加了復雜度,並且每種方法都有其優缺點,沒有哪種方法是萬能的。而采用基於SSI的管理工具可以簡化集群的管理並減少故障接管時出現錯誤的可能。
單一系統鏡像(SSI)
SSI的著眼點是減少集群系統管理的復雜性並增加集群系統的易用性。SSI使系統管理員能夠象管理一台機器一樣來管理整個集群。集群技術發展到今天,統一的管理工具已經非常必要,因為集群系統非常復雜以致於很少有用戶能夠完整地把握它。
SSI的優點主要有以下這些:
l 整個集群中操作系統只用安裝一次
l 整個集群中應用程序也只用安裝一次
l 單一的安全域
l 最終用戶不必知道應用程序在集群中哪台機器上運行,省去很多麻煩
l 能夠透明地使用集群中的資源,而不必知道其物理位置
l 系統管理變得簡單,減少了這部分的花費
開放源碼對LINUX集群技術的影響
開放源碼社區是怎麼影響LINUX集群技術的發展的呢?開放源碼界並不限制LINUX下面集群技術的發展。與私有的UNIX集群產品提供商不同,很多LINUX集群產品提供商都希望限制對LINUX內核的修改,因為它們希望自己的代碼能夠在盡可能多的LINUX發行版上運行,並減少與其它產品的不兼容性。這就造成了一個現象:大約50%的LINUX集群產品提供商在發布其產品時都同時提供其內核補丁,而這些補丁大多是很簡單的。
有一些LINUX集群產品提供商同時又是LINUX發行版提供商,為了使其集群產品能夠更好地運行,它們在其LINUX發行版上修改了LINUX內核。由於GPL的限制,它們必須同時提供對內核修改的源碼,並與其發行版一樣放在網上供大家自由下載。TurboLinux就是這樣一個例子。TurboLinux在其發行版上修改了一部分內核,諸如線程之類的,以提高其Cluster Server6的運行性能。同時,它將對內核修改部分的源碼公布,與其發行版放在一起,供大家自由下載。
一些LINUX集群產品提供商將它們的內核補丁提交給LINUX內核開發小組,希望能將其納入標准的LINUX內核代碼中。當然,這樣的影響很大,尤其會影響到它們的競爭對手。因此其底線是,這種提供商必須要很有遠見,並且由於兼容性方面的原因,它們要能夠被其它提供商和其它軟件開發商所接受。
當然,這裡也有不同意見。有些LINUX集群產品提供商認為對LINUX內核進行修改,加入更多的集群方面的支持是必然趨勢。這種觀點與一些UNIX集群產品提供商的觀點相仿,如Compaq,Compaq就已經將其與TruCluster Server相關的集群技術完全整合進Tru64UNIX和其硬件體系之中。Compaq認為這樣有利於TruCluster在重負載的情況下有更優異的性能。
另外,目前開放源碼界的很多集群項目小組對LINUX集群產品提供商都有很深的影響。一些LINUX集群產品提供商為了縮短開發周期,降低開發成本,大量吸取開放源碼界的成果,將其融入自己的產品中。如TurboLinux Cluster Server和RedhatHa-Server就深受LVS的影響。同時一些LINUX集群產品提供商采取了與開放源碼界密切合作的方式,將其產品也開放源碼,如SGI的Failsafe、Redhat Ha-Server等等。
主要LINUX集群產品簡介
在這裡我們主要介紹十種目前市場上處於領先地位的LINUX集群產品,以使大家對LINUX集群產品的發展概況有一個大致的了解。
Apptime .Watchdog 3.0
Wizard公司建立於1992年,2000年改名為Apptime。Watch-dog3.0是該公司出品的高可用及負載平衡集群產品。Watch-dog在1999年移植到linux平台上。Watch-dogLight是Watch-dog的簡化版,只能支持兩個節點和一個應用服務。
在Watch-dog 3.0中數據是不能夠並發訪問的,每個需要數據訪問的應用服務只能單獨訪問數據,數據在被訪問期間鎖定,這就避免了並發訪問可能造成的沖突。
當一個提供服務的節點需要更新時,系統管理員可以手動的在該節點上執行failover,Watch-dog 3.0linux版本不需要改動內核,該產品適用於Red Hat, SuSE, Debian, FreeBSD,Windows NT/2000,Solaris, HP-UX, IRIX, AIX以及Tru64 UNIX.,起價為每節點1000美元,Watch-dogLight起價為每節點250美元,其用戶范圍包括ISP,ASP,電信運營商,電子商務等。
下面列出了Watch-dog 3.0最重要的特點:
l 最多可支持32,000個節點
l 一個SNMP網關
l 支持多種應用服務,包括MySQL, Oracle, Sybase, Informix, SQL Server,Samba, sendmail等
l 簡單的管理工具
l 支持多種平台的真實服務器,包括Windows NT/2000 以及 Solaris
Apptime的集群管理軟件包含了基於X500或LDAP的分布式集群管理以及基於HTTP/XML的遠程檢測和管理。
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的重要特點有:
l 對於錯誤的快速監測和快速恢復。
l 在系統軟硬件維護期間仍然保持應用的有效性。
l 在線重配置
l 可伸縮的負載平衡機制
l 應用程序不需為支持高可用性而做任何修改
l 數據保護
MC/ServiceGuard管理及監控軟件、硬件以及網絡的故障,故障的檢測和恢復過程是完全自動的,不需要管理員的介入。應用包可以通過幾個簡單的命令從一個節點移動到另一個節點。允許集群中一個節點的定期維護,同時其他節點繼續工作。當該節點的維護完成後再重新加入集群。同樣也允許改變節點的操作系統。
MC/ServiceGuard擁有新的在線重配置功能,可以在系統運行時改變集群的配置。該功能允許用戶增減應用包,修改應用的屬性,修改整個包,與此同時集群和其他的應用仍在運行。也允許用戶在線增減節點。
節點失效後,在該節點上的不同應用可以被轉移到不同的新節點上去。工作量也被分配到其他的節點上。分配工作量使失效對集群的影響減少到最小
Legato Systems Legato Cluster
Legato是一家在企業級存儲管理軟件方面處於領先地位的公司。該公司使用集群技術以提高數據和應用的可用性。LegatoCluster是該公司一系列產品的名字,該系列產品的主要組成部分是Legato ClusteEnterprise,它包含了基本的集群技術,而解決方案包則是在Legato ClusteEnterprise的基礎上加上幾個附加的模塊,Legato eCluster是一個解決方案包,它包含了ClusterEnterprise的幾個征對Apache、Netscape以及HTTP 性能檢測而添加的附加模塊。LegatoeCluster必須有web服務器的支持。
Legato 的集群產品不公開源碼,但他們提供了一個完整的perl開發環境以支持開放源碼研究。Legato 的集群產品於2000年4月移植到linux平台上。
Legato Cluster Enterprise不需要改變linux內核,而且沒有服務器數量的限制,這意味著用戶可以根據應用環境的需要部署盡可能多的服務器。
Legato Cluster的目標是需要不同平台的交易環境的客戶。例如電子商務,ASP,ISP。Legato Cluster可以運行在SuSE, Caldera, Red Hat,以及其他linux發行版本上,其起價為每節點2000美元。
Legato Cluster產品(Legato Cluster Enterprise和Legato eCluster)的主要特性有:
l 單一的配置界面,使管理和重配置大型的集群變得更容易。
l 沒有服務器數量的限制,這對於有數百個web服務器的商業環境來說非常重要。
l 支持多種平台,包括Linux ,Unix 和Windows NT/2000
l 提供一個perl開發環境,允許在Legato Cluster架構上開發開放源碼的集群解決方案。以及根據特定的應用定制解決方案。
l Legato Cluster提供對Apache的支持模塊。
l 支持TCP/IP,允許通過LAN或WAN連接。
LegatoeCluster的目標是使用ip層負載平衡解決方案的用戶。ip層負載平衡通過一個director將對指定ip地址的訪問請求分配到所有運行Legato eCluster軟件的web服務器上。如果服務失效,LegatoeCluster重啟該服務或將機器標識,ip地址,web服務都轉移到另一台備用機器上,然後將服務與內容連接起來。內容可以存放在SAN,NAS, NFS或本地硬盤上。如果內容的一個拷貝失效,則通過網絡將服務與內容的第二份拷貝連接起來。
Legato Cluster通過對服務器的隔離檢測提供數據完整性,隔離檢測提供一種機制以使Legato Cluster的節點可以檢測自己是否與集群中的其他節點隔離。其主要的目的是防止兩個節點都認為對方已失效,而同時向同一塊磁盤空間中寫入數據。
Legato Cluster防止對數據的並發訪問,任何一個時刻只有一個服務器能夠對一個特定的磁盤區域進行寫操作。Legato Cluster沒有提供復制數據的功能,該功能需由第三方提供。
Legato Cluster提供一個單一的配置界面,管理員可以對整個集群進行配置而不用對每個節點逐一進行配置。
Mission Critical Linux Convolo
Mission Critical Linux公司提供專業的linux應用服務以及咨詢服務。Mission CriticalLinux提供的服務包括預配置的集群解決方案;安全服務技術(SST)提供對系統的安全的遠程管理,檢測,更新;CrashAnalysis套件提供系統core dump的能力。Convolo是Mission CriticalLinux公司提供的兩個節點的linux集群產品。該產品基於Mission CriticalLinux公司的開放源代碼的Kimberlite技術,遵循GPL。Convolo滿足了商業用戶對於高可用性以及數據完整性的要求。Convolo在2000年7月開始發售,售價為每節點995美元。Convolo由一個有多年企業集群開發經驗的開發小組做基於linux的開發,其他大多數的高可用產品都是從unix平台移植而來的。Convolo適用於所有主要的linux發行版本以及IA-32 及IA-64結構。
Convolo的目標是那些需要高可用性的數據庫以及提供動態內容的基礎的internet服務提供商;需要高可用性的文件服務器、郵件服務器、數據庫的企業用戶以及定制服務的用戶。
下面是Convolo的主要特征:
l 開放源碼
l 共享的存儲結構,支持SCSI和Fibre Channel,任何節點都能直接訪問所有的共享磁盤。
l 與linux的版本及硬件平台無關
l 支持多種應用,包括Oracle, Sendmail,MySQL, NFS等
Convolo需要對內核做一些改動,所有的改動都是公開源代碼的。
Convolo被設計為在大范圍的系統失效後仍然能夠保持數據的完整性。在Convolo的設計中包含了對通過SCSI 或FibreChannel總線互連的磁盤共享的支持。多個節點可以同時訪問存儲在共享磁盤分區上的文件以得到集群的配置和狀態信息,同時過程鎖定機制使在一個時間內只有一個節點能修改這些信息。Convolo沒有使用DLM來控制對數據的訪問,所以在一個時間內只有一個節點能運行一個指定的服務及訪問該服務的數據,如果該節點失效,服務及對服務數據的訪問移動到另一個節點上
為了保證數據的完整性,在Convolo 1.2中提供了整個NFS的failover功能,包括了NFS鎖定協議以及一系列的鑒定機制。
Convolo包括了一個基於web的GUI管理工具和一個命令行管理工具,簡單的安裝/配置腳本,以及完整的文檔。
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, WindowsNT/2000,和Solaris上。PolyServe使其產品盡可能不受linux內核改變的影響,PolyServe支持多種linux發行版本,包括RedHat, SuSE, Debian,Slackware等,兩節點的Understudy的linux和BSD版本售價為999美元,Windows及Solaris版本的要稍貴一些。本地集群為每節點1999美元,但十節點的本地集群為6999美元,或每節點699美元。
下面介紹PolyServe系列集群產品的主要特點:
l 擴展能力:一個集群可以擴展到128個節點,還可以由多個子集群構成一個可以容納數千個節點的集群。
l 集群文件系統:由物理上的共享存儲器所構成的可並發訪問的文件系統。
l 對整個集群的配置工具
l 可以指定節點在failover時的優先級,一個節點上不同的服務可以被轉移到不同的備份節點上。
l 多系統的管理能力,可管理用戶,打印機,安全,應用等,可在一個控制台下管理單一系統,子集群或整個集群。
PolyServe未來的集群產品將是一個共享的SSI集群,其目標是互聯網數據中心、ASP、ISP電子商務站點、以及內容提供商。產品的名稱和細節將在2001年公布。
Red Hat High Availability Server
Red Hat是在世界范圍內領先的linux發行商,占據50%以上的市場份額。Red Hat High 出品的HighAvailability Server是一項開放源碼的集群技術,提供動態負載平衡以及TCP/IP,UDP服務的failover支持。HighAvailabilityServer在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最主要的特點有
l 開放源碼的發行版
l 簡單的安裝
l 高性能以及高伸縮性
l 高適應性
l 增強的安全性
l 易管理性
High Availability Server需要對linux內核做一些修改,所有的改變都是開放源碼的。
一個專門的安裝程序負責安裝集群所需要的軟件包,節點的數量只取決於用戶的硬件和網絡環境。High Availability Server為web服務器提供了增強的安全性,為那些在開放的網絡環境下工作的web服務器提供了增強的安全配置。
High AvailabilityServer可以被配置為FOS和LVS兩種工作模式,在FOS模式下,系統被配置為兩個節點的熱備份集群,為應用提供冗余。在LVS模式下,系統被配置為一個多節點的集群,其中包含兩個負責負載平衡的服務器,它們負責將用戶的請求定向到一個或多個基於ip的服務上,負載平衡的算法有輪轉調度,加權輪轉調度,最小連接調度和加權最小連接調度四種,負載均衡技術有網絡地址轉換,Ip隧道和直接路由三種。
SGI Linux FailSafe
SGI有兩個集群產品,ACE和FailSafe。ACE是研發性質的技術,而FailSafe是已經推向市場的集群技術。在本文中只介紹FailSafe技術。FailSafe於1995年發布,運行在SGI的IRIXUnix操作系統上。SGI和SuSE將其移植到了linux上,SGI在2000年8月將FailSafe的源碼開放。(http://oss.sgi.com/projects/failsafe/)
Linux FailSafe是一個高可用的集群產品,每個集群支持最多8個節點。各節點可以訪問共享的RAID或鏡象磁盤。
Linux FailSafe為用戶提供了一組系統恢復的工具,並允許用戶為特定的應用編寫自己的恢復工具。LinuxFailSafe為多個重要的應用提供了高可用性的支持。包括NFS, Samba, Apache, 和Oracle。LinuxFailSafe不需要應用做任何修改。
雖然Linux FailSafe具有商業集群產品的所有特征,其主要面對的還是那些有創造性的專業用戶。一些應用(例如建模)使用大量的數據,所有的運算耗時數小時甚至數天,所以它們更需要高可用性的支持。雖然Linux FailSafe適用於商業應用,
SGI的主要目標是諸如CAD/CAM、化學及生物學、數據管理、工程分析、科學計算等用戶
下面列出了Linux FailSafe集群技術的主要特點:
l 高可用性服務
l 動態集群配置:一個節點可以動態的加入集群或從集群中刪除而不會導致應用的中斷。
l 基於java的集群管理
l 在服務不間斷的情況下對節點進行維護:用戶可以將節點從集群中刪除,對其進行升級,然後再將其重新加入到集群中,而集群的服務不會受到任何影響。
l 對數據完整性的保護
Linux FailSafe不需要對linux內核的修改,Linux FailSafe通過確保一個失效的節點不會再對一個文件系統或數據庫進行寫操作來提供對數據完整性的保護。當一個節點被發現失效後,集群中的其他節點將其從集群中刪除。
Linux FailSafe有基於java的GUI。基於java的GUI包括用來配置集群的FailSafe管理器以及用來以動態圖形的方式顯示集群狀態的FailSafe集群觀測器。
SteelEye Technology LifeKeeper for Linux
SteelEye Technology公司在1999年12月從NCR收購了Life-Keeper技術,從而也擁有了使用該技術的一系列集群產品。在此之前NCR已經在數千台服務器上部署了Life-Keeper,它們運行在Solaris,Windows NT, 和MP-RAS環境下,SteelEye對其做了一些修進,例如對javaGUI的修改,但在本質上它還是那項受到好評的NCR公司的集群技術。
LifeKeeper從2000年6月開始發售,起價為每節點1500美元,SteelEye可以提供節點的配置和全天的支持服務,但要另外收費。LifeKeeper 3.01現在支持Red Hat Linux 和 CalderaOpenLinux,在將來會支持SuSE以及其他的linux發行版本。LifeKeeper還支持Windows NT, Solaris,和MP-RAS,對Windows 2000的支持會在2001年內實現。
LifeKeeper的目標是ISP、ASP以及那些在intel平台上部屬電子商務應用和數據庫的客戶。
下面列出了LifeKeeper最主要的特點:
l 對關鍵資源的良好保護,為關鍵的商務應用提供最長的運行時間。
l 可伸縮的配置選項。
l 基於java的GUI,提供良好的易用性和易配置性。
l 已在數千台服務器上得到了證實
l 支持多種平台,包括Linux, Unix, 以及 Windows NT/2000
LifeKeeper的linux版使用linux的API,不用對內核做任何改變。應用也同樣不需改變。SteelEye提供的應用恢復工具可以在應用失效時自動切換,目前支持的應用有Oracle、 Apache、 Sendmail、 Samba、LotusDomino和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, RedHat以及其他的集群技術提供商合作。希望提供一個綜合了網絡和系統配置的易於配置的環境,類似於Hewlett-Packard的OpenView、IBM的 NetView 和Tivoli、 以及 Computer
Associates的Unicenter/TNG。
TurboLinux Cluster Server 6
Cluster Server 6 是TurboLinux公司的第三代集群技術,它是從TurboCluster4.0改進而來。Cluster Server6主要是一個負載平衡及可伸縮的解決方案,TurboLinux同時也宣稱其是一個高可用性的集群方案。這意味著同一個應用及配置在所有的節點上均可用。一旦一個節點上的服務失效,它可以在另一個節點上重新啟動,不會造成服務的中斷。
TurboLinux本身是遵循GPL的,但是在它之上的Cluster Server6則不是遵循GPL的。集群中的節點可以運行TurboLinux、 Red Hat Linux、 Solaris或WindowsNT/2000操作系統。TurboLinux宣稱Cluster Server6可以使網絡應用的無故障運行時間達到99.995%。Cluster Server 6不需要特定的硬件,也不需要對應用的修改。
包括兩個控制節點和兩個服務器節點的Cluster Server 6集群售價為995美元,包括兩個控制節點和十個服務器節點的Cluster Server 6集群售價為1995美元。
Cluster Server 6的目標是小到中型的需要高可用的web服務及內聯網服務的商務應用,電子商務站點,需要廉價的負載平衡軟件解決方案的顧客。
Cluster Server 6的主要特點有:
l 負載平衡解決方案
l 對節點的數目幾乎沒有限制
l 易用的集群管理接口
l 節點間的安全連接
l 節點可運行在TurboLinux, Red Hat Linux, Solaris或Windows NT/2000操作系統之上。
Cluster Server 6對linux內核進行了一些修改,所有對內核的改動都是開放源碼的,可以下載,Cluster Server 6中沒有包含對內核的補丁,因為這些修改已經加入了TurboLinux發行版本中。
Cluster Server6的加速連接特性改善了包路由以及傳輸管理的性能,添加了三種負載均衡技術:網絡地址轉換、ip隧道和直接路由。一個新的集群管理控制台(CMC)使管理員可以實時觀測到集群的狀態,負載和性能。CMC使管理員能夠管理集群的設置,維護。管理員只需要幾下鼠標的點擊就可以使一個節點從集群中脫離出來以對其進行維護,同時不會對集群的性能造成影響。
Veritas Cluster Server for Linux
Veritas軟件公司的主要產品有 Veritas Cluster Server和 Veritas Global ClusterManager,主要運行在Windows NT/2000、HP-UX 和Solaris上。Cluster Server forLinux基於linux內核2.4,不開放源碼。該項技術仍在測試中,未來將會發布在Red HatLinux,預計不會修改linux內核,其價格未定。
Cluster Server for Linux不需要特定的硬件,其支持的應用也不需要做任何修改。
Cluster Server forLinux更側重於對服務的管理而不是對節點的管理。一個應用由多個資源組成,一些是基於硬件的,另一些是基於軟件的。例如,一個數據庫服務包括一個或多個邏輯上的網絡標識,象ip地址;一個關系數據庫管理系統(RDBMS);一個文件系統;一個邏輯磁盤管理器;多個物理磁盤。當節點失效時,所有的資源需要轉移到另一個節點上以重建該服務。
在底層,Cluster Server for Linux監測一個服務所用到的資源。當發現服務失效時,會自動重啟服務,包括本地重啟或移動到另一個節點後重啟,取決於失效的類型,
如果一個服務的一個獨立的資源失效,則不需要重啟整個服務而只需要重啟失效的那個部分。
Cluster Server for Linux的目標是互聯網、電信及金融方面的應用。
Cluster Server for Linux的主要特點有
l 可伸縮,2~32個節點
l 可運行在HP-UX, Solaris, 和 Windows NT/2000上。
l 鞏固的系統管理。
Cluster Server for Linux是一個與體系結構無關的集群技術。
結 論
今天,為了增強系統可用性、增強應用性能、提供負載平衡、減少軟/硬件失效、保護關鍵應用,非常有必要來布署一個集群系統,從而使最終用戶更加滿意。但是在Unix平台上,這方面卻有著許多不足:過於復雜、布署成本太高、不夠靈活、選擇余地小、硬件昂貴、技術尚未成熟。
一個新的而且更具吸引力的方案是linux集群。現有的多數linux集群產品並不復雜,不需要太多的布署成本,對硬件沒有特殊的要求,雖然它們還沒有Unix下的集群技術成熟,但隨著linux以不可阻擋的勢頭進入高可用性等這些關鍵性應用領域,linux集群產品會更加完善。Linux集群產品提供商們面對的挑戰是保持相對於Unix集群技術來說較低的復雜度、高度的靈活性以及低廉的費用。
互聯網數據中心所需要的集群通常包括數百個服務器,因此它們更加需要可伸縮的資源配置而不是Unix集群技術所提供的高可用模式。所以大型的集群系統會更多的架設在linux平台上而不是傳統的unix平台,而集群的管理也會受到更多的關注。
在未來的一段時間內,linux集群產品提供商們所面對的主要挑戰是:將現有的技術更好的結合在一起,以形成一個比現在的unix集群技術更好的基於linux的集群技術,以滿足未來的需要。