歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux管理 >> Linux集群

Linux集群的資源管理和系統管理

本文介紹集群系統中的資源管理主要任務和系統管理主要任務,然後列舉並比較了幾種常用的資源管理軟件和系統管理軟件。

1 集群作業管理從用戶角度看,集群系統就好像一台服務器或者PC。很多用戶可以同時使用這個系統。但是當太多的用戶使用集群系統時,系統性能會變得很差。資源管理就是管理用戶提交的作業,合理給各個作業分配資源從而確保充分利用集群系統計算能力並盡可能快的得到運算結果。簡單的說,集群資源由實現如下幾個部分:

資源管理器:為了確保分配給作業合適的資源,集群資源管理需要維護一個數據庫。這個數據庫記錄了集群系統中各種資源的屬性和狀態、所有用戶提交的請求和正在運行的作業。策略管理器根據這些數據和指定的調度策略生成優先級列表。資源管理器根據這個優先級列表調度作業。資源管理器還應該具有資源預留能力。這樣不僅可以保留強大的資源給需要的作業,而且可以預留一定的冗余資源以應付集群中的結點失效和突發的計算。 作業調度策略管理器:策略管理器根據資源管理器得到各個結點上的資源狀況和系統的作業信息生成一個優先級列表。這個列表告訴資源管理器何時在哪些結點上運行哪個作業。策略管理器不僅要提供一個復雜的參數集合去定義計算環境和作業,而且要為這個定義提供簡捷靈活的表達方式以允許系統管理員實現策略驅動的資源調度。

2 Beowulf集群中的作業管理軟件有很多種選擇去管理集群系統中的資源。其中PBS資源管理器和Maui作業調度器最適合集群系統。

2.1 PBSPBS(Portable Batch System)是由NASA開發的靈活的批處理系統。它被用於集群系統、超級計算機和大規模並行系統。PBS主要有如下特征:

易用性:為所有的資源提供統一的接口,易於配置以滿足不同系統的需求,靈活的作業調度器允許不同系統采用自己的調度策略。 移植性:符合POSIX 1003.2標准,可以用於shell和批處理等各種環境。 適配性:可以適配與各種管理策略,並提供可擴展的認證和安全模型。支持廣域網上的負載的動態分發和建立在多個物理位置不同的實體上的虛擬組織。 靈活性:支持交互和批處理作業。

