本文介紹集群系統中的資源管理主要任務和系統管理主要任務,然後列舉並比較了幾種常用的資源管理軟件和系統管理軟件。
1 集群作業管理
從用戶角度看,集群系統就好像一台服務器或者PC。很多用戶可以同時使用這個系統。但是當太多的用戶使用集群系統時,系統性能會變得很差。資源管理就是管理用戶提交的作業,合理給各個作業分配資源從而確保充分利用集群系統計算能力並盡可能快的得到運算結果。簡單的說,集群資源由實現如下幾個部分:
2 Beowulf集群中的作業管理軟件
有很多種選擇去管理集群系統中的資源。其中PBS資源管理器和Maui作業調度器最適合集群系統。
2.1 PBS
PBS(Portable Batch System)是由NASA開發的靈活的批處理系統。它被用於集群系統、超級計算機和大規模並行系統。PBS主要有如下特征:
OpenPBS( http://www.OpenPBS.org/)是PBS的Open Source的實現。商業版本的PBS可以參照: http://www.pbspro.com/。
2.2 Maui
Maui 是一個高級的作業調度器。它采用積極的調度策略優化資源的利用和減少作業的響應時間。Maui的資源和負載管理允許高級的參數配置:作業優先級(Job Priority)、調度和分配(Scheduling and Allocation)、公平性和公平共享(Fairness and Fairshare)和預留策略(Reservation Policy)。Maui的QoS機制允許資源和服務的直接傳遞、策略解除(Policy Exemption)和指定特征的受限訪問。Maui采用高級的資源預留架構可以保證精確控制資源何時、何地、被誰、怎樣使用。Maui的預留架構完全支持非入侵式的元調度。
Maui的設計得益於世界最大的高性能計算中心的經驗。Maui本身也提供測試工具和模擬器用於估計和調節系統性能。
Maui需要資源管理器與其配合使用。我們可以把Maui想象為PBS中的一個插入部件。
更多Maui的信息可以訪問: http://www.supercluster.org
3 集群系統管理
從系統組成角度說,集群系統是由多台計算機組成的超級計算機。但是從最終用戶看來,集群系統是一台計算機,也就是說,集群系統的構成對用戶是透明的。所以集群系統的管理的目的就是讓集群系統象一台計算機一樣利於管理。歸納起來,集群系統管理一般完成如下任務:
3.1 資源管理
簡單地說,資源管理就是分配系統的資源和監控系統資源的使用狀態。這裡的資源是個很廣泛的概念,各種硬件設備、數據和程序都可以看成資源:如CPU、存儲、網卡,甚至系統的事件和log。
3.2 事件服務
事件(Event)就是系統的狀態的一次變化。如"CPU的利用率超過90%"就可以理解為一次事件。簡單的說,事件服務就是事件通知服務,也就是當一次事件發生時,通知對這類事件感興趣的個體這個事件發生了。事件服務可以分為Push(也稱為Subscribe-Publish)和Pull方式。系統管理員還應該能夠通過事件服務設置系統對事件的自動響應。
3.3 分布式命令和文件
分布式命令和文件是指讓命令和文件操作同時在整個集群結點或指定的一組結點上並行執行。
分布式命令功能通常通過分布式的Shell來提供。這種Shell一般叫做dsh(distributed shell)或 psh ( parallel shell)。你可以通過rsh或ssh來實現分布式Shell。
分布式文件主要用於指集群中配置文件的同步。集群系統實際上是由多個結點組成,所以對集群系統的一個配置需要發布到每個結點(或一組結點)。比如,需要配置每個結點上的Apache都支持CGI,就需要把/etc/httpd下的配置文件發布到每個結點的/etc/httpd中。簡單地說,集群系統地配置管理就是把一個或多個配置文件發布到指定的結點上。有很多開放源碼的工具可以幫助完成集群系統的分布式文件功能,如rdist和cfengine。
3.4 監控和診斷
對持續運行的集群系統而言,當系統正常運行時,你需要一些工具監控系統各部分的運行狀態,如系統進程、CPU利用率和內存利用率等。在普通的Unix系統上,你可以簡單的用ps和top實現這些功能。但是在集群系統中,你確實需要一些特殊工具,而且最好系統的監控可以支持多種網絡管理協議,如SNMP和 WBEM。當集群系統工作不正常時,你則需要另外一些工具來協助系統診斷。如當系統某個不服務時,你可能需要用ping診斷是不是網絡出了問題。而當時多個結點服務時,你則需要並發的ping來診斷是不是網絡錯誤。
3.5 硬件控制
PC機上很簡單的管理功能對於集群系統而言可能會很難做到。比如讓一組結點重啟,就很難手工完成。所以集群系統需要一些特殊的硬件設備完成這些功能。下面是幾個需要硬件支持特殊管理功能:
3.6 系統安裝
集群系統的安裝主要是指在各個結點上安裝>操作系統、文件系統、並行程序運行庫、作業管理軟件和系統管理軟件等。它是集群系統投入應用的前提,所以集群系統的安裝是一件非常重要的任務。一般集群系統由幾十台,甚至上百上千台計算機組成,顯然手工安裝系統幾乎是不可能的。一般集群系統的安裝的機制是: