公務(wù)員期刊網(wǎng) 論文中心 正文

多集群作業(yè)管理方案設(shè)計論文

前言:想要寫出一篇引人入勝的文章?我們特意為您整理了多集群作業(yè)管理方案設(shè)計論文范文,希望能給你帶來靈感和參考,敬請閱讀。

多集群作業(yè)管理方案設(shè)計論文

1多集群作業(yè)管理功能分析

是一個典型的多集群作業(yè)全局調(diào)度模型。多集群作業(yè)管理在調(diào)度時首先依據(jù)全局資源狀態(tài)選擇某個或某些合適的集群,稱為全局調(diào)度;然后作業(yè)被分配到本地某個具體的集群,按照本地的資源管理器進行作業(yè)調(diào)度,稱為本地調(diào)度;作業(yè)進入本地調(diào)度階段后,按照本地原有的隊列和調(diào)度規(guī)則進行資源分配,最終在集群各CPU上執(zhí)行。多集群作業(yè)管理的主要功能包括:用戶與權(quán)限管理、資源信息監(jiān)控、作業(yè)全局調(diào)度與管理、數(shù)據(jù)傳輸與管理。

(1)用戶與權(quán)限管理模塊。多集群作業(yè)管理系統(tǒng)是運行在本地HPC集群作業(yè)管理系統(tǒng)之上的,本地HPC集群必然有自己的用戶系統(tǒng),而多集群作業(yè)管理平臺也有自己的用戶系統(tǒng),必須在兩個用戶系統(tǒng)間設(shè)計一種用戶映射的方式,同時還要設(shè)計權(quán)限控制機制。

(2)資源信息監(jiān)控模塊。資源信息監(jiān)控管理是作業(yè)全局調(diào)度的基礎(chǔ),全局調(diào)度系統(tǒng)在做出決策之前,必須要事先知曉各個本地集群的CPU負(fù)載和內(nèi)存占用比例等狀態(tài)信息。因此,需要設(shè)計全局的資源監(jiān)控系統(tǒng),負(fù)責(zé)管理和維護系統(tǒng)中各個集群負(fù)載的情況,為作業(yè)管理調(diào)度決策提供支持。

(3)全局作業(yè)調(diào)度與管理模塊。多集群調(diào)度的基本目標(biāo)是協(xié)調(diào)和平衡集群間的工作負(fù)載。需要設(shè)計全局的作業(yè)管理和調(diào)度器,作業(yè)調(diào)度器根據(jù)各個集群機身負(fù)載信息做出調(diào)度決策,調(diào)度用戶作業(yè)到相應(yīng)的本地集群,并提交給本地集群作業(yè)管理系統(tǒng)。同時還要為用戶設(shè)計作業(yè)狀態(tài)的訂閱及通知機制。

(4)數(shù)據(jù)傳輸與管理模塊。由于用戶作業(yè)可能被調(diào)度到任意地理位置上的集群上運行,因此,作業(yè)輸入?yún)?shù)和計算結(jié)果需要能夠在整個系統(tǒng)中透明的傳輸。同時,還要為用戶提供輸入?yún)?shù)上傳和計算結(jié)果下載功能。在設(shè)計機制實現(xiàn)透明傳輸文件的同時,還必須保證該文件傳輸?shù)目煽啃院头€(wěn)定性。

2多集群作業(yè)管理設(shè)計思路與技術(shù)方案

2.1消息中間件JMS

采用JMS[9-10](JavaMessageService)消息中間件來進行全局作業(yè)的調(diào)度和統(tǒng)一管理。JMS的消息模型和通信特點在網(wǎng)絡(luò)很不穩(wěn)定的情況下也能保證穩(wěn)定性和可靠性,并且JMS強大的接口能力可以方便靈活的進行定制,方便根據(jù)用戶作業(yè)的資源需求及各個集群自身負(fù)載情況進行統(tǒng)一管理和調(diào)度。

2.1.1JMS特點及基本組成

JMS可使分布式系統(tǒng)的通信松散連接,即發(fā)送信息的客戶端只需要負(fù)責(zé)發(fā)送信息,接收信息的客戶端接收信息,兩個客戶端之間沒有必要是同時可用的,甚至發(fā)送客戶端都沒有必要知道接收客戶端的信息,只需要發(fā)送到接收信息的服務(wù)端。同時JMS還具有以下兩個特征:

(1)異步的,服務(wù)端可以發(fā)送信息到一個客戶端,客戶端不需要為了收到信息而請求信息。