OpenPBS( http://www.OpenPBS.org/)是PBS的Open Source的實現。商業版本的PBS可以參照: http://www.pbspro.com/。

2.2 MauiMaui 是一個高級的作業調度器。它采用積極的調度策略優化資源的利用和減少作業的響應時間。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機上很簡單的管理功能對於集群系統而言可能會很難做到。比如讓一組結點重啟,就很難手工完成。所以集群系統需要一些特殊的硬件設備完成這些功能。下面是幾個需要硬件支持特殊管理功能:

遠程電源管理:主要是遠程關閉、打開和重啟結點與查詢結點電源狀態。在IBM eServer Cluster 1300中采用ASM。 遠程控制台:當遠程結點出現問題或出現一些特殊的軟件需要時,需要直接登錄到結點上完成操作。KVM Switch可以滿足這種需求,但是當結點很多時,KVM Switch就會很復雜。而且KVM Switch需要手工切換,不能通過軟件方法使用。Terminal Server克服了KVM Switch的缺點。Terminal Server與結點的串口相連,並把串口虛擬成管理結點上終端設備,當然這需要對結點的操作系統做些相應的配置。

3.6 系統安裝集群系統的安裝主要是指在各個結點上安裝操作系統、文件系統、並行程序運行庫、作業管理軟件和系統管理軟件等。它是集群系統投入應用的前提,所以集群系統的安裝是一件非常重要的任務。一般集群系統由幾十台,甚至上百上千台計算機組成,顯然手工安裝系統幾乎是不可能的。一般集群系統的安裝的機制是:

網絡啟動:設置需要的安裝的結點網絡啟動,然後管理結點遠程重啟需要安裝的結點。網絡啟動的結點啟動後從啟動服務器獲得一個小的操作系統內核。網絡啟動一般采用Intel的PXE(Pre-Execution Environment)標准。 PXELinux是支持PXE的網絡啟動服務器。它可以在網絡啟動的結點啟動一個小的Linux核心並運行指定的Init程序。由Init程序負責後續的安裝。 網絡安裝:這個操作系統內核負責從安裝服務器(通常是一個文件服務器)上取得安裝軟件包或系統鏡像並在本地實施系統安裝。有多種Linux工具可以完成基於網絡的系統安裝。這些工具中的典型代表是:KickStart、ALICE (Automatic Linux Installation and Configuration Environment)、SIS(System Install Suite)和PartImage。這些工具可以分為如下幾類: a. 基於Script的安裝:這種安裝方式中,安裝過程由安裝腳本(Script)控制,可以通過修改安裝腳本來配置安裝過程。這種安裝方式中,安裝服務器實際上是一個文件服務器,它向結點提供要安裝的軟件包。除了軟件包不是來自本地外,這種安裝方法和本地安裝並沒有太大的區別,本地安裝的各個步驟(配置硬件、安裝軟件包、配置系統等)它都要經過。KickStart屬於這中安裝方法。基於Script的安裝比較靈活,但是它是操作系統依賴型的。象 KickStart只支持Redhat Linux。 b. 基於Imaging的安裝:和基於Script的安裝不同,基於Imaging的安裝並不需要經過本地安裝的各個步驟。它只需要把存儲在文件服務上的需要安裝的系統映象(Image)拷貝到本地的硬盤上。這個系統映象來源於一個已經安裝和配置好的樣機。Imaging的安裝方式是獨立於操作系統,但是它依賴於網絡啟動的操作系統內核支持的文件系統。Imaging的很大缺點是很難提供獨立於操作系統的配置方法。PartImage屬於Imaging安裝方法。而SIS是Script和Imaging混合型的安裝方式。SIS利用Linux的chroot命令在安裝服務器的一個文件目錄下安裝一個虛擬的操作系統映象。同時SIS支持用戶提供Shell腳本完成安裝後的配置。 c. 基於Cloning的安裝:和Imaging安裝方式相同的是,Cloning安裝也采用系統映象。但是Cloning中的系統映象是樣機上硬盤分區的 Clone。因此,Cloning安裝不需要識別系統鏡像中的文件系統類型。所以它是獨立於文件系統的,它只依賴於操作系統內核支持的硬盤設備類型 (IDE或SCSI)。和Imaging一樣,Cloning的很大缺點是很難提供獨立於操作系統的配置方法。而且相對於Imaging而言, Cloning效率更低。你可以簡單的用dd命令實現Clone。

下表歸納了幾種安裝工具的特點:

安裝工具 安裝方法 支持的系統 支持的網絡協議 KickStart Script Redhat Linux NFS、FTP SIS Script和Imaging混合 Redhat Linux SuSE Linux Turbo Linux … rsync PartImage Imaging EXT2、FAT、NTFS、HPFS… 私有協議

3.7 域管理你可以簡單的把集群系統的域管理理解為結點管理,它主要包括如下簡單的功能:

加入、刪除和列舉集群系統中的結點 對集群中的結點分組

實際上,我們也把作業管理納入集群系統管理的任務。但是相對於其他系統管理任務而言,作業管理在集群系統中具有更重要的作用,而且通常的集群系統管理軟件也不直接實現作業管理功能。所以我們把作業管理作為集群系統一個重要的軟件部分,而不是集群系統管理的一項任務。

4 幾種集群系統管理軟件集群系統管理軟件和集群系統一樣形形色色、多種多樣。下面簡要介紹幾種集群系統管理軟件並比較它們實現的功能。

4.1 IBM CSMIBM CSM(Cluster Systems Management )是IBM eServer Cluster 1300上的系統管理軟件。IBM的Linux集群戰略的一部分就是把運行在RS/6000 SP平台上的PSSP軟件移植到基於xSeries的Linux集群系統上。CSM大部分功能來源於SP平台,但是它也集成了WebSM 2000、xSeries、開放源碼工具和其他技術。CSM是一款功能很全面的管理工具,而且還在不斷的發展中。

4.2 XCATXCAT是用於IBM eServer Cluster 1300上的系統管理軟件。它由Egan Ford開發。它基本上是由shell腳本寫成,相當簡捷。但是它實現了集群系統管理大部分的內容,是個非常出色的管理軟件。

4.3 MonMon在Linux平台上開發,但是也以運行在Solaris上而出名。Mon的服務器和客戶都是基於perl開發的,所以很容易移植到其他UNIX和類UNIX平台。

下表比較了以上三種集群系統管理軟件:

項目 CSM XCAT Mon 支持的集群系統 IBM eServer Cluster 1300 IBM eServer Cluster 1300 不特定於某個集群系統 支持的操作系統 Redhat、SuSE Redhat,結點可以采用Imaging和Cloning安裝其他操作系統,甚至於Windows 在Linux上開發,但是以運行在Solaris而著名。很容易移植到其他Unix和非Unix操作系統上 資源管理 提供統一的、可擴展的,全面的資源管理,但是由於強大而使用起來很復雜。 基本沒有 基本沒有 事件服務 提供事件訂閱發布機制,並預先定義了很多系統事件和對事件的響應 將來會於Mon集成以完成事件服務 支持 配置管理 支持 無 無 監控和診斷 支持分布式Shell(dsh)、支持SNMP 支持並發Shell(psh)、並發ping(pping) 支持SNMP 硬件控制 遠程電源管理(rpower)遠程控制台(rconsole) 遠程電源管理(rpower) 遠程控制台(rcon、wcon) 無 系統安裝 支持KickStart和SIS 支持PXE 支持KickStart、Imaging和Cloning 支持PXE和etherboot 無 域管理 全面 基本沒有 基本沒有 集成性 除了必須的開放源碼軟件包,不與任何其他軟件集成。但是底層資源管理和事件服務提供編程接口,集成很方便。上層可以通過命令調用集成。 自動安裝PBS、Maui、Myrinet和MPI。將來會支持 SgridEngine Scheduler 基本沒有,應該可以通過命令行集成 易用性 提供強大命令行工具和簡單的GUI工具 命令行工具,將來會和Ganglia集成提供一定的GUI 提供命令行和基於Web的工具




Copyright © Linux教程網 All Rights Reserved