楊甲森 孟新 王春梅
(1 中國科學院大學,北京 100049) (2 中國科學院國家空間科學中心,北京 100190)
多星多任務數(shù)傳數(shù)據(jù)實時處理系統(tǒng)設計
楊甲森1,2孟新2王春梅2
(1 中國科學院大學,北京 100049) (2 中國科學院國家空間科學中心,北京 100190)
針對衛(wèi)星地面應用系統(tǒng)支持多星多任務的運行控制需求,設計了數(shù)傳數(shù)據(jù)實時處理系統(tǒng)。采用調度中心與處理程序集協(xié)同工作的方式,在不借助消息傳遞接口(MPI)和第三方調度軟件的前提下,實現(xiàn)了數(shù)傳處理作業(yè)的集中式調度、分布式并行處理;設計處理作業(yè)調度策略,實現(xiàn)了實時任務優(yōu)先、事后任務排隊以及處理資源負載均衡;設計模塊化拆分的處理程序集,實現(xiàn)了處理系統(tǒng)的高性能、可復用。工程實踐結果表明:文章所介紹的處理系統(tǒng)能夠同時支持4顆衛(wèi)星、3個地面站、實時及事后2種模式數(shù)傳處理任務,處理的實時數(shù)據(jù)率優(yōu)于150 Mbit/s。
數(shù)傳數(shù)據(jù);多星多任務;并行處理;負載均衡
數(shù)傳數(shù)據(jù)實時處理系統(tǒng)是衛(wèi)星地面應用系統(tǒng)的重要組成部分,它包括高級在軌系統(tǒng)(Advanced Orbit System,AOS)幀同步后分路、源包同步后分包、工程參數(shù)物理量反演、科學數(shù)據(jù)拼接與解壓縮、處理結果分發(fā)與入庫等研究內容,是衛(wèi)星在軌運行期間,地面判讀星載設備狀態(tài)的前提和基礎。當前的地面應用系統(tǒng)主要以單星單系統(tǒng)為主[1],隨著衛(wèi)星編隊、星座、分離載荷組網(wǎng)探測模式的出現(xiàn)[2],以及海洋、資源、科學等衛(wèi)星的系列化,地面應用系統(tǒng)支持多星多任務的需求日益迫切,隨之也帶來了多星多任務數(shù)傳數(shù)據(jù)處理方法研究的新課題。
目前,多星多任務數(shù)傳數(shù)據(jù)處理系統(tǒng)設計主要有兩種方法:①單任務系統(tǒng)疊加,即各衛(wèi)星、接收站的實時、事后處理軟件以常駐內存形式運行,以單任務軟件疊加方式支持多星多任務。此方法設計的系統(tǒng)針對性強,運行效率高,編程無新技術門檻,故障易分析、定位,運行平臺無集群架構要求,缺點是其會持久占用處理資源,不能優(yōu)先調度實時任務。②基于消息傳遞接口(Message Passing Interface,MPI)的分布式并行處理方法[3],該方法采用計算機集群、MPI標準接口,實現(xiàn)多星多載荷數(shù)據(jù)分布式并行處理。其優(yōu)點是可借助第三方調度軟件實現(xiàn)指定任務優(yōu)先、處理資源負載均衡,缺點是依賴的“黑盒”調度軟件增加了故障分析定位的難度,MPI接口的實現(xiàn)方法對設計人員提出了新技術學習要求。
從綜合現(xiàn)有兩種方法優(yōu)點的角度出發(fā),本文提出了一種基于任務的集中式作業(yè)搜集、調度,分布式并行處理方法。建立由調度中心和處理程序集組成的總體結構,設計實時任務優(yōu)先、事后任務排隊、處理資源負載均衡的調度策略,實現(xiàn)在不借助計算機集群和第三方調度軟件的前提下,動態(tài)分配處理資源,分布式并行處理多星多任務數(shù)傳數(shù)據(jù)。
多星多任務數(shù)傳數(shù)據(jù)實時處理以衛(wèi)星數(shù)據(jù)接收計劃、事后數(shù)傳文件到達通知為驅動,以數(shù)傳實時碼流、事后數(shù)傳數(shù)據(jù)文件為處理對象,完成AOS幀同步后分路、源包同步后分包、工程參數(shù)物理量反演、圖像數(shù)據(jù)拼接與解壓縮、處理結果分發(fā)與入庫等處理[4]。系統(tǒng)外部接口如圖1所示。其功能包括在數(shù)據(jù)接收計劃標識的數(shù)據(jù)下傳時段內,完成地面站發(fā)送的實時數(shù)傳碼流數(shù)據(jù)的采集、處理、分發(fā)(給載荷狀態(tài)監(jiān)視軟件,供載荷用戶判讀設備狀態(tài));在接收到地面站發(fā)送的事后數(shù)傳文件到達通知后,完成事后文件的讀取、處理、工程參數(shù)入庫;具體處理流程如圖2所示[5]。本文研究內容即針對上述系統(tǒng)進行設計與驗證。
圖1 系統(tǒng)外部接口Fig.1 External interface of system
圖2 數(shù)傳數(shù)據(jù)處理流程Fig.2 Process flow of data transmission data
3.1 總體結構
本設計借鑒了Hadoop MapReduce框架設計思路。Hadoop MapReduce框架包括一個JobTracker和一定數(shù)量的TaskTracker。JobTracker負責接收處理作業(yè),并與TaskTracker通信。在可能的情況下,JobTracker給TaskTracker分配Map或Reduce任務,由Map和Reduce任務具體完成海量數(shù)據(jù)的并行處理[6]。
在此框架下,多星多任務數(shù)傳實時處理系統(tǒng)總體結構如圖3所示,包括調度中心和處理程序集兩部分。其中調度中心包括部署在調度計算機的調度決策(對應JobTracker),以及部署在每一個處理計算機的調度執(zhí)行(對應TaskTracker),主要完成實時及事后作業(yè)的搜集、管理以及處理程序的調度等功能;處理程序集(對應Map和Reduce任務)包括格式處理、物理量反演、工程參數(shù)分發(fā)與入庫、科學數(shù)據(jù)處理與分發(fā)等。每顆衛(wèi)星、每個接收站一套數(shù)據(jù)處理程序,每臺處理計算機均統(tǒng)一部署處理程序集全集;在任務執(zhí)行時,由調度決策以資源負載均衡為目標決策各處理程序運行的計算機;各處理程序之間以及調度決策與調度執(zhí)行之間采用以太網(wǎng)總線的方式進行交互,調度執(zhí)行與各處理程序之間的控制流通過Linux的Fork、Exec或Kill系統(tǒng)調用方式實現(xiàn)。
圖3 總體結構設計Fig.3 Structure design of system
3.2 調度中心設計
調度中心是系統(tǒng)支持多星多任務的核心。如圖4所示,調度中心由調度決策與調度執(zhí)行兩部分組成。其中調度決策負責配置信息管理、處理作業(yè)搜集、處理資源分配、處理程序調度,調度執(zhí)行負責處理資源信息上報、處理程序的啟動和終止。
(1)配置信息管理:包括對各衛(wèi)星、接收站的處理程序集信息,以及處理計算機信息的管理。其中,處理程序集信息包括所屬衛(wèi)星、接收站、類型(實時或事后)、程序標識、名稱、可執(zhí)行程序路徑、CPU及內存占用預估值、網(wǎng)絡吞吐率及處理速率預估值等,處理計算機信息包括標識、內存及網(wǎng)絡配置、IP地址等。
(2)處理作業(yè)搜集:讀取衛(wèi)星數(shù)據(jù)接收計劃、接收事后數(shù)傳數(shù)據(jù)文件到達通知,生成實時、事后處理作業(yè),并放入待執(zhí)行的作業(yè)隊列。其中數(shù)據(jù)接收計劃包含衛(wèi)星、接收站、開始接收時刻、結束接收時刻、計劃狀態(tài)(預執(zhí)行、被取消、已執(zhí)行),事后數(shù)據(jù)到達通知包括衛(wèi)星標識、事后文件路徑等。
(3)處理資源分配:設定作業(yè)調度時鐘,定時掃描待執(zhí)行作業(yè)隊列,實時作業(yè)在數(shù)據(jù)接收計劃的開始接收時刻前執(zhí)行、事后作業(yè)在接收到文件到達通知后立即執(zhí)行,執(zhí)行前根據(jù)調度策略確定作業(yè)相關各處理程序運行的計算機。
(4)處理程序調度:調度決策向調度執(zhí)行發(fā)送軟件啟動消息,調度執(zhí)行根據(jù)消息啟動處理程序后,反饋啟動結果;在接收到數(shù)傳格式處理程序(位于數(shù)據(jù)鏈頂端)的處理結束消息后,發(fā)送處理程序終止消息,并刪除隊列中的數(shù)據(jù)處理作業(yè)。
(5)資源信息上報:調度執(zhí)行定時向調度決策上報各處理計算機CPU、內存等硬件資源占用信息,供調度決策進行處理資源分配。
圖4 調度中心設計Fig.4 Design of schedule model
圖4中描述了正常狀態(tài)下的作業(yè)搜集、資源分配、處理程序調度的流程。對可能產生的異常設計如下。
(1)處理程序啟動異常:啟動某處理程序失敗時,強制終止該程序所在處理作業(yè)的其他已成功啟動的處理程序,并將整個作業(yè)的狀態(tài)恢復至等待。
(2)消息接收異常:啟動、終止或反饋消息未能正常接收時,處理作業(yè)無法完成正常調度流程。設計調度決策在超時后強制終止該作業(yè),超時時間定義為T。實時任務超時時間T=結束接收時刻+預留時間,事后任務T=處理開始時刻+文件大小/處理速率預估值+預留時間。
(3)處理程序啟動、終止順序造成處理不能覆蓋全部輸入數(shù)據(jù)異常:程序啟動和終止采用串行方式,啟動時從數(shù)據(jù)鏈的末端程序到頂端程序,終止時從頂端程序到末端程序。
調度中心解決的關鍵問題是決策“在什么時刻、在哪一臺處理計算機上、運行什么處理程序”、“如何優(yōu)先調度實時處理作業(yè)” 、“如何確保處理資源負載均衡”等,調度策略是解決這些問題的核心。
3.3 調度策略
實時處理的目的是在衛(wèi)星過境的有限時段內,即時生產出載荷數(shù)據(jù),為載荷用戶實時判讀星載設備狀態(tài)提供依據(jù),其處理時效要求高;而事后處理的目的是結果數(shù)據(jù)的歸檔、管理與應用,由于事后文件在地面站已成功落地,其處理緊迫程度不高,一般只需要下次過境之前處理完成即可;另外,為了避免某些處理設備長期處于高負荷狀態(tài),而某些設備總處于低負荷工作狀態(tài),處理調度需要考慮資源負荷均衡。因此設計調度策略原則:①實時任務優(yōu)先、事后作業(yè)排隊;②處理計算機資源負載均衡。根據(jù)原則①,設計單次作業(yè)調度流程如圖5。根據(jù)原則②,設計處理程序決策運行計算機算法如圖6。策略設計內容如下。
(1)實時作業(yè)優(yōu)先:作業(yè)調度時,只有在待執(zhí)行隊列中不包含需要調度的實時作業(yè)時,才調度事后作業(yè)。處理資源分配時,若實時作業(yè)資源分配失敗,且此時恰有同一衛(wèi)星事后作業(yè)在執(zhí)行,則強制終止正在執(zhí)行的事后作業(yè);處理資源分配后,任意處理計算機占用內存、CPU、網(wǎng)絡吞吐等資源,不能超過計算機總資源的百分比系數(shù)(定義為K),事后作業(yè)K值小于實時作業(yè)K值。
(2)事后作業(yè)排隊:搜集到新的事后處理作業(yè),且此時恰有同一衛(wèi)星的其他事后作業(yè)在執(zhí)行,則新的事后作業(yè)等待,直到正在執(zhí)行的事后作業(yè)終止。
圖5 單次作業(yè)調度流程Fig.5 Schedule flows of single homework
(3)處理資源負載均衡:處理程序資源分配時,按內存、CPU、網(wǎng)絡吞吐率預估值進行排序,優(yōu)先分配最耗資源的處理程序;單一處理程序決策運行計算機時,將處理計算機按內存、CPU、網(wǎng)絡吞吐率空閑值進行排序,優(yōu)先分配空閑計算機;單處理程序決策運行處理計算機考慮因素的順序為:內存優(yōu)先、CPU次之、網(wǎng)絡吞吐再次之,三個資源條件全部滿足的計算機為首選,前兩個資源條件滿足的次之,僅內存資源滿足的再次之。
圖6 單處理程序決策運行計算機算法Fig.6 Algorithm of process computer for single processing model
3.4 處理程序集設計
處理程序集設計以模塊劃分最為重要。本文系統(tǒng)模塊劃分的原則:①模塊可復用性,通過模塊配置信息的更改、模塊源代碼的少量更改甚至不更改,實現(xiàn)對全新衛(wèi)星任務的數(shù)傳數(shù)據(jù)處理。②模塊拆分粒度不宜過細,雖然越細粒度的模塊可組裝性越強,但其控制和模塊間交互的復雜性也越高。③性能低下處理步驟設計為獨立模塊,通過運行該模塊的多個進程、或者模塊內部設計為多線程實現(xiàn)數(shù)據(jù)并行處理。其中,須確保數(shù)據(jù)的先入先出的處理步驟設計為多線程,通過增加數(shù)據(jù)分配線程、數(shù)據(jù)融合線程實現(xiàn)數(shù)據(jù)的先入先出,而對數(shù)據(jù)順序不敏感的處理步驟設計為多進程,由數(shù)據(jù)鏈中上一層節(jié)點程序進行數(shù)據(jù)分配。④單一模塊設計復雜性控制,單一模塊專注于解決不多于一個的性能制約瓶頸,不多于一個的需求易變更項。
上述原則關注的焦點是處理需求易變更項以及性能低下的處理步驟。分析不同衛(wèi)星數(shù)傳數(shù)據(jù)實時處理的需求易變更項包括:①數(shù)傳幀格式[7];②參數(shù)物理量反演方法;③有效載荷科學數(shù)據(jù)的處理方法。性能低下的處理步驟包括:①參數(shù)物理量反演(反演需要對源包數(shù)據(jù)每一字節(jié)、甚至每一位進行處理,單線程處理的數(shù)據(jù)率僅為11 Mbit/s左右);②反演后參數(shù)入庫(頻繁的數(shù)據(jù)庫插入操作)[8];③科學數(shù)據(jù)處理(如圖像數(shù)據(jù)拼接和解壓縮處理等)。
功能分析是模塊劃分的基礎[9],結合圖2數(shù)傳數(shù)據(jù)處理流程,將處理程序劃分為數(shù)傳格式處理、參數(shù)物理量反演、參數(shù)分發(fā)與入庫以及各載荷科學數(shù)據(jù)處理與分發(fā)等模塊。
(1)數(shù)傳格式處理:完成AOS幀同步、解密、解擾、RS譯碼、源包同步、分包等處理;以配置文件形式描述數(shù)傳虛擬信道、應用過程信息,以及虛擬信道與應用過程之間的包含關系,以解決不同衛(wèi)星數(shù)傳數(shù)據(jù)格式不同的易變更項。
(2)參數(shù)物理量反演:對“數(shù)傳格式處理”輸出的工程參數(shù)源包數(shù)據(jù),進行物理量反演處理;以配置文件形式提供每一個參數(shù)的物理量反演公式 、反演系數(shù),以解決不同衛(wèi)星參數(shù)處理方法易變更項;設計多線程并行處理,對衛(wèi)星工程參數(shù)進行并行反演(須保證工程參數(shù)先入先出)。
(3)參數(shù)入庫與分發(fā):對“參數(shù)物理量反演”輸出的反演后工程參數(shù),進行入庫以及網(wǎng)絡分發(fā);處理過程中不入庫只分發(fā),結果數(shù)據(jù)存儲為文本文件,在軟件退出時,調用入庫腳本對文本文件實現(xiàn)一次性高效入庫,解決因數(shù)據(jù)庫頻繁插入操作導致的處理性能低下問題。
(4)各載荷科學數(shù)據(jù)處理與分發(fā):對“數(shù)傳格式處理”輸出的科學數(shù)據(jù)源包,進行數(shù)據(jù)拼接、解壓縮等處理;設計多個“科學數(shù)據(jù)處理與分發(fā)”程序,同時運行多個進程,每個進程以單一應用過程的科學數(shù)據(jù)為處理對象,實現(xiàn)不同載荷科學數(shù)據(jù)的并行處理。
多星多任務數(shù)傳數(shù)據(jù)實時處理系統(tǒng)已在先導衛(wèi)星運行控制任務中得到應用。在該任務中,系統(tǒng)基于萬兆網(wǎng)鏈接的1臺集中調度、9臺處理計算機硬件架構,采用調度計算機上部署調度決策軟件、處理計算機上統(tǒng)一部署調度執(zhí)行軟件以及各衛(wèi)星、接收站、實時及事后處理程序集的方法實施。其中處理程序集包括暗物質粒子探測衛(wèi)星、實踐十號返回式衛(wèi)星、“量子通信實驗衛(wèi)星”、“硬X射線調制望遠鏡衛(wèi)星”等4顆衛(wèi)星,密云、喀什、三亞等3個地面接收站,實時及事后2種模式的數(shù)傳格式處理、參數(shù)物理量反演、參數(shù)分發(fā)與入庫、各載荷科學數(shù)據(jù)處理等。
應用結果表明:①系統(tǒng)可同時支持4顆衛(wèi)星、3個地面站、實時及事后2種工作模式的數(shù)傳數(shù)據(jù)處理任務;②在進行AOS幀分路、分包、6000個工程遙測參數(shù)物理量反演、19臺載荷科學數(shù)據(jù)解壓縮的處理深度下,處理實時數(shù)據(jù)率優(yōu)于150 Mbit/s,遠高于串行處理時的11 Mbit/s速率;③系統(tǒng)設計、實現(xiàn)、任務執(zhí)行的結果表明,本文系統(tǒng)與目前兩種實現(xiàn)方式相比具有明顯的優(yōu)點(見表1)。
表1 多星多任務數(shù)傳數(shù)據(jù)實時處理系統(tǒng)特點Table 1 Features of real-time processing system for data transmission data of multi-satellite and multi-mission
多星多任務支持是衛(wèi)星地面應用系統(tǒng)的一個重要發(fā)展方向,衛(wèi)星數(shù)傳、遙測數(shù)據(jù)的實時處理是地面應用系統(tǒng)的關鍵功能之一。本文提出的基于任務的集中式調度、分布式并行處理方案,在支持多星多任務數(shù)傳處理需求的同時,也顯著提高了數(shù)據(jù)處理的效率。后續(xù)將開展下列工作,以達到衛(wèi)星地面應用系統(tǒng)全面支持多星多任務的目的。
(1)固化和發(fā)展目前已經(jīng)取得的技術成果:包括固化調度及處理程序組成的處理框架、調度策略等成果;增加處理進程控制方式以提高系統(tǒng)的靈活性,如增加進程運行中終止、掛起等功能;進一步優(yōu)化調度策略,將目前采用程序占用資源預估值,發(fā)展為采用實際值等。
(2)多星多任務數(shù)據(jù)協(xié)同處理需求及方法研究:多星協(xié)同完成一項科學探測或軍事偵查任務是衛(wèi)星應用的趨勢,致力于任務目標數(shù)據(jù)的融合、多維度剖析,開展多星數(shù)傳、遙測數(shù)據(jù)的協(xié)同處理需求及方法研究。
(3)鼓勵衛(wèi)星地面應用系統(tǒng)的其它功能開展多星多任務支持方法研究,如指令生成、工程及科學數(shù)據(jù)快視功能等。
References)
[1] 趙文波,柳健,李小文.一種支持多星多任務遙感衛(wèi)星地面系統(tǒng)綜合處理的運行控制技術[J].電子與信息學報,2005,27(6):919-923
Zhao Wenbo,Liu Jian,Li Xiaowen. An operating scheme of ground system for remote sensing satellites for multi-satellite multi-mission[J].Journal of Electronics & Information Technology,2005,27(6):919-923 (in Chinese)
[2]秦勇,惠蕾放,劉曉旭,等.分布式空間系統(tǒng)星間通信組網(wǎng)技術研究綜述[J].空間電子技術,2005(4):1-10
Qin Yong,Hui Leifang,Liu Xiaoxu,et al .Survey: Inter-satellite networking technologies of distributed space systems [J]. Space Electronic Technology,2005(4):1-10 (in Chinese)
[3]劉莉.基于MPI的衛(wèi)星遙感數(shù)據(jù)實時處理平臺設計[J].航天器工程,2013,22(3):130-134
Liu Li. Design of real-time processing platform for sa-tellite remote sensing data based on MPI [J].Spacecraft Engineering,2013,22(3):130-134 (in Chinese)
[4]何芳,單慶曉,楊柳,等.基于刀片式服務器的遙感數(shù)傳基帶處理系統(tǒng)設計[J].計算機測量與控制,2011,19(3):668-672
He Fang,Shan Qingxiao,Yang Liu,et al. Design of remote sensing data transmission baseband system based on blade system [J]. Computer Measurement & Control,2011,19(3) :668-672 (in Chinese)
[5]馮鐘葵,張洪群,王萬玉,等.遙感衛(wèi)星數(shù)據(jù)獲取與處理關鍵技術概述[J].遙感信息,2008(4):91-97
Feng Zhongkui,Zhang Hongqun,Wang Wanyu,et al. Overview of key technologies of remote sensing satellite data acquisition and processing [J].Remote Sensing Information,2008(4):91-97 (in Chinese)
[6]堯煒,馬又良.淺析Hadoop 1.0與2.0設計原理[J]. 郵電設計技術,2014(7):37-42
Yao Wei,Ma Youliang. Initial analysis of hadoop 1.0 & 2.0 design principle [J]. Designing Techniques of Posts and Telecommunication,2014(7):37-42 (in Chinese)
[7]白云飛,陳曉敏,安軍社,等.CCSDS高級在軌系統(tǒng)協(xié)議及其應用介紹[J].飛行器測控學報,2011,30(z1):16-21
Bai Yunfei,Chen Xiaomin,An Junshe,et al. Introduction to CCSDS AOS protocols and its application[J].Journal of Spacecraft TT&C Technology,2011,30(z1):16-21 (in Chinese)
[8]郭忠南,孟凡榮.關系數(shù)據(jù)庫性能優(yōu)化研究[J]. 計算機工程與設計,2006,27(23):4484-4490
Guo Zhongnan,Meng Fanrong. Research of optimizing relational database performance [J]. Computer Engineering and Design,2006,27(23) :4484-4490 (in Chinese)
[9]王日君,張進生,葛培琪,等. 模塊化設計中模塊劃分方法的研究[J]. 組合機床與自動化加工技術,2008(7):17-21
Wang Rijun,Zhang Jinsheng,Ge Peiqi,et al. Research on methodology of module division in modular design [J]. Modular Machine Tool & Automatic Manufacturing Technique,2008(7):17-21 (in Chinese)
(編輯:李多)
Design of Real-time Processing System for Transmission Data of Multi-satellite and Multi-mission
YANG Jiasen1,2MENG Xin2WANG Chunmei2
(1 University of Chinese Academy of Sciences,Beijing 100049,China) (2 National Space Science Center,CAS,Beijing 100190,China)
To meet the requirement of running control for multi-satellite and multi-mission in ground application system,a real-time transmission data processing system is designed,which is composed of dispatching center and processing modules. Concentrated scheduling and parallel processing are implemented by cooperative work of them without MPI and third-party software. Features of real-time task precedence,non-real-time task queuing and load balancing are achieved by the design of process-scheduling policy. Procedures based on module division makes the real-time processing system reusable and high performance. Practical result shows that the processing system proposed in this paper is capable of support to real-time or non-real-time tasks of 4 satellites,3 ground stations at the same time,and it can achieve real-time transmission data rate of 150Mbit/s.
transmission data; multi-satellite and multi-mission; parallel processing; load balancing
2016-01-07;
2016-04-12
楊甲森,男,副研究員,從事衛(wèi)星數(shù)據(jù)處理、有效載荷自動化測試技術研究工作。Email:jsy@nssc.ac.cn。
TP274.2
A
10.3969/j.issn.1673-8748.2016.04.010