概念
什麼是Cluster呢?目前常見的Cluster(叢集)架構有兩種,一種是Web /Internet cluster system,這種架構主要是將數據放置在不同的主機上面,亦即由多部主機同時負責一項服務;而另外一種則是所謂的平行運算了!平行運算其實就是將同一個運算的工作,交給整個Cluster裡面的所有CPU來進行同步運算的一個功能。由於使用到多個CPU的運算能力,所以可以加快運算的速度。目前比較常見於平行運算功能的,通常需要在超級計算機上面才看的到,這些超級計算機主要是用在天文、軍事、物理等需要很精密的、大量的運算的工作中,而考慮到穩定性,則通常是用在Unix 系統上面的硬體架構上。
高可用性群集系統可使應用程式服務能夠在發生硬體或軟體故障時仍繼續運行。高可用性系統使用戶不受軟體故障以及系統處理設備 (SPU)、磁碟或區域網路 (LAN) 組件的故障的影響。當某個組件出現故障時,將由冗餘組件接管操作。群集和其他高可用性子系統負責協調各組件之間的切換。
廣義上說,相互獨立的一些系統構成了一個組就是集群。一個客戶與集群相互作用時,集群的行為像是一個獨立的系統一樣。 從狹義上講,集群是一些相互獨立的計算機,這些計算機作為一個整體對外提供服務。對於客戶來說,這些計算機的行為就好像一個計算機一樣,但是其處理能力、可靠性、IO能力都得到了大幅的提升。
採用集群的目的
採用集群技術的目的可以概括為以下幾個方面: 提高性能.一些計算密集型套用,如:天氣預報,核試驗模擬等,需要計算機要有很強的運算處理能力,現有的技術,即使普通的大型機其計算也很難勝任,這時,一般都使用計算機集群技術,集中幾十台甚至上百台計算機的運算能力來滿足要求。提高處理性能一直是集群技術研究的一個重要目標之一。 降低成本.通常一套象樣的群集配置,其軟硬體開銷要超過 $100,000。但與價值上百萬美元的專用超級計算機相比已經相當便宜。在達到同樣性能的條件下,採用計算機集群比採用同等運算能力的大型計算機具有更高的性價比。 提高規模擴展性(Scalabilitry).目前,計畫擴展系統能力的用戶必須購買昂貴的最新的伺服器,才能獲得額外所需的CPU,驅動器和記憶體。如果該服務系統採用集群技術,則只需要將新的伺服器加入集群中即可,對於客戶來看,服務無論從連續性還是性能上都幾乎沒有變化,好像系統在不知不覺中完成了升級。 增強可靠性.據統計每年由於系統停運,全美國損失40億美元。在零售業,平均每次停運損失140000美元,保全業每次停運平均損失450000美元,集群技術使系統在故障發生時仍可以繼續工作,將系統停運時間減到最小。集群系統在提高了系統的可靠性的同時,也大大減小了故障損失。
集群類型
最常見的三種群集類型包括高性能科學群集、負載均衡群集和高可用性群集。
1、科學群集 科學集群是並行計算的基礎。通常,科學群集涉及為群集開發的並行應用程式,以解決複雜的科學問題。科學集群對外就好像一個超級計算機,這種超級計算機內部由十至上萬個獨立處理器組成。但它卻使用商業系統,並且在公共訊息傳遞層上進行通信以運行並行應用程式。 我們常常聽說又有一種便宜的 Linux 超級計算機問世了。這種超級計算機實際上是一個計算機群集,其處理能力與真的超級計算機相仿,但是硬體以及運行維護費用要比真正的超級計算機低很多,具有極高的性價比。 並行群集系統之所以可以達到如此高的頻寬和低延遲,是因為它們通常繞過使用網路協定,如 TCP/IP。雖然網際協定對於廣域網很重要,但它包含了太多的開銷,而這些開銷在節點相互已知的封閉網路群集中是不必要的。節點之間可以使用直接記憶體訪問 (DMA)來進行通訊,它類似於圖形卡和其它外圍設備在一台機器中的工作方式。因此橫跨群集,可以通過任何節點上的任何處理器直接訪問分散式共享記憶體。 同樣也可以使用低開銷的訊息傳遞系統,在節點之間進行通信。訊息傳遞接口 (MPI) 是並行群集系統間訊息傳遞層的最常見實現。MPI 存在幾種衍生版本,但在所有情況下,它為開發者訪問並行應用程式提供了一個公共 API,這樣開發者就不必手工解決如何在群集的節點之間分發代碼段。
2、負載均衡群集 負載均衡群集為企業需求提供了更實用的系統。如名稱所暗示的,負載均衡群集使負載可以在計算機群集中儘可能平均地分攤處理。負載通常包括應用程式處理負載和網路流量負載。這樣的系統非常適合向使用同一組應用程式的大量用戶提供服務。每個節點都可以承擔一定的處理負載,並且可以實現處理負載在節點之間的動態分配,以實現負載均衡。對於網路流量負載,當網路服務程式接受了太多入網流量,以致無法迅速處理,這時,網路流量就會傳送給在其它節點上運行的網路服務程式。同時,還可以根據每個節點上不同的可用資源或網路的特殊環境來進行最佳化。 與科學計算集群一樣,負載均衡群集也在多節點之間分發計算處理負載。他們之間的最大區別在於缺少跨節點運行的單並行程式。大多數情況下,負載均衡群集中的每個節點都是運行單獨軟體的獨立系統。但是,不管是在節點之間進行直接通信,還是通過中央負載均衡伺服器來控制每個節點的負載,在節點之間都有一種公共關係。通常,使用特定的算法來分發該負載。 網路流量負載均衡是一個過程,它檢查到某個群集的入網流量,然後將流量分發到各個節點以進行適當處理。它最適合大型網路應用程式,如 Web 或 FTP 伺服器。負載均衡網路套用服務要求群集軟體檢查每個節點的當前負載,並確定哪些節點可以接受新的作業。這最適合運行如數據分析等串列和批處理作業。那些系統還可以配置成關注某特定節點的硬體或作業系統功能,這樣,群集中的節點就沒有必要是一致的。
3、高可用性群集 可用性(availability)當集群中的一個系統發生故障時,集群軟體迅速做出反映,將該系統的任務分配到集群中其它正在工作的系統上執行。 考慮到計算機硬體和軟體的易錯性,高可用性群集的的目的主要是為了使群集的整體服務儘可能可用。如果高可用性群集中的主節點發生了故障,那么這段時間內將由次節點代替它。次節點通常是主節點的鏡像,所以當它代替主節點時,它可以完全接管其身份,並且因此使系統環境對於用戶是一致的。 高可用性 (HA)群集致力於使伺服器系統的運行速度和回響速度儘可能快。它們經常利用在多台機器上運行的冗餘節點和服務,用來相互跟蹤。如果某個節點失敗,它的替補將在幾秒鐘或更短時間內接管它的職責。因此,對於用戶而言,群集永遠不會停機。 某些 HA 群集也可以維護節點間冗餘應用程式。因此,用戶的應用程式將繼續運行,即使他或她使用的節點出了故障。正在運行的應用程式會在幾秒之內遷移到另一個節點,而所有用戶只會察覺到回響稍微慢了一點。但是,這種應用程式級冗餘要求將軟體設計成具有群集意識的,並且知道節點失敗時應該做什麼。 HA 群集也可以執行負載均衡,但通常主伺服器運行作業,而系統使輔助伺服器保持閒置。輔助伺服器通常是主伺服器作業系統設定的鏡像,儘管硬體本身稍有不同。輔助節點對主伺服器進行活動監控或心跳觀察,以查看它是否仍在運行。如果心跳計時器沒有接收到主伺服器的回響,則輔助節點將接管網路和系統身份。 在群集的這三種基本類型之間,經常會發生混合與交雜。可以發現高可用性群集也可以在其節點之間均衡用戶負載。同樣,也可以從要編寫應用程式的群集中找到一個並行群集,它可以在節點之間執行負載均衡。從這個意義上講,這種集群類別的劃分是一個相對的概念,不是絕對的。 集群的教育科研套用 對於教育套用來說,負載均衡集群是套用面最廣,最有發展潛力的集群套用形式。 隨著網路教育的發展,網路教育系統的用戶將成幾何方式增長。由此而導致教育類網站的訪問量大幅增長。由於教育網路資源很多是多媒體素材,包括音頻、視頻、動畫等,這就會產生極大的網路流量負載以及額外的處理負載。 在這種情況下,單機的處理能力很快得到飽和,一種方案就是升級系統。升級系統的方法會導致伺服器工作在降級模式下或伺服器關機,對於客戶來說,其效果和伺服器遭受DOS攻擊時的效果時一樣的。 舉個簡單的例子,許多網站在升級的過程中,比如(中國同學錄網),會不能訪問或者有個提示:"系統升級中,請稍後再訪問"。這個"稍後"的概念通常是半天左右;而大家也可以注意到,象google這樣的網站,在比(中國同學錄網)的客戶訪問量上要大很多的情況下也幾乎沒有出現這種情況,原因就在於google採用的是集群伺服器。Google系統升級在後台進行的時候,其處理和IO負載被自動分發到集群中的其他伺服器上,所以對於用戶而言,幾乎感覺不到在回響時間方面的差別。
另外一種方案就是添置新的伺服器,但是在網路上,一台機器唯一的對應於一個IP位址,一個IP唯一的與一個域名綁定,客戶需要在訪問一個URL的時候得到相同的回響,而不是來自不同主機的不同回響。這就要求新添置的伺服器和原有的伺服器應該對外看起來就像一台伺服器一樣,而不是多台伺服器。而這正是集群所產生的效果。 當教育網站的處理能力和IO能力超出單機的負載能力時,考慮性價比、運維成本、可靠性等多方面因素,集群技術就成為最佳的選擇。
集群系統實現方案
有一種常見的方法可以大幅提高伺服器的安全性,這就是集群。 1、 集群的基本概念 Cluster集群技術可如下定義:一組相互獨立的伺服器在網路中表現為單一的系統,並以單一系統的模式加以管理。此單一系統為客戶工作站提供高可靠性的服務。 大多數模式下,集群中所有的計算機擁有一個共同的名稱,集群內任一系統上運行的服務可被所有的網路客戶所使用。Cluster必須可以協調管理各分離的組件的錯誤和失敗,並可透明地向Cluster中加入組件。 一個Cluster包含多台(至少二台)擁有共享數據存儲空間的伺服器。任何一台伺服器運行一個套用時,套用數據被存儲在共享的數據空間內。每台伺服器的作業系統和應用程式檔案存儲在其各自的本地儲存空間上。 Cluster內各節點伺服器通過一內部區域網路相互通訊。當一台節點伺服器發生故障時,這台伺服器上所運行的應用程式將在另一節點伺服器上被自動接管。當一個套用服務發生故障時,套用服務將被重新啟動或被另一台伺服器接管。當以上任一故障發生時,客戶將能很快連線到新的套用服務上。 2、 集群的硬體配置 鏡像伺服器雙機 集群中鏡像伺服器雙機系統是硬體配置最簡單和價格最低廉的解決方案,通常鏡像服務的硬體配置需要兩台伺服器,在每台伺服器有獨立作業系統硬碟和數據存貯硬碟,每台伺服器有與客戶端相連的網卡,另有一對鏡像卡或完成鏡像功能的網卡。 鏡像伺服器具有配置簡單,使用方便,價格低廉諸多優點,但由於鏡像伺服器需要採用網路方式鏡像數據,通過鏡像軟體實現數據的同步,因此需要占用網路伺服器的CPU及記憶體資源,鏡像伺服器的性能比單一伺服器的性能要低一些。 有一些鏡像伺服器集群系統採用記憶體鏡像的技術,這個技術的優點是所有的應用程式和網路作業系統在兩台伺服器上鏡像同步,當主機出現故障時,備份機可以在幾乎沒有感覺的情況下接管所有應用程式。因為兩個伺服器的記憶體完全一致,但當系統應用程式帶有缺陷從而導致系統宕機時,兩台伺服器會同步宕機。這也是記憶體鏡像卡或網卡實現數據同步,在大數據量讀寫過程中兩台伺服器在某些狀態下會產生數據不同步,因此鏡像伺服器適合那些預算較少、對集群系統要求不高的用戶。 硬體配置範例: · 網路伺服器 兩台 · 伺服器作業系統硬碟 兩塊 · 伺服器數據存貯硬碟 視用戶需要確定 · 伺服器鏡像卡(部分軟體可使用標準網卡) 兩塊 · 網路服務網卡 兩塊雙機與磁碟陣列櫃 與鏡像伺服器雙機系統相比,雙機與磁碟陣列櫃互聯結構多出了第三方生產的磁碟陣列櫃,目前,同有公司、豪威公司、精業公司等許多公司都生產有磁碟陣列櫃,在磁碟陣列櫃中安裝有磁碟陣列控制卡,陣列櫃可以直接將櫃中的硬碟配置成為邏輯盤陣。磁碟陣列櫃通過SCSI電纜與伺服器上普通SCSI卡相連,系統管理員需直接在磁碟柜上配置磁碟陣列。 雙機與磁碟陣列櫃互聯結構不採用記憶體鏡像技術,因此需要有一定的切換時間(通常為60——180秒),它可以有郊的避免由於應用程式自身的缺陷導致系統全部宕機,同時由於所有的數據全部存貯在中置的磁碟陣列櫃中,當工作機出現故障時,備份機接替工作機,從磁碟陣列中讀取數據,所以不會產生數據不同步的問題,由於這種方案不需要網路鏡像同步,因此這種集群方案伺服器的性能要比鏡像伺服器結構高出很多。
雙機與磁碟陣列櫃互聯結構的缺點是在系統當中存在單點錯的缺陷,所謂單點錯是指當系統中某個部件或某個應用程式出現故障時,導致所有系統全部宕機。在這個系統中磁碟陣列櫃是會導致單點錯,當磁碟陣列櫃出現邏輯或物理故障時,所有存貯的數據會全部丟失,因此,在選配這種方案時,需要選用一個品質與售後服務較好的產品。 硬體配置範例: · 網路伺服器 兩台 · 伺服器作業系統硬碟 兩塊 · 第三方生產的磁碟陣列櫃 一台 · 磁碟櫃專用SCSI電線 兩根 · 磁碟陣列櫃數據存貯硬碟 視用戶需求確定 · 網路服務網卡 兩塊 除此之外,一些廠商還有更優秀的技術的解決方案,比如HP。 HP雙機雙控容錯系統 HP NetServer為雙機雙控容錯系統提供了高品質和高可靠的硬體基礎。。 HP雙機雙控容錯系統結合了HP伺服器產品的安全可靠性與Cluster技術的優點,相互配合二者的優勢。 硬體配置範例: · HP L系統的網路伺服器 兩台 · 伺服器作業系統硬碟 兩塊 · HP硬碟存貯櫃(SS/6,RS/8,RS/12) 一台 · 磁碟櫃專用SCSI集群適配電纜 兩根 · 磁碟櫃數據存貯硬碟 視用戶需求確定 · HP集群專用陣列卡 兩塊 · 網路服務網卡 兩塊 HP光纖通道雙機雙控集群系統 光纖通道是一種連線標準,可以作為SCSI的一種替代解決方案,光纖技術具有高頻寬、抗電磁干擾、傳輸距離遠、質量高、擴展能力強等特性,目前在FC-AL仲裁環路上可接入126個設備。 光纖設備提供了多種增強的連線技術,大大方便了用戶使用。伺服器系統可以通過光纜遠程連線,最大可跨越10公里的距離。它允許鏡像配置,這樣可以改善系統的容錯能力。伺服器系統的規模將更加靈活多變。SCSI每條通道最多可連線15個設備,而光纖仲裁環路最多可以連線126個設備。 光纖集群系統組成: HP光纖集群系統硬體設備包括有兩台HP伺服器(需支持光纖卡,目前有LC2000、LH3000、LH4、LH6000、LT6000、LXr8000、LXR8500)及光纖適配卡,可以使用RS/12FC光纖磁碟陣列櫃,需另加一對或兩對網卡用於心跳檢測和與客戶端連線。在配置過程中還需另外選配光纖卡到光纖存貯設備的光纖電纜。 硬體配置: · HPL系統的網路伺服器 兩台 · 伺服器作業系統硬碟 兩塊 · HP光纖陣列存貯櫃(RS/12FC) 一台 · 光纖磁碟櫃專用光纖電纜 兩根 · 光纖磁碟櫃數據存貯硬碟 視用戶需求確定 · HP光纖適配卡 兩塊 · 網路服務網卡 兩塊 3、集群的軟體配置 基於NT平台的集群軟體 microsoft的MSCS,也有許多第三方的專業軟體公司開發的集群軟體,如ROSE datasystem的ROSE HA,VINCA公司的STANDBY SERVER,NSI公司的DOUBLE-TAKE。 MS WolfPack的特點 MS WolfPack是MS Cluster server的別稱,是微軟針對Cluster技術研製開發的雙機軟體。它集成在NT SERVER上,支持由二台機器組成的雙機系統,提供一種高可用且易管理的套用環境。 主要特點: · 自動檢測和修復伺服器或應用程式的錯誤 · 可實現對伺服器中應用程式的切換 · 可通過TCP/IP連線各種客戶端,如MS-DOS、WINDOWS 3.X/9X/NT,Apple Macintosh、UNIX等 · 生產主機無需人工干涉即可自動恢複數據並接管任務 · 易管理性: · 可自動審核伺服器和應用程式的工作狀態 · 可建立高可用性的應用程式、檔案共享、列印請求等 · 可靈活設定應用程式和數據的恢復策略 · 簡單操作即可進行應用程式的離線,重新再線,伺服器間的遷移。 目前,WINDOWS 2000 Advanced Server與WINDOWS 2000 DataCenter Server都集成有更先進集群技術。 其它的網路作業系統平台上也有許多集群軟體,比如: 基於novell平台的集群軟體有Novell HA Server、Novell SFT III 基於sco UNIX平台的集群軟體有Sentinel集群軟體 基於Linux平台的集群軟體有TurboCluster 4、集群技術的發展趨勢 集群技術隨著伺服器硬體系統與網路作業系統的發展將會在可用性、高可靠性、系統冗餘等方面逐步提高。未來的集群可以依靠集群檔案系統實現對系統中的所有檔案、設備和網路資源的全局訪問,並且生成一個完整的系統映像。這樣,無論應用程式在集群中的哪台伺服器上,集群檔案系統允許任何用戶(遠程或本地)都可以對這個軟體進行訪問。任何應用程式都可以訪問這個集群任何檔案。甚至在應用程式從一個節點轉移到另一個節點的情況下,無需任何改動,應用程式就可以訪問系統上的檔案。
在今天,利用伺服器的集群技術,通過周密計畫和網路維護,系統破壞的機率是非常小的。所以,企業伺服器的穩定必須使用集群技術。