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