胡元元
摘 要:JobManager作業(yè)管理系統(tǒng)是眾多作業(yè)管理系統(tǒng)中的一員。隨著計算機應用的增加和巨大的數據需求,JobManager作業(yè)管理系統(tǒng)對數據的放置也提出了更高的要求。提出了JobManager作業(yè)管理系統(tǒng)的數據放置問題,并為該問題設計了詳細的數據放置子系統(tǒng)體系結構。
關鍵詞:作業(yè)管理;數據放置;調度;分布式
DOIDOI:10.11907/rjdk.162492
中圖分類號:TP319
文獻標識碼:A文章編號:1672-7800(2016)012-0048-03
0 引言
JobManager作業(yè)管理系統(tǒng)中的數據密集應用對大塊I/O的需求越來越大,在廣域網中處理和復制大量數據,帶來數據放置的可靠性和效率問題。查找、傳輸、使用和復制數據,數據管理器要在需要的時候對數據進行分配和釋放,并在用戶使用完數據之后清空所有使用痕跡。
數據放置活動是整個JobManager作業(yè)管理系統(tǒng)中的關鍵因素,對數據的訪問通常是數據密集應用中的瓶頸[1]。
1 數據放置子系統(tǒng)結構
JobManager作業(yè)管理系統(tǒng)提供了一個數據放置子系統(tǒng)來解決數據放置問題,這個子系統(tǒng)包括數據放置的專業(yè)調度程序,一個用于了解數據放置的作業(yè)分析器,一個從記錄中提取有用信息并給予解釋的知識庫,以及一些實時優(yōu)化工具[2]。這種數據放置子系統(tǒng)提供完整的可靠性、用戶的抽象能力、在存儲服務器上的平衡負載能力和控制網絡中的交換能力。
在遠程作業(yè)執(zhí)行過程中,數據放置是整個作業(yè)執(zhí)行的重要環(huán)節(jié)。當前解決這個問題的方法是手工或者使用簡單腳本,沒有任何自動化和容錯能力,不適應分布式計算環(huán)境的劇烈變化。它們對作業(yè)沒有權限,作業(yè)在整個過程中沒有調度。
為了解決這些問題,數據放置作業(yè)在分布式計算環(huán)境中必須像計算作業(yè)一樣成為第一類作業(yè),它們需要排隊、調度、監(jiān)控和檢查。更加重要的是,必須在沒有人為干預的情況下成功執(zhí)行。
因此,可為JobManager作業(yè)管理系統(tǒng)設計一個數據放置子系統(tǒng)來專門處理數據放置問題。數據放置子系統(tǒng)結構如圖1所示。下面對數據放置子系統(tǒng)各模塊進行介紹。
2 數據放置子系統(tǒng)模塊
2.1 作業(yè)描述
在介紹數據放置子系統(tǒng)作業(yè)描述之前,有必要介紹JobManager作業(yè)管理系統(tǒng)中的作業(yè)和作業(yè)流,在此基礎上,對數據放置作業(yè)和計算作業(yè)使用不同的作業(yè)描述。
2.1.1 單元作業(yè)(UnitJob)
在作業(yè)管理系統(tǒng)中,單元作業(yè)是可被執(zhí)行的基本單位。
在作業(yè)管理系統(tǒng)中,通常需要自動執(zhí)行一系列作業(yè),如果這些作業(yè)滿足一定的執(zhí)行邏輯或者稱之為作業(yè)依賴關系,那么將這些作業(yè)按照一定的依賴關系定制成一個作業(yè)流是一種很好的解決方式。
作業(yè)流在作業(yè)管理系統(tǒng)中也稱為作業(yè)網絡,是相互關聯(lián)的作業(yè)形成的一個作業(yè)序列。它的基本工作單元是作業(yè)。每個作業(yè)流都有一個虛擬的開始點和結束點。不含任何作業(yè)的作業(yè)流叫空作業(yè)流[3]。作業(yè)流是作業(yè)管理系統(tǒng)管理和調度的基本單元,作業(yè)不能脫離作業(yè)流而單獨提交給系統(tǒng)。
2.1.2 作業(yè)網絡圖
作業(yè)流程圖又稱為作業(yè)網絡圖,是按照一定的邏輯關系將用戶定義的作業(yè)組織成一個網狀圖,是作業(yè)流的圖形表現形式。在作業(yè)管理系統(tǒng)中,一個作業(yè)流中既包含了多個傳統(tǒng)意義上可執(zhí)行的作業(yè),又包含了作業(yè)之間的依賴關系,還有一種關系是作業(yè)流之間的依賴關系。作業(yè)之間的依賴關系以及作業(yè)流之間的依賴關系是作業(yè)流參考模型的顯著特點,能夠大大提升作業(yè)流的表達能力和執(zhí)行能力。
2.1.3 結構化作業(yè)流
在基于作業(yè)流的作業(yè)管理系統(tǒng)中,可以構造出各種復雜的作業(yè)網絡,以更好地控制作業(yè)的執(zhí)行順序。本文所研究的作業(yè)管理系統(tǒng)中,可以使用相關作業(yè)表示出順序、條件/分支、循環(huán)3種基本的執(zhí)行結構,形成結構化作業(yè)流。
(1)順序。作業(yè)執(zhí)行順序是前后關系,前一作業(yè)執(zhí)行完畢,后一作業(yè)再開始執(zhí)行,見圖2。
(2)條件/分支。條件/分支根據執(zhí)行條件決定作業(yè)網絡的執(zhí)行走向,見圖3。
(3)循環(huán)。循環(huán)執(zhí)行類似于程序語言中的do-while。利用跳轉作業(yè)來指定要循環(huán)執(zhí)行的目標作業(yè)及重復次數,見圖4。
obManager作業(yè)管理系統(tǒng)中的數據密集應用需要從遠程站點到執(zhí)行站點移動輸入數據,執(zhí)行作業(yè),然后將輸出數據從執(zhí)行站點移動到原來或者是另一個遠程站點。如果不希望在執(zhí)行站點出現用盡磁盤空間情況,就需要在傳輸數據前分配空間,并且在移動輸出數據后釋放空間。
作業(yè)描述模塊需要將這些計算和數據放置步驟使用不同的作業(yè)描述。將原來一個單元作業(yè)分解為計算作業(yè)和數據放置作業(yè)的集合,以便對數據放置作業(yè)進行下一步操作。
2.2 作業(yè)分析器
作業(yè)分析器獲得用戶定義的作業(yè)描述后,將作業(yè)描述分解為數據放置作業(yè)描述和計算作業(yè)描述,作業(yè)分析器將這兩類作業(yè)區(qū)別開來。作業(yè)分析器建立了具體的圖,數據放置作業(yè)是其中的節(jié)點,它們之間的依賴關系作為圖中的弧,如圖5所示,作業(yè)分析器將具體的圖提交給作業(yè)流管理器。
從圖5可以看出,原本的單元作業(yè)被分解為數據放置作業(yè)和計算作業(yè)。其中數據放置作業(yè)種類包括:
(1)傳輸:這種類型的作業(yè)是從一個物理位置轉移一個完整的或部分的文件到另一個物理位置,包括輸入操作、輸出操作和第三方傳輸。
(2)分配空間:這類作業(yè)是在目的節(jié)點上分配存儲空間、網絡帶寬并在來源/目的地之間建立一條通路,在數據放置前為需要放置的數據分配需要的資源。
(3)釋放:這類作業(yè)是分配前釋放相應資源。
(4)刪除:這類作業(yè)是從遠程或者本地存儲服務器、磁帶或磁盤進行物理刪除。
2.3 作業(yè)流管理器
作業(yè)流管理器收到作業(yè)分析器轉送的作業(yè)圖后,將計算作業(yè)提交到計算作業(yè)隊列[4],數據放置作業(yè)提交給數據放置作業(yè)隊列[5]。不同隊列中的作業(yè)由其對應的調度程序調度。
2.4 資源代理/策略實施器
資源代理為作業(yè)匹配資源,并且?guī)椭鷶祿ㄎ缓蜎Q定數據移動方向,每當需要時就會進行一次作業(yè)到資源的映射服務。策略實施器幫助申請具體的資源或具體的作業(yè)策略,就像一個存儲服務器可以允許多少并行連接一樣。
2.5 數據放置調度程序
數據放置調度程序分別在JobManager作業(yè)管理系統(tǒng)的輸入/輸出控制系統(tǒng)和輸入/輸出調度程序中。每個協(xié)議和數據存儲系統(tǒng)都有不同的用戶接口和不同的訪問協(xié)議庫。當作業(yè)執(zhí)行時,用戶需要處理所有不同協(xié)議庫的復雜連接,并且在數據傳輸協(xié)議和存儲系統(tǒng)中使用不同的接口[6]。數據放置調度程序為所有不同的協(xié)議和存儲服務器提供一個統(tǒng)一的接口,并且在用戶間提供抽象的能力。數據放置調度程序根據實施信息來調度隊列中的作業(yè)。系統(tǒng)最重要的組成部分是數據放置調度程序,它根據數據放置作業(yè)特征作出正確的調度決定。
2.6 網絡監(jiān)視工具
網絡監(jiān)視工具收集并統(tǒng)計最大可利用端對端帶寬、實際利用帶寬、潛在的因素和傳輸的數量,并對調度程序和資源代理/策略實施器進行反饋。
2.7 知識庫
JobManager作業(yè)管理系統(tǒng)使用過程中有這種情況:主機接受了作業(yè),但是長時間沒有做任何事情。調度程序只能不斷嘗試與主機對話,需要幾小時甚至幾天。同時還有特定主機在特定的作業(yè)等級上存在問題,但它卻成功地執(zhí)行了其它等級作業(yè)。查出上述問題的原因非常困難,而且受影響的只是部分作業(yè)。所以,簡單的方法是讓這些作業(yè)盡量避免使用資源。
為此提出了知識庫觀念,用來收集不同作業(yè)經驗。知識庫從批調度系統(tǒng)產生的作業(yè)記錄文件中收集信息[7]。數據放置子系統(tǒng)從記錄文件中提出信息并將它們加入知識庫。知識庫解析這些日志并且提出有用的信息,比如不同的事件、時間戳、錯誤信息和利用統(tǒng)計[8],然后將這些信息輸入到數據庫。知識庫在數據庫中詢問、解釋,然后返回結果給調度程序和資源代理/策略實施器,調度程序利用這些信息作出更好的調度決定。
2.8 失敗代理
失敗代理是從收集的信息或者知識庫的反饋中盡快查出失敗原因,并且使用“重試”機制和“最大允許時間”來判斷和解決失敗問題。調度程序隱藏了網絡、存儲系統(tǒng)、中間件或軟件的失敗。 “重試”機制指在返回一個失敗前,可以重試失敗的數據傳輸作業(yè)任意多次。 “中止并再運行”機制使用戶可以為數據傳輸作業(yè)指定“最大允許運行時間”。當一個作業(yè)的運行時間超過了指定時間時,調度程序會自動終止這個作業(yè)并且重新運行,解決了系統(tǒng)傳輸永遠掛起或者永不返回的問題,用戶可指定重復任意次。
3 結語
本文提出了JobManager作業(yè)管理系統(tǒng)數據放置問題,為該問題設計了數據放置子系統(tǒng),并對數據放置子系統(tǒng)體系結構進行了詳細描述,為今后數據放置作業(yè)調度打下了基礎。
參考文獻:
[1] KOUZESRT,ANDERSONGA,ELBERTST,et al.The changing paradigm of data-intensive computing [J].Computer,2009,42(1):26-34.
[2] DEANJ,GHEMAWATS.Map reduce:simplified data processing on large clusters[J].Communications of the ACM,2008,51(1):107-113.
[3] CHANGF,DEANJ,GHEAMAWATS,et al.Big table:a distributed storage system for structured data[J].ACMTrans on Computer Systems,2008,26(2):1-26.
[4] DOWDYLW,FOSTERDV.Comparative model soft file assignment problem[J].ACM Computing Surveys (CSUR),1982,14(2):287-313.
[5] DUZ,HUJ,CHENY.Optimized QoS-aware replica placement heuristics and applications in astronomy data grid[J].Journal of Systems and Software,2011,84(7):1224-1232.
[6] YUAND,YANGY,LIUX,et al.A data placement strategy in scientific cloud workflows[J].Future Generation Computer Systems,2010,26(8):1200-1214.
[7] 劉少偉,孔令梅,任開軍,等.云環(huán)境下優(yōu)化科學工作流執(zhí)行性能的兩階段數據放置與任務調度策略[J].計算機學報,2011,34(11):2121-2130.
[8] TEVFIK KOSAR.Data placement in widely distributed systems [D].University of Wisconsin-Madison,2005.
(責任編輯:杜能鋼)