前言:想要寫出一篇引人入勝的文章?我們特意為您整理了多集群作業(yè)管理方案設(shè)計(jì)論文范文,希望能給你帶來(lái)靈感和參考,敬請(qǐng)閱讀。
是一個(gè)典型的多集群作業(yè)全局調(diào)度模型。多集群作業(yè)管理在調(diào)度時(shí)首先依據(jù)全局資源狀態(tài)選擇某個(gè)或某些合適的集群,稱為全局調(diào)度;然后作業(yè)被分配到本地某個(gè)具體的集群,按照本地的資源管理器進(jìn)行作業(yè)調(diào)度,稱為本地調(diào)度;作業(yè)進(jìn)入本地調(diào)度階段后,按照本地原有的隊(duì)列和調(diào)度規(guī)則進(jìn)行資源分配,最終在集群各CPU上執(zhí)行。多集群作業(yè)管理的主要功能包括:用戶與權(quán)限管理、資源信息監(jiān)控、作業(yè)全局調(diào)度與管理、數(shù)據(jù)傳輸與管理。
(1)用戶與權(quán)限管理模塊。多集群作業(yè)管理系統(tǒng)是運(yùn)行在本地HPC集群作業(yè)管理系統(tǒng)之上的,本地HPC集群必然有自己的用戶系統(tǒng),而多集群作業(yè)管理平臺(tái)也有自己的用戶系統(tǒng),必須在兩個(gè)用戶系統(tǒng)間設(shè)計(jì)一種用戶映射的方式,同時(shí)還要設(shè)計(jì)權(quán)限控制機(jī)制。
(2)資源信息監(jiān)控模塊。資源信息監(jiān)控管理是作業(yè)全局調(diào)度的基礎(chǔ),全局調(diào)度系統(tǒng)在做出決策之前,必須要事先知曉各個(gè)本地集群的CPU負(fù)載和內(nèi)存占用比例等狀態(tài)信息。因此,需要設(shè)計(jì)全局的資源監(jiān)控系統(tǒng),負(fù)責(zé)管理和維護(hù)系統(tǒng)中各個(gè)集群負(fù)載的情況,為作業(yè)管理調(diào)度決策提供支持。
(3)全局作業(yè)調(diào)度與管理模塊。多集群調(diào)度的基本目標(biāo)是協(xié)調(diào)和平衡集群間的工作負(fù)載。需要設(shè)計(jì)全局的作業(yè)管理和調(diào)度器,作業(yè)調(diào)度器根據(jù)各個(gè)集群機(jī)身負(fù)載信息做出調(diào)度決策,調(diào)度用戶作業(yè)到相應(yīng)的本地集群,并提交給本地集群作業(yè)管理系統(tǒng)。同時(shí)還要為用戶設(shè)計(jì)作業(yè)狀態(tài)的訂閱及通知機(jī)制。
(4)數(shù)據(jù)傳輸與管理模塊。由于用戶作業(yè)可能被調(diào)度到任意地理位置上的集群上運(yùn)行,因此,作業(yè)輸入?yún)?shù)和計(jì)算結(jié)果需要能夠在整個(gè)系統(tǒng)中透明的傳輸。同時(shí),還要為用戶提供輸入?yún)?shù)上傳和計(jì)算結(jié)果下載功能。在設(shè)計(jì)機(jī)制實(shí)現(xiàn)透明傳輸文件的同時(shí),還必須保證該文件傳輸?shù)目煽啃院头€(wěn)定性。
2多集群作業(yè)管理設(shè)計(jì)思路與技術(shù)方案
2.1消息中間件JMS
采用JMS[9-10](JavaMessageService)消息中間件來(lái)進(jìn)行全局作業(yè)的調(diào)度和統(tǒng)一管理。JMS的消息模型和通信特點(diǎn)在網(wǎng)絡(luò)很不穩(wěn)定的情況下也能保證穩(wěn)定性和可靠性,并且JMS強(qiáng)大的接口能力可以方便靈活的進(jìn)行定制,方便根據(jù)用戶作業(yè)的資源需求及各個(gè)集群自身負(fù)載情況進(jìn)行統(tǒng)一管理和調(diào)度。
2.1.1JMS特點(diǎn)及基本組成
JMS可使分布式系統(tǒng)的通信松散連接,即發(fā)送信息的客戶端只需要負(fù)責(zé)發(fā)送信息,接收信息的客戶端接收信息,兩個(gè)客戶端之間沒(méi)有必要是同時(shí)可用的,甚至發(fā)送客戶端都沒(méi)有必要知道接收客戶端的信息,只需要發(fā)送到接收信息的服務(wù)端。同時(shí)JMS還具有以下兩個(gè)特征:
(1)異步的,服務(wù)端可以發(fā)送信息到一個(gè)客戶端,客戶端不需要為了收到信息而請(qǐng)求信息。
(2)可靠的,JMSAPI保證了服務(wù)端所有發(fā)送的信息最少發(fā)送一次和只發(fā)送一次。JMS由提供者、客戶、生產(chǎn)者、消費(fèi)者、消息、隊(duì)列、主題七個(gè)部分組成。其中,提供者指JMS的實(shí)現(xiàn),可以認(rèn)為是JMS消息服務(wù)器;JMS客戶指生產(chǎn)或消費(fèi)消息的基于Java的應(yīng)用程序或?qū)ο?JMS生產(chǎn)者是指創(chuàng)建并發(fā)送消息的JMS客戶;JMS消費(fèi)者則是接收消息的JMS客戶;消息指可以在JMS客戶之間傳遞的數(shù)據(jù)的對(duì)象;另外,JMS隊(duì)列指一個(gè)容納那些被發(fā)送的等待閱讀的消息的區(qū)域,這些消息將按照順序發(fā)送。一旦一個(gè)消息被閱讀,該消息將被從隊(duì)列中移走;JMS主題指一種支持發(fā)送消息給多個(gè)訂閱者的機(jī)制。
2.1.2JMS的通信方式Java消息服務(wù)應(yīng)用程序結(jié)構(gòu)支持兩種模型:點(diǎn)對(duì)點(diǎn)或隊(duì)列模型、/訂閱模型。
(1)在點(diǎn)對(duì)點(diǎn)或隊(duì)列模型下,一個(gè)生產(chǎn)者向一個(gè)特定的隊(duì)列消息,一個(gè)消費(fèi)者從該隊(duì)列中讀取消息。在這種模式下,只有一個(gè)消費(fèi)者將最終獲得消息。同時(shí),生產(chǎn)者不需要在接收者消費(fèi)該消息期間處于運(yùn)行狀態(tài),接收者也不需要在消息發(fā)送時(shí)處于運(yùn)行狀態(tài)。
(2)者/訂閱者模型支持向一個(gè)特定的消息主題消息。該模型如圖2所示,對(duì)某個(gè)消息主題感興趣的訂閱者可以訂閱并得到該主題的所有消息。同時(shí),在者和訂閱者之間存在時(shí)間依賴性。者需要建立一個(gè)訂閱(subscription),以便客戶能夠購(gòu)訂閱。訂閱者必須保持持續(xù)的活動(dòng)狀態(tài)以接收消息,除非訂閱者建立了持久的訂閱。在那種情況下,在訂閱者未連接時(shí)的消息將在訂閱者重新連接時(shí)重新。圖2JMS-訂閱消息模型
2.2本地集群作業(yè)管理
PBS、LSF是已有常用的單個(gè)集群作業(yè)管理系統(tǒng),采用多種本地集群作業(yè)管理系統(tǒng),在減少設(shè)計(jì)復(fù)雜度的同時(shí),還可以充分滿足不同本地集群管理多樣性的需求。PBS的主要特點(diǎn)有:代碼開(kāi)放,免費(fèi)獲取,提供完整的API。LSF特點(diǎn)是擁有強(qiáng)大的可用性和資源管理功能。
2.3基于FTP的文件集中統(tǒng)一管理方案
由于多集群可能在地理位置上是分散的,而集群之間互聯(lián)的網(wǎng)絡(luò)基礎(chǔ)設(shè)施是不可靠和不穩(wěn)定的,用戶需要透明地上傳輸入?yún)?shù)并下載計(jì)算結(jié)果,而不需要關(guān)心它的輸入?yún)?shù)在哪個(gè)地方進(jìn)行計(jì)算,以及需要到哪個(gè)地方去下載計(jì)算結(jié)果。FTP技術(shù)是比較成熟和常用的文件傳輸協(xié)議之一,文中采用基于FTP文件傳輸?shù)募薪y(tǒng)一管理方案。使用FTP進(jìn)行文件傳輸,客戶和服務(wù)器建立連接前要經(jīng)過(guò)一個(gè)“三次握手”的過(guò)程,客戶與服務(wù)器之間的連接是可靠的,而且是面向連接的,為數(shù)據(jù)傳輸提供可靠保證。它允許用戶以文件操作的方式(如文件的增、刪、改、查、傳送等)與另一主機(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è)計(jì)算完成以后,將計(jì)算結(jié)果上傳到該FTP服務(wù)器中,并把計(jì)算結(jié)果相關(guān)信息組裝成消息發(fā)送到消息服務(wù)器,全局作業(yè)管理器獲取到該消息,解析消息后就可以得到計(jì)算結(jié)果相關(guān)信息,此時(shí)計(jì)算結(jié)果已經(jīng)在FTP服務(wù)器上,用戶可以直接下載。
3多集群作業(yè)管理框架與設(shè)計(jì)實(shí)現(xiàn)
3.1多集群作業(yè)管理方案框架
是文中采用的基于消息模型的多集群作業(yè)管理框架圖。在圖3中,瀏覽器負(fù)責(zé)接收用戶提交的作業(yè)描述、輸入文件上傳、作業(yè)狀態(tài)查詢、計(jì)算結(jié)果下載等功能。全局作業(yè)管理器是整個(gè)系統(tǒng)的核心,主要負(fù)責(zé)集中管理所有的作業(yè),維護(hù)全局的集群系統(tǒng)資源負(fù)載信息,并做出相應(yīng)決策,調(diào)度作業(yè)到相應(yīng)的集群上運(yùn)行;同時(shí)實(shí)時(shí)監(jiān)控作業(yè)狀態(tài),給用戶提供作業(yè)狀態(tài)查詢,負(fù)責(zé)透明地將輸入文件傳遞到相應(yīng)集群,計(jì)算完成以后,再透明地將計(jì)算結(jié)果傳回并透明地提供給用戶下載。消息服務(wù)器主要負(fù)責(zé)緩存全局作業(yè)管理器調(diào)度給各個(gè)集群的作業(yè)信息,以及各個(gè)集群返回的作業(yè)狀態(tài)信息。而各個(gè)集群的本地程序負(fù)責(zé)從消息服務(wù)器接收作業(yè)消息,并把消息解析成作業(yè)提交給本地作業(yè)提交系統(tǒng),同時(shí)還負(fù)責(zé)定期查詢本地作業(yè)管理系統(tǒng)該作業(yè)的狀態(tài),給消息服務(wù)器發(fā)送作業(yè)狀態(tài)信息,同時(shí)在本地計(jì)算完成以后,回傳計(jì)算結(jié)果。
3.2多集群作業(yè)管理方案設(shè)計(jì)實(shí)現(xiàn)
從框架圖中可以看出,該系統(tǒng)由六部分組成,包括作業(yè)調(diào)度模塊、資源監(jiān)控模塊、作業(yè)控制模塊、作業(yè)狀態(tài)管理模塊、消息服務(wù)器模塊、本地集群程序模塊。
3.2.1消息設(shè)計(jì)
這個(gè)系統(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è)提交時(shí)間、運(yùn)行時(shí)間、完成時(shí)間等。資源狀態(tài)消息包括本地集群自身的ID、CPU計(jì)算能力、內(nèi)存大小等靜態(tài)信息,以及CPU利用率、主機(jī)負(fù)載等動(dòng)態(tài)信息,還包括目標(biāo)系統(tǒng)啟動(dòng)時(shí)間等信息。作業(yè)控制消息包括作業(yè)ID、作業(yè)用戶名稱、作業(yè)控制命令等。
3.2.2消息服務(wù)器設(shè)計(jì)
采用的是JMS中-訂閱消息服務(wù)模型作為消息服務(wù)器,類似于群發(fā)郵件的模式。消息生產(chǎn)者將消息發(fā)送給消息服務(wù)器,并設(shè)定一個(gè)主題,消息的消費(fèi)者可以訂閱其中的一個(gè)或者多個(gè)主題,并取走相應(yīng)的消息。針對(duì)某個(gè)主題的訂閱者,它必須創(chuàng)建一個(gè)訂閱之后,才能消費(fèi)者的消息,而且還可以利用JMS的持久化的訂閱,這樣,即使訂閱者沒(méi)有被激活,它也能接收到者的消息。這樣就保證了在基礎(chǔ)設(shè)施網(wǎng)絡(luò)不穩(wěn)定的情況下,消息也不會(huì)被扔掉,保證了系統(tǒng)的可靠性和穩(wěn)定性。消息服務(wù)器中消息主題的設(shè)計(jì)主要按本地集群編號(hào)和消息本身類型設(shè)計(jì),及如果有n套本地集群,那么消息主題總數(shù)量為4*n。消息服務(wù)器中消息主題設(shè)計(jì)如表1所示。
3.2.3多集群系統(tǒng)資源監(jiān)控設(shè)計(jì)
本地資源監(jiān)控是多集群作業(yè)調(diào)度管理的基礎(chǔ),能為錯(cuò)誤檢測(cè)、資源優(yōu)化配置和作業(yè)調(diào)度等提供重要的依據(jù)和參考。然而,不同本地監(jiān)控系統(tǒng)存在著不兼容的描述或者含糊的定義,可能導(dǎo)致最終監(jiān)控信息不準(zhǔn)確[11-12]。需要設(shè)計(jì)一種資源信息公共的表示方法,使得原有集群的監(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)存占用率等動(dòng)態(tài)信息。本地集群程序是守護(hù)進(jìn)程,會(huì)定期向本地集群發(fā)送監(jiān)控查詢請(qǐng)求,并將返回的監(jiān)控結(jié)果轉(zhuǎn)換成設(shè)計(jì)的統(tǒng)一規(guī)范的監(jiān)控信息,組裝成消息,發(fā)送給消息服務(wù)器。其基本算法流程描述如下:
(1)啟動(dòng)本地監(jiān)控系統(tǒng);
(2)本地守護(hù)進(jìn)程從本地監(jiān)控系統(tǒng)發(fā)送監(jiān)控查詢請(qǐng)求;
(3)本地守護(hù)進(jìn)程獲得返回結(jié)果以后,解析返回結(jié)果,組裝成設(shè)計(jì)好的統(tǒng)一規(guī)范的監(jiān)控信息格式;
(4)本地守護(hù)進(jìn)程將該實(shí)時(shí)監(jiān)控信息發(fā)送給消息服務(wù)器;
(5)程序睡眠一段時(shí)間,醒來(lái)后返回第二步。當(dāng)全局作業(yè)管理器發(fā)現(xiàn)消息服務(wù)器中相應(yīng)主題有新消息達(dá)到,將自動(dòng)獲取該消息,并添加到全局資源監(jiān)控?cái)?shù)據(jù)結(jié)構(gòu)中。
3.2.4多集群作業(yè)調(diào)度模塊設(shè)計(jì)
多集群的作業(yè)調(diào)度器采用基于全局-本地的兩級(jí)調(diào)度機(jī)制,即全局調(diào)度和本地調(diào)度[13-14]。每級(jí)調(diào)度都由相應(yīng)的隊(duì)列和調(diào)度器完成,局部調(diào)度由本地資源管理器提供,因此文中主要關(guān)注全局調(diào)度。實(shí)現(xiàn)全局調(diào)度的基本手段是定義若干全局的作業(yè)隊(duì)列,包括就緒隊(duì)列、運(yùn)行隊(duì)列、完成隊(duì)列。這些全局作業(yè)隊(duì)列由全局調(diào)度器管理。作業(yè)最終經(jīng)過(guò)全局調(diào)度-本地調(diào)度-CPU調(diào)度,形成了不同層次的調(diào)度。作業(yè)調(diào)度的流程設(shè)計(jì)描述如下:
(1)接收瀏覽器端用戶提交的作業(yè)請(qǐng)求描述和調(diào)度說(shuō)明,組裝成作業(yè)對(duì)象,加入到就緒隊(duì)列之中。
(2)通過(guò)監(jiān)控信息系統(tǒng)得到系統(tǒng)運(yùn)行狀態(tài),提供資源的使用狀況及所運(yùn)行作業(yè)的狀態(tài)查詢功能。
(3)分析作業(yè)請(qǐng)求描述及調(diào)度說(shuō)明,匹配可用資源,得到候選資源集合。
(4)根據(jù)調(diào)度策略調(diào)度算法實(shí)現(xiàn)作業(yè)到特定集群資源的匹配,將作業(yè)轉(zhuǎn)發(fā)到消息服務(wù)器上,同時(shí)作業(yè)從就緒隊(duì)列中出隊(duì),加入到運(yùn)行隊(duì)列中。
(5)相應(yīng)的本地守護(hù)進(jìn)程從消息服務(wù)器取出作業(yè)請(qǐng)求描述消息,提交給本地作業(yè)調(diào)度器,并最終將作業(yè)分配到具體的處理機(jī)上運(yùn)行。
3.2.5作業(yè)控制及狀態(tài)管理模塊設(shè)計(jì)
作業(yè)控制、作業(yè)狀態(tài)管理也是作業(yè)管理的重要組成部分。作業(yè)控制消息發(fā)送到消息服務(wù)器,相應(yīng)的本地集群程序獲取到該控制消息,并提交本地作業(yè)管理軟件。本地集群程序定期向本地作業(yè)管理軟件發(fā)送作業(yè)狀態(tài)查詢請(qǐng)求,如果發(fā)現(xiàn)作業(yè)狀態(tài)發(fā)生改變,將狀態(tài)消息發(fā)送到消息服務(wù)器,全局作業(yè)管理器獲取到該消息,解析該消息,將相應(yīng)作業(yè)從運(yùn)行隊(duì)列中取出,加入到完成隊(duì)列。
4結(jié)束語(yǔ)
文中結(jié)合中國(guó)教育科研網(wǎng)格材料高性能計(jì)算服務(wù)門戶系統(tǒng)項(xiàng)目建設(shè)背景,就如何整合不同時(shí)期、不同地域建設(shè)的高性能計(jì)算集群,提高各計(jì)算集群資源利用率,使用戶可以通過(guò)提供的統(tǒng)一平臺(tái)訪問(wèn)和使用這些高性能計(jì)算資源展開(kāi)討論。設(shè)計(jì)并實(shí)現(xiàn)了一種采用消息模型的多集群作業(yè)管理方案。該方案可以根據(jù)用戶作業(yè)的資源需求及各個(gè)集群自身負(fù)載情況進(jìn)行統(tǒng)一管理和調(diào)度。筆者基于這個(gè)原理設(shè)計(jì)并實(shí)現(xiàn)了該原型系統(tǒng)。采用該方案設(shè)計(jì)實(shí)現(xiàn)的多集群任務(wù)管理系統(tǒng)性能穩(wěn)定,能實(shí)現(xiàn)多集群資源監(jiān)控、資源管理、作業(yè)調(diào)度、作業(yè)控制、數(shù)據(jù)管理等功能??缂鹤鳂I(yè)管理實(shí)現(xiàn)了不同集群利用率均衡的同時(shí),有效解決了在資源異構(gòu)及網(wǎng)絡(luò)環(huán)境不可靠條件下的系統(tǒng)穩(wěn)定性問(wèn)題,顯著提高了多集群系統(tǒng)作業(yè)吞吐能力。
作者:谷建華 凌東 單位:西北工業(yè)大學(xué)