(2)可靠的,JMSAPI保證了服務(wù)端所有發(fā)送的信息最少發(fā)送一次和只發(fā)送一次。JMS由提供者、客戶、生產(chǎn)者、消費者、消息、隊列、主題七個部分組成。其中,提供者指JMS的實現(xiàn),可以認(rèn)為是JMS消息服務(wù)器;JMS客戶指生產(chǎn)或消費消息的基于Java的應(yīng)用程序或?qū)ο?JMS生產(chǎn)者是指創(chuàng)建并發(fā)送消息的JMS客戶;JMS消費者則是接收消息的JMS客戶;消息指可以在JMS客戶之間傳遞的數(shù)據(jù)的對象;另外,JMS隊列指一個容納那些被發(fā)送的等待閱讀的消息的區(qū)域,這些消息將按照順序發(fā)送。一旦一個消息被閱讀,該消息將被從隊列中移走;JMS主題指一種支持發(fā)送消息給多個訂閱者的機制。

2.1.2JMS的通信方式Java消息服務(wù)應(yīng)用程序結(jié)構(gòu)支持兩種模型:點對點或隊列模型、/訂閱模型。

(1)在點對點或隊列模型下,一個生產(chǎn)者向一個特定的隊列消息,一個消費者從該隊列中讀取消息。在這種模式下,只有一個消費者將最終獲得消息。同時,生產(chǎn)者不需要在接收者消費該消息期間處于運行狀態(tài),接收者也不需要在消息發(fā)送時處于運行狀態(tài)。

(2)者/訂閱者模型支持向一個特定的消息主題消息。該模型如圖2所示,對某個消息主題感興趣的訂閱者可以訂閱并得到該主題的所有消息。同時,在者和訂閱者之間存在時間依賴性。者需要建立一個訂閱(subscription),以便客戶能夠購訂閱。訂閱者必須保持持續(xù)的活動狀態(tài)以接收消息,除非訂閱者建立了持久的訂閱。在那種情況下,在訂閱者未連接時的消息將在訂閱者重新連接時重新。圖2JMS-訂閱消息模型

2.2本地集群作業(yè)管理

PBS、LSF是已有常用的單個集群作業(yè)管理系統(tǒng),采用多種本地集群作業(yè)管理系統(tǒng),在減少設(shè)計復(fù)雜度的同時,還可以充分滿足不同本地集群管理多樣性的需求。PBS的主要特點有:代碼開放,免費獲取,提供完整的API。LSF特點是擁有強大的可用性和資源管理功能。

2.3基于FTP的文件集中統(tǒng)一管理方案

由于多集群可能在地理位置上是分散的,而集群之間互聯(lián)的網(wǎng)絡(luò)基礎(chǔ)設(shè)施是不可靠和不穩(wěn)定的,用戶需要透明地上傳輸入?yún)?shù)并下載計算結(jié)果,而不需要關(guān)心它的輸入?yún)?shù)在哪個地方進行計算,以及需要到哪個地方去下載計算結(jié)果。FTP技術(shù)是比較成熟和常用的文件傳輸協(xié)議之一,文中采用基于FTP文件傳輸?shù)募薪y(tǒng)一管理方案。使用FTP進行文件傳輸,客戶和服務(wù)器建立連接前要經(jīng)過一個“三次握手”的過程,客戶與服務(wù)器之間的連接是可靠的,而且是面向連接的,為數(shù)據(jù)傳輸提供可靠保證。它允許用戶以文件操作的方式(如文件的增、刪、改、查、傳送等)與另一主機相互通信。集中的文件統(tǒng)一管理方案可設(shè)置集中式FTP服務(wù)器,瀏覽器端提交的輸入?yún)?shù)將傳輸給該FTP服務(wù)器,本地集群程序從消息服務(wù)器中獲取到相應(yīng)主題作業(yè)消息,解析作業(yè)消息,得到用戶輸入?yún)?shù),到該FTP服務(wù)器下載相應(yīng)輸入?yún)?shù)到本地集群。本地集群程序查詢到作業(yè)計算完成以后,將計算結(jié)果上傳到該FTP服務(wù)器中,并把計算結(jié)果相關(guān)信息組裝成消息發(fā)送到消息服務(wù)器,全局作業(yè)管理器獲取到該消息,解析消息后就可以得到計算結(jié)果相關(guān)信息,此時計算結(jié)果已經(jīng)在FTP服務(wù)器上,用戶可以直接下載。

3多集群作業(yè)管理框架與設(shè)計實現(xiàn)

3.1多集群作業(yè)管理方案框架

