多星多任务数传数据实时处理系统设计
2016-03-16杨甲森孟新王春梅
杨甲森 孟新 王春梅
(1 中国科学院大学,北京 100049) (2 中国科学院国家空间科学中心,北京 100190)
多星多任务数传数据实时处理系统设计
杨甲森1,2孟新2王春梅2
(1 中国科学院大学,北京 100049) (2 中国科学院国家空间科学中心,北京 100190)
针对卫星地面应用系统支持多星多任务的运行控制需求,设计了数传数据实时处理系统。采用调度中心与处理程序集协同工作的方式,在不借助消息传递接口(MPI)和第三方调度软件的前提下,实现了数传处理作业的集中式调度、分布式并行处理;设计处理作业调度策略,实现了实时任务优先、事后任务排队以及处理资源负载均衡;设计模块化拆分的处理程序集,实现了处理系统的高性能、可复用。工程实践结果表明:文章所介绍的处理系统能够同时支持4颗卫星、3个地面站、实时及事后2种模式数传处理任务,处理的实时数据率优于150 Mbit/s。
数传数据;多星多任务;并行处理;负载均衡
1 引言
数传数据实时处理系统是卫星地面应用系统的重要组成部分,它包括高级在轨系统(Advanced Orbit System,AOS)帧同步后分路、源包同步后分包、工程参数物理量反演、科学数据拼接与解压缩、处理结果分发与入库等研究内容,是卫星在轨运行期间,地面判读星载设备状态的前提和基础。当前的地面应用系统主要以单星单系统为主[1],随着卫星编队、星座、分离载荷组网探测模式的出现[2],以及海洋、资源、科学等卫星的系列化,地面应用系统支持多星多任务的需求日益迫切,随之也带来了多星多任务数传数据处理方法研究的新课题。
目前,多星多任务数传数据处理系统设计主要有两种方法:①单任务系统叠加,即各卫星、接收站的实时、事后处理软件以常驻内存形式运行,以单任务软件叠加方式支持多星多任务。此方法设计的系统针对性强,运行效率高,编程无新技术门槛,故障易分析、定位,运行平台无集群架构要求,缺点是其会持久占用处理资源,不能优先调度实时任务。②基于消息传递接口(Message Passing Interface,MPI)的分布式并行处理方法[3],该方法采用计算机集群、MPI标准接口,实现多星多载荷数据分布式并行处理。其优点是可借助第三方调度软件实现指定任务优先、处理资源负载均衡,缺点是依赖的“黑盒”调度软件增加了故障分析定位的难度,MPI接口的实现方法对设计人员提出了新技术学习要求。
从综合现有两种方法优点的角度出发,本文提出了一种基于任务的集中式作业搜集、调度,分布式并行处理方法。建立由调度中心和处理程序集组成的总体结构,设计实时任务优先、事后任务排队、处理资源负载均衡的调度策略,实现在不借助计算机集群和第三方调度软件的前提下,动态分配处理资源,分布式并行处理多星多任务数传数据。
2 多星多任务数传数据实时处理系统任务
多星多任务数传数据实时处理以卫星数据接收计划、事后数传文件到达通知为驱动,以数传实时码流、事后数传数据文件为处理对象,完成AOS帧同步后分路、源包同步后分包、工程参数物理量反演、图像数据拼接与解压缩、处理结果分发与入库等处理[4]。系统外部接口如图1所示。其功能包括在数据接收计划标识的数据下传时段内,完成地面站发送的实时数传码流数据的采集、处理、分发(给载荷状态监视软件,供载荷用户判读设备状态);在接收到地面站发送的事后数传文件到达通知后,完成事后文件的读取、处理、工程参数入库;具体处理流程如图2所示[5]。本文研究内容即针对上述系统进行设计与验证。
图1 系统外部接口Fig.1 External interface of system
图2 数传数据处理流程Fig.2 Process flow of data transmission data
3 系统设计
3.1 总体结构
本设计借鉴了Hadoop MapReduce框架设计思路。Hadoop MapReduce框架包括一个JobTracker和一定数量的TaskTracker。JobTracker负责接收处理作业,并与TaskTracker通信。在可能的情况下,JobTracker给TaskTracker分配Map或Reduce任务,由Map和Reduce任务具体完成海量数据的并行处理[6]。
在此框架下,多星多任务数传实时处理系统总体结构如图3所示,包括调度中心和处理程序集两部分。其中调度中心包括部署在调度计算机的调度决策(对应JobTracker),以及部署在每一个处理计算机的调度执行(对应TaskTracker),主要完成实时及事后作业的搜集、管理以及处理程序的调度等功能;处理程序集(对应Map和Reduce任务)包括格式处理、物理量反演、工程参数分发与入库、科学数据处理与分发等。每颗卫星、每个接收站一套数据处理程序,每台处理计算机均统一部署处理程序集全集;在任务执行时,由调度决策以资源负载均衡为目标决策各处理程序运行的计算机;各处理程序之间以及调度决策与调度执行之间采用以太网总线的方式进行交互,调度执行与各处理程序之间的控制流通过Linux的Fork、Exec或Kill系统调用方式实现。
图3 总体结构设计Fig.3 Structure design of system
3.2 调度中心设计
调度中心是系统支持多星多任务的核心。如图4所示,调度中心由调度决策与调度执行两部分组成。其中调度决策负责配置信息管理、处理作业搜集、处理资源分配、处理程序调度,调度执行负责处理资源信息上报、处理程序的启动和终止。
(1)配置信息管理:包括对各卫星、接收站的处理程序集信息,以及处理计算机信息的管理。其中,处理程序集信息包括所属卫星、接收站、类型(实时或事后)、程序标识、名称、可执行程序路径、CPU及内存占用预估值、网络吞吐率及处理速率预估值等,处理计算机信息包括标识、内存及网络配置、IP地址等。
(2)处理作业搜集:读取卫星数据接收计划、接收事后数传数据文件到达通知,生成实时、事后处理作业,并放入待执行的作业队列。其中数据接收计划包含卫星、接收站、开始接收时刻、结束接收时刻、计划状态(预执行、被取消、已执行),事后数据到达通知包括卫星标识、事后文件路径等。
(3)处理资源分配:设定作业调度时钟,定时扫描待执行作业队列,实时作业在数据接收计划的开始接收时刻前执行、事后作业在接收到文件到达通知后立即执行,执行前根据调度策略确定作业相关各处理程序运行的计算机。
(4)处理程序调度:调度决策向调度执行发送软件启动消息,调度执行根据消息启动处理程序后,反馈启动结果;在接收到数传格式处理程序(位于数据链顶端)的处理结束消息后,发送处理程序终止消息,并删除队列中的数据处理作业。
(5)资源信息上报:调度执行定时向调度决策上报各处理计算机CPU、内存等硬件资源占用信息,供调度决策进行处理资源分配。
图4 调度中心设计Fig.4 Design of schedule model
图4中描述了正常状态下的作业搜集、资源分配、处理程序调度的流程。对可能产生的异常设计如下。
(1)处理程序启动异常:启动某处理程序失败时,强制终止该程序所在处理作业的其他已成功启动的处理程序,并将整个作业的状态恢复至等待。
(2)消息接收异常:启动、终止或反馈消息未能正常接收时,处理作业无法完成正常调度流程。设计调度决策在超时后强制终止该作业,超时时间定义为T。实时任务超时时间T=结束接收时刻+预留时间,事后任务T=处理开始时刻+文件大小/处理速率预估值+预留时间。
(3)处理程序启动、终止顺序造成处理不能覆盖全部输入数据异常:程序启动和终止采用串行方式,启动时从数据链的末端程序到顶端程序,终止时从顶端程序到末端程序。
调度中心解决的关键问题是决策“在什么时刻、在哪一台处理计算机上、运行什么处理程序”、“如何优先调度实时处理作业” 、“如何确保处理资源负载均衡”等,调度策略是解决这些问题的核心。
3.3 调度策略
实时处理的目的是在卫星过境的有限时段内,即时生产出载荷数据,为载荷用户实时判读星载设备状态提供依据,其处理时效要求高;而事后处理的目的是结果数据的归档、管理与应用,由于事后文件在地面站已成功落地,其处理紧迫程度不高,一般只需要下次过境之前处理完成即可;另外,为了避免某些处理设备长期处于高负荷状态,而某些设备总处于低负荷工作状态,处理调度需要考虑资源负荷均衡。因此设计调度策略原则:①实时任务优先、事后作业排队;②处理计算机资源负载均衡。根据原则①,设计单次作业调度流程如图5。根据原则②,设计处理程序决策运行计算机算法如图6。策略设计内容如下。
(1)实时作业优先:作业调度时,只有在待执行队列中不包含需要调度的实时作业时,才调度事后作业。处理资源分配时,若实时作业资源分配失败,且此时恰有同一卫星事后作业在执行,则强制终止正在执行的事后作业;处理资源分配后,任意处理计算机占用内存、CPU、网络吞吐等资源,不能超过计算机总资源的百分比系数(定义为K),事后作业K值小于实时作业K值。
(2)事后作业排队:搜集到新的事后处理作业,且此时恰有同一卫星的其他事后作业在执行,则新的事后作业等待,直到正在执行的事后作业终止。
图5 单次作业调度流程Fig.5 Schedule flows of single homework
(3)处理资源负载均衡:处理程序资源分配时,按内存、CPU、网络吞吐率预估值进行排序,优先分配最耗资源的处理程序;单一处理程序决策运行计算机时,将处理计算机按内存、CPU、网络吞吐率空闲值进行排序,优先分配空闲计算机;单处理程序决策运行处理计算机考虑因素的顺序为:内存优先、CPU次之、网络吞吐再次之,三个资源条件全部满足的计算机为首选,前两个资源条件满足的次之,仅内存资源满足的再次之。
图6 单处理程序决策运行计算机算法Fig.6 Algorithm of process computer for single processing model
3.4 处理程序集设计
处理程序集设计以模块划分最为重要。本文系统模块划分的原则:①模块可复用性,通过模块配置信息的更改、模块源代码的少量更改甚至不更改,实现对全新卫星任务的数传数据处理。②模块拆分粒度不宜过细,虽然越细粒度的模块可组装性越强,但其控制和模块间交互的复杂性也越高。③性能低下处理步骤设计为独立模块,通过运行该模块的多个进程、或者模块内部设计为多线程实现数据并行处理。其中,须确保数据的先入先出的处理步骤设计为多线程,通过增加数据分配线程、数据融合线程实现数据的先入先出,而对数据顺序不敏感的处理步骤设计为多进程,由数据链中上一层节点程序进行数据分配。④单一模块设计复杂性控制,单一模块专注于解决不多于一个的性能制约瓶颈,不多于一个的需求易变更项。
上述原则关注的焦点是处理需求易变更项以及性能低下的处理步骤。分析不同卫星数传数据实时处理的需求易变更项包括:①数传帧格式[7];②参数物理量反演方法;③有效载荷科学数据的处理方法。性能低下的处理步骤包括:①参数物理量反演(反演需要对源包数据每一字节、甚至每一位进行处理,单线程处理的数据率仅为11 Mbit/s左右);②反演后参数入库(频繁的数据库插入操作)[8];③科学数据处理(如图像数据拼接和解压缩处理等)。
功能分析是模块划分的基础[9],结合图2数传数据处理流程,将处理程序划分为数传格式处理、参数物理量反演、参数分发与入库以及各载荷科学数据处理与分发等模块。
(1)数传格式处理:完成AOS帧同步、解密、解扰、RS译码、源包同步、分包等处理;以配置文件形式描述数传虚拟信道、应用过程信息,以及虚拟信道与应用过程之间的包含关系,以解决不同卫星数传数据格式不同的易变更项。
(2)参数物理量反演:对“数传格式处理”输出的工程参数源包数据,进行物理量反演处理;以配置文件形式提供每一个参数的物理量反演公式 、反演系数,以解决不同卫星参数处理方法易变更项;设计多线程并行处理,对卫星工程参数进行并行反演(须保证工程参数先入先出)。
(3)参数入库与分发:对“参数物理量反演”输出的反演后工程参数,进行入库以及网络分发;处理过程中不入库只分发,结果数据存储为文本文件,在软件退出时,调用入库脚本对文本文件实现一次性高效入库,解决因数据库频繁插入操作导致的处理性能低下问题。
(4)各载荷科学数据处理与分发:对“数传格式处理”输出的科学数据源包,进行数据拼接、解压缩等处理;设计多个“科学数据处理与分发”程序,同时运行多个进程,每个进程以单一应用过程的科学数据为处理对象,实现不同载荷科学数据的并行处理。
4 应用与验证
多星多任务数传数据实时处理系统已在先导卫星运行控制任务中得到应用。在该任务中,系统基于万兆网链接的1台集中调度、9台处理计算机硬件架构,采用调度计算机上部署调度决策软件、处理计算机上统一部署调度执行软件以及各卫星、接收站、实时及事后处理程序集的方法实施。其中处理程序集包括暗物质粒子探测卫星、实践十号返回式卫星、“量子通信实验卫星”、“硬X射线调制望远镜卫星”等4颗卫星,密云、喀什、三亚等3个地面接收站,实时及事后2种模式的数传格式处理、参数物理量反演、参数分发与入库、各载荷科学数据处理等。
应用结果表明:①系统可同时支持4颗卫星、3个地面站、实时及事后2种工作模式的数传数据处理任务;②在进行AOS帧分路、分包、6000个工程遥测参数物理量反演、19台载荷科学数据解压缩的处理深度下,处理实时数据率优于150 Mbit/s,远高于串行处理时的11 Mbit/s速率;③系统设计、实现、任务执行的结果表明,本文系统与目前两种实现方式相比具有明显的优点(见表1)。
表1 多星多任务数传数据实时处理系统特点Table 1 Features of real-time processing system for data transmission data of multi-satellite and multi-mission
5 结束语
多星多任务支持是卫星地面应用系统的一个重要发展方向,卫星数传、遥测数据的实时处理是地面应用系统的关键功能之一。本文提出的基于任务的集中式调度、分布式并行处理方案,在支持多星多任务数传处理需求的同时,也显著提高了数据处理的效率。后续将开展下列工作,以达到卫星地面应用系统全面支持多星多任务的目的。
(1)固化和发展目前已经取得的技术成果:包括固化调度及处理程序组成的处理框架、调度策略等成果;增加处理进程控制方式以提高系统的灵活性,如增加进程运行中终止、挂起等功能;进一步优化调度策略,将目前采用程序占用资源预估值,发展为采用实际值等。
(2)多星多任务数据协同处理需求及方法研究:多星协同完成一项科学探测或军事侦查任务是卫星应用的趋势,致力于任务目标数据的融合、多维度剖析,开展多星数传、遥测数据的协同处理需求及方法研究。
(3)鼓励卫星地面应用系统的其它功能开展多星多任务支持方法研究,如指令生成、工程及科学数据快视功能等。
References)
[1] 赵文波,柳健,李小文.一种支持多星多任务遥感卫星地面系统综合处理的运行控制技术[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]秦勇,惠蕾放,刘晓旭,等.分布式空间系统星间通信组网技术研究综述[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的卫星遥感数据实时处理平台设计[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]何芳,单庆晓,杨柳,等.基于刀片式服务器的遥感数传基带处理系统设计[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]冯钟葵,张洪群,王万玉,等.遥感卫星数据获取与处理关键技术概述[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高级在轨系统协议及其应用介绍[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]郭忠南,孟凡荣.关系数据库性能优化研究[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
杨甲森,男,副研究员,从事卫星数据处理、有效载荷自动化测试技术研究工作。Email:jsy@nssc.ac.cn。
TP274.2
A
10.3969/j.issn.1673-8748.2016.04.010