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