是文中采用的基于消息模型的多集群作業(yè)管理框架圖。在圖3中,瀏覽器負(fù)責(zé)接收用戶提交的作業(yè)描述、輸入文件上傳、作業(yè)狀態(tài)查詢、計算結(jié)果下載等功能。全局作業(yè)管理器是整個系統(tǒng)的核心,主要負(fù)責(zé)集中管理所有的作業(yè),維護全局的集群系統(tǒng)資源負(fù)載信息,并做出相應(yīng)決策,調(diào)度作業(yè)到相應(yīng)的集群上運行;同時實時監(jiān)控作業(yè)狀態(tài),給用戶提供作業(yè)狀態(tài)查詢,負(fù)責(zé)透明地將輸入文件傳遞到相應(yīng)集群,計算完成以后,再透明地將計算結(jié)果傳回并透明地提供給用戶下載。消息服務(wù)器主要負(fù)責(zé)緩存全局作業(yè)管理器調(diào)度給各個集群的作業(yè)信息,以及各個集群返回的作業(yè)狀態(tài)信息。而各個集群的本地程序負(fù)責(zé)從消息服務(wù)器接收作業(yè)消息,并把消息解析成作業(yè)提交給本地作業(yè)提交系統(tǒng),同時還負(fù)責(zé)定期查詢本地作業(yè)管理系統(tǒng)該作業(yè)的狀態(tài),給消息服務(wù)器發(fā)送作業(yè)狀態(tài)信息,同時在本地計算完成以后,回傳計算結(jié)果。

3.2多集群作業(yè)管理方案設(shè)計實現(xiàn)

從框架圖中可以看出,該系統(tǒng)由六部分組成,包括作業(yè)調(diào)度模塊、資源監(jiān)控模塊、作業(yè)控制模塊、作業(yè)狀態(tài)管理模塊、消息服務(wù)器模塊、本地集群程序模塊。

3.2.1消息設(shè)計

這個系統(tǒng)中的消息分四類,第一類是作業(yè)消息,第二類是作業(yè)狀態(tài)消息,第三類是資源狀態(tài)消息,最后一類是作業(yè)控制消息。作業(yè)消息包括作業(yè)的ID、作業(yè)腳本、作業(yè)用戶名稱、需求的資源、輸入文件名稱等。作業(yè)狀態(tài)消息即作業(yè)的狀態(tài)信息,主要包括作業(yè)ID、作業(yè)狀態(tài)、作業(yè)提交時間、運行時間、完成時間等。資源狀態(tài)消息包括本地集群自身的ID、CPU計算能力、內(nèi)存大小等靜態(tài)信息,以及CPU利用率、主機負(fù)載等動態(tài)信息,還包括目標(biāo)系統(tǒng)啟動時間等信息。作業(yè)控制消息包括作業(yè)ID、作業(yè)用戶名稱、作業(yè)控制命令等。

3.2.2消息服務(wù)器設(shè)計

采用的是JMS中-訂閱消息服務(wù)模型作為消息服務(wù)器,類似于群發(fā)郵件的模式。消息生產(chǎn)者將消息發(fā)送給消息服務(wù)器,并設(shè)定一個主題,消息的消費者可以訂閱其中的一個或者多個主題,并取走相應(yīng)的消息。針對某個主題的訂閱者,它必須創(chuàng)建一個訂閱之后,才能消費者的消息,而且還可以利用JMS的持久化的訂閱,這樣,即使訂閱者沒有被激活,它也能接收到者的消息。這樣就保證了在基礎(chǔ)設(shè)施網(wǎng)絡(luò)不穩(wěn)定的情況下,消息也不會被扔掉,保證了系統(tǒng)的可靠性和穩(wěn)定性。消息服務(wù)器中消息主題的設(shè)計主要按本地集群編號和消息本身類型設(shè)計,及如果有n套本地集群,那么消息主題總數(shù)量為4*n。消息服務(wù)器中消息主題設(shè)計如表1所示。

3.2.3多集群系統(tǒng)資源監(jiān)控設(shè)計

本地資源監(jiān)控是多集群作業(yè)調(diào)度管理的基礎(chǔ),能為錯誤檢測、資源優(yōu)化配置和作業(yè)調(diào)度等提供重要的依據(jù)和參考。然而,不同本地監(jiān)控系統(tǒng)存在著不兼容的描述或者含糊的定義,可能導(dǎo)致最終監(jiān)控信息不準(zhǔn)確[11-12]。需要設(shè)計一種資源信息公共的表示方法,使得原有集群的監(jiān)控信息轉(zhuǎn)換成規(guī)范格式、形成一致的數(shù)據(jù)提供者。多集群系統(tǒng)資源監(jiān)控的核心工作是本地監(jiān)控信息數(shù)據(jù)采集轉(zhuǎn)換及信息組織。統(tǒng)一規(guī)范的集群監(jiān)控信息包括本地集群自身ID、CPU頻率等靜態(tài)信息,以及CPU利用率、內(nèi)存占用率等動態(tài)信息。本地集群程序是守護進程,會定期向本地集群發(fā)送監(jiān)控查詢請求,并將返回的監(jiān)控結(jié)果轉(zhuǎn)換成設(shè)計的統(tǒng)一規(guī)范的監(jiān)控信息,組裝成消息,發(fā)送給消息服務(wù)器。其基本算法流程描述如下:

(1)啟動本地監(jiān)控系統(tǒng);

(2)本地守護進程從本地監(jiān)控系統(tǒng)發(fā)送監(jiān)控查詢請求;

(3)本地守護進程獲得返回結(jié)果以后,解析返回結(jié)果,組裝成設(shè)計好的統(tǒng)一規(guī)范的監(jiān)控信息格式;

(4)本地守護進程將該實時監(jiān)控信息發(fā)送給消息服務(wù)器;

(5)程序睡眠一段時間,醒來后返回第二步。當(dāng)全局作業(yè)管理器發(fā)現(xiàn)消息服務(wù)器中相應(yīng)主題有新消息達到,將自動獲取該消息,并添加到全局資源監(jiān)控數(shù)據(jù)結(jié)構(gòu)中。

3.2.4多集群作業(yè)調(diào)度模塊設(shè)計

多集群的作業(yè)調(diào)度器采用基于全局-本地的兩級調(diào)度機制,即全局調(diào)度和本地調(diào)度[13-14]。每級調(diào)度都由相應(yīng)的隊列和調(diào)度器完成,局部調(diào)度由本地資源管理器提供,因此文中主要關(guān)注全局調(diào)度。實現(xiàn)全局調(diào)度的基本手段是定義若干全局的作業(yè)隊列,包括就緒隊列、運行隊列、完成隊列。這些全局作業(yè)隊列由全局調(diào)度器管理。作業(yè)最終經(jīng)過全局調(diào)度-本地調(diào)度-CPU調(diào)度,形成了不同層次的調(diào)度。作業(yè)調(diào)度的流程設(shè)計描述如下:

(1)接收瀏覽器端用戶提交的作業(yè)請求描述和調(diào)度說明,組裝成作業(yè)對象,加入到就緒隊列之中。

(2)通過監(jiān)控信息系統(tǒng)得到系統(tǒng)運行狀態(tài),提供資源的使用狀況及所運行作業(yè)的狀態(tài)查詢功能。

(3)分析作業(yè)請求描述及調(diào)度說明,匹配可用資源,得到候選資源集合。

(4)根據(jù)調(diào)度策略調(diào)度算法實現(xiàn)作業(yè)到特定集群資源的匹配,將作業(yè)轉(zhuǎn)發(fā)到消息服務(wù)器上,同時作業(yè)從就緒隊列中出隊,加入到運行隊列中。

(5)相應(yīng)的本地守護進程從消息服務(wù)器取出作業(yè)請求描述消息,提交給本地作業(yè)調(diào)度器,并最終將作業(yè)分配到具體的處理機上運行。

3.2.5作業(yè)控制及狀態(tài)管理模塊設(shè)計

作業(yè)控制、作業(yè)狀態(tài)管理也是作業(yè)管理的重要組成部分。作業(yè)控制消息發(fā)送到消息服務(wù)器,相應(yīng)的本地集群程序獲取到該控制消息,并提交本地作業(yè)管理軟件。本地集群程序定期向本地作業(yè)管理軟件發(fā)送作業(yè)狀態(tài)查詢請求,如果發(fā)現(xiàn)作業(yè)狀態(tài)發(fā)生改變,將狀態(tài)消息發(fā)送到消息服務(wù)器,全局作業(yè)管理器獲取到該消息,解析該消息,將相應(yīng)作業(yè)從運行隊列中取出,加入到完成隊列。

4結(jié)束語

文中結(jié)合中國教育科研網(wǎng)格材料高性能計算服務(wù)門戶系統(tǒng)項目建設(shè)背景,就如何整合不同時期、不同地域建設(shè)的高性能計算集群,提高各計算集群資源利用率,使用戶可以通過提供的統(tǒng)一平臺訪問和使用這些高性能計算資源展開討論。設(shè)計并實現(xiàn)了一種采用消息模型的多集群作業(yè)管理方案。該方案可以根據(jù)用戶作業(yè)的資源需求及各個集群自身負(fù)載情況進行統(tǒng)一管理和調(diào)度。筆者基于這個原理設(shè)計并實現(xiàn)了該原型系統(tǒng)。采用該方案設(shè)計實現(xiàn)的多集群任務(wù)管理系統(tǒng)性能穩(wěn)定,能實現(xiàn)多集群資源監(jiān)控、資源管理、作業(yè)調(diào)度、作業(yè)控制、數(shù)據(jù)管理等功能??缂鹤鳂I(yè)管理實現(xiàn)了不同集群利用率均衡的同時,有效解決了在資源異構(gòu)及網(wǎng)絡(luò)環(huán)境不可靠條件下的系統(tǒng)穩(wěn)定性問題,顯著提高了多集群系統(tǒng)作業(yè)吞吐能力。

作者:谷建華 凌東 單位:西北工業(yè)大學(xué)