面向舰艇作战的计算资源共享与管理技术研究∗
2018-01-04杨志祥
李 明 杨志祥
1 引言
现代信息化战争中,海战场逐渐呈现出战场空间大、作战节奏快、信息密度大、资源消耗高等特点。随着作战模式由以平台为中心向以网络为中心的转变,体系内作战节点不断增加、平台作战范围不断扩大,互联互通的信息量及其处理需求也随之大幅度增加。为了辅助作战指挥人员,使其在瞬息万变的战争局势下,高效利用各类情报和数据,提高指挥决策能力,要求舰载作战系统在情报分析、辅助决策、目标解算、数据分析和挖掘等方面具备高性能、高可靠的计算能力[1]。在传统模式下,舰载作战系统各设备专机专用,分别独立完成各自计算任务,台位功能相对固定。受舰艇内空间和经费等限制,存在局部计算资源分散、计算能力有限、资源利用率不高等问题,难以满足现代化作战高性能计算的要求。
高性能计算(HPC)最初依赖于高性能的计算机,但是高性能计算机的成本较高、研发周期长,而且难以扩展。集群技术的出现给高性能计算带来了一场革命[2],它通过各种互联技术将多个计算设备连接在一起,利用所有被连接系统的综合计算能力来处理大型计算问题,可以提供单个计算机不能提供的强大计算能力,具有高可扩展性、高可用性、高性能和高性价比等特点。
针对舰艇作战系统计算资源分散、利用率低等特点,可以考虑将分布在舰艇上的各台位的任务机与数据库机柜等资源进行整合,构建高性能计算集群。通过集群计算,实现面向舰艇作战业务的计算资源按需分配、调度和动态配置,在不改变战位设置、设备重量的情况下,提高计算资源的使用效率。
2 面向舰艇作战业务的计算资源共享与管理方案
2.1 舰艇平台作战典型业务分析
舰艇作战系统在辅助指挥员实施作战任务的过程中,工作的基本流程包括:战场态势,信息获取,情报分析,辅助决策,决策执行,打击效果评估等[3]。其中,情报处理与分析是夺取并保持信息优势,获取稳定、完整的战场综合态势的关键。通常舰艇平台作战业务对情报处理存在处理容量、实时性、可靠性等性能需求,也是作战系统中最为关键、计算负载瓶颈所在。
舰艇典型作战业务可分为对空、对海、对水下三类。其中,对空作战包括区域防空、协同防空、对空自防御;对海作战包括超视距对海作战、视距内对海/对陆作战;对水下作战包括协同搜潜、反潜作战、水下自防御等。
由于空中目标如战斗机和导弹等速度快、机动性强、威胁度大,要求作战系统对空中情报的处理必须及时完成,因此,对空作战属于强实时性处理任务;相对而言,海面和水下目标如水面舰艇、潜艇等速度、机动性较弱,声纳等水声探测设备的探测周期较大,因此,对海作战一般呈现出实时性,对水下作战目标呈现出弱实时性。
通常情报信息处理中多源信息融合是舰载情报处理的核心关键所在,其具备实时性要求高、处理周期不间断、问题规模呈现动态性、内部各级处理呈现一定的顺序性和较强的耦合性等特点。下图给出其处理流程:
2.2 计算资源共享与管理方案
针对舰载情报处理的动态性特点以及实时性需求,结合舰艇作战系统计算能力有限、利用率不高等现状,提出面向舰艇作战业务的计算资源管理框架。如图2所示。
考虑到作战系统的应用需求,我们设计面向作战业务的计算资源管理总体方案时,采用MPI并行消息传递模型为基础,综合利用分散在舰上有限的计算和存储资源(情报处理服务器和数据库机柜等),构建一个可扩展的集群计算系统,来实现应用的分布式处理操作。集群计算系统的架构如图3所示。
系统分层主要从功能划分的角度考虑,下面分别加以解释:
硬件层:硬件平台;
OS层:硬件采用的操作系统,如VxWorks、Solaris等
OS适配层:该适配层将异构OS映射到一个统一的接口;
通信中间件:主要功能通过MPI实现;
消息服务:充当“数据总线”,采用订阅发布模式,基于数据内容实现数据发送和接收的通信;
集群资源管理服务:负责低层集群内部的资源管理,其主要功能包括节点管理、节点检查、任务调度、集群控制点监测、作业调度和驱动等;
作战应用层:各种作战业务应用。
3 集群计算关键技术及实现
面向舰艇作战业务的集群系统,与通用的集群系统架构类似,主要由集群资源管理、业务计算、消息中间件、状态监控、容错处理等功能组件构成,其架构如图4所示。通过状态监控与容错处理实现对集群节点任务状态的有效监管,并达到计算资源合理分配及任务异常中断的检查与恢复,为情报台位故障恢复和重组提供保证。
目前,通常舰载情报信息处理,在准实时桌面操作系统环境下完成。为了满足对多源异类情报信息处理实时性的要求,某些舰载作战系统情报处理要求在嵌入式实时操作系统环境下完成。也因此,需要开展基于嵌入式实时操作系统环境的集群管理技术研究。
然而,无论在商用还是军用领域,构建在嵌入式实时操作系统环境下的集群计算都比较少见,可用来参考借鉴的技术资料相对较少。因此,本文将对基于嵌入式实时操作系统的并行消息传递、任务实时调度、集群状态监控、并行容错处理等关键技术进行探讨。
3.1 并行消息传递
计算集群的性能通常取决于下面几个因素:节点本身、节点之间互联设备、底层通信软件(包括互联设备的驱动)、全局资源管理系统以及并行计算环境等[4]。其中,消息传递系统对于计算机集群系统的计算性能是至关重要的。因此,构建高性能计算集群,首要的问题就是如何在嵌入式实时操作系统环境下实现实时高效的消息传递。
MPI是一种广泛使用的消息传递并行通信编程模型,具有灵活高效、扩展性好、可移植性强等特点,几乎所有的并行计算环境和主流操作系统(Unix、Linux和Windows NT)都支持[5]。因此,考虑将MPI并行消息传递移植到嵌入式实时操作系统环境中,构建一个嵌入式实时操作系统环境下支持单机/多机通用标准、实时高效、高可靠的消息通信传递平台。
文献[6]以Linux系统中的开源MPI实现mpich2为基础,将MPI消息传递并行编程平台引入到Vx-Works系统中,为嵌入式实时操作系统提出了一种并行编程解决方案。在此基础上,可以进一步开展基于国产嵌入式实时系统的并行消息传递平台的研究。
3.2 任务实时调度
给定一组实时任务和系统资源,确定每个任务何时何地执行的整个过程就是任务调度。任务调度是支持系统动态负载平衡,合理有效地利用资源,支持系统动态重构,提高系统整体性能和系统可用性的关键技术[12]。利用它可以实现:
1)在计算过程中,把任务从负载较重的节点迁移到负载较轻的节点上,实现动态负载平衡;
2)充分利用系统中的空闲机器,以及在要求独占其资源时及时提供;
3)在长时间计算的过程中,可以使某节点退出计算以进行系统维护,提高系统的可用性。
任务实时调度的算法有很多种,大致可以分为如下三类[7]:基于优先级的调度算法(PD),基于CPU使用比例的共享式的调度算法(SD),以及基于时间的进程调度算法(TD)。在设计调度算法时,需要考虑多方面因素,通常包括系统设计目标、资源利用率、用户要求、任务的特征(达到时间、计算时间、截止期限、任务达到频率)等。
具体到面向舰艇作战业务的集群任务实时调度中,我们需要研究的是如何将作战过程中的多个实时性任务合理分配到不同的处理器上。结合上面分析的对空、对海、对水下三种类型的作战业务具体的特点,我们采用基于动态优先级的调度算法EDF[8],通过任务动态生成以及对处理对象的动态调整,实现对集群中计算存储资源的自适应分配,动态地改变系统的负载分布。
3.3 集群状态监控
集群状态监控技术主要是为高性能集群系统提供性能监测环境,提供可视化的集群配置管理、资源管理、用户管理、安全管理、作业调度管理、控制管理等功能。
心跳机制是高可用集群的重要技术之一[9]。通知由应用程序初始化的“我在工作”消息构成,或在这种请求-响应系统中,监视器通过“你在工作吗”的消息请求应用程序确定处于活动状态并且等待确认,即主动或被动的方式。当监视器端超过特定的时间收不到响应消息,它就假设应用程序挂起或崩溃,然后杀掉或重启它。
图5为采用心跳机制实现集群状态监控的示意图。采用“心跳汇报机制”周期性地检测集群中节点机器的工作状态,当节点机器的工作状态变化时,能够通知集群中的其它部件。集群节点之间心跳检测的组织可以是主从心跳、环形心跳或广播心跳,由系统结构、检测效率以及检测开销权衡决定。心跳信息的传输一般需要采用专用网络来保证效率。
为了降低系统开销,在面向舰艇作战业务的集群状态监控中,可以采用多定时器的技术,由应用程序周期性地向管理节点发送MPI消息以表示它在工作,同时汇报本地节点负载信息,包括CPU负载、网络负载、内存/磁盘使用率等,以实现对集群间节点的有效监控。
3.4 并行容错处理
容错技术的实质是通过资源的冗余配置使系统在内部发生故障时,仍然能够正确执行预定任务,从而提高系统的可靠性[10]。实现容错处理的方法有很多,可分为硬件容错和软件容错:硬件容错实时性好,纠错速度快,但是可扩展性不好,需要额外的软件支持;软件容错灵活度高,可以避免由于辅助逻辑的不容错而造成的可靠性下降。
目前高可用集群计算,基于消息传递的系统中,解决其可靠性问题基本上采用基于检查点的回卷恢复技术(Checkpoint/Restart)[11]。在系统正常运行的适当时刻设置检查点,保存未出错时的状态,当故障发生后,读取前面保存的作业状态,将作业回卷(rollback)执行。检查点的设置可分不同级别进行设置,如低的级别是把内存保存在本地也就是执行节点(它的代价小),高的级别是把所有进程的内存都保存在一个公共文件系统(它的代价大),不同级别检查点时隙(Check Point Interval)是可以根据实际需求设置的。
根据舰艇作战业务对可靠性的实际需求,本设计中的多机并行容错主要针对集群网络、硬件节点故障、任务故障等几类问题,可以选择上述基于检查点的容错处理技术。在作战任务执行过程中,记录MPI任务正常运行时的一致性状态,并保存到计算机内存中。当系统发生故障后,可根据保存的状态信息将MPI任务回卷到故障前的一致状态继续执行,从而避免整个任务的重新执行。
4 结语
面向舰艇作战业务的计算资源管理通过综合利用分散在舰上有限的计算和存储资源,以并行消息传递模型为基础,构建了一体化的计算资源环境。采用嵌入式实时操作系统环境下并行消息传递、集群任务管理等技术,实现了舰载作战系统内计算资源的按需分配和调度、负载均衡、任务迁移和服务共享,可以在不改变战位设置,设备重量等情况下,有效提高计算资源的使用效率和系统的可靠性。
[1]刘伯峰,刘帆,朱伟锋.基于云计算的作战系统集成结构[J]. 中国舰船研究,2013,8(4):92-95.
[2]李永峰,周敏奇,胡华梁.集群资源统一管理和调度技术综述[J]. 华东师范大学学报,2014,9(5):17-30.
[3]董晓明,秦克,石朝明.舰载指挥自动化系统和战术应用软件的发展[J]. 中国舰船研究,2009,4(2):7-10.
[4]王莹,屈一新.PC集群的建立与MPI并行环境的实现及其应用[J].北京化工大学学报,2001,28(4):4-6.
[5]陈月燕.基于MPI和MapReduce的分布并行计算研究[D].南京:南京师范大学,2010:5-9.
[6]郭德源,何虎,杨旭.面向嵌入式实时操作系统的MPI实现[J].微电子与计算机,2011,28(3):35-38.
[7]同爱丽.实时多任务调度方法研究与应用[D].西安:西北工业大学,2006:9-10
[8]Liu C L,Layland J.Scheduling algorithms for multiprogramming in real-time systems[J].Journal of the ACM,1997,20(1):46-61.
[9]杨明华,陶灵姣,杨斌.高可信容错计算机系统设计与应用研究[J].计算机工程,2012,38(15):237-240.
[10]宁新建.火控系统中的容错技术分析[J].情报指挥控制系统与仿真技术,2002,32(8):34-36.
[11]崔丽,徐炜民.MPI容错机制的研究[J].计算机工程,2004,30(16):87-90.
[12]杨际祥,谭国真,王荣生.并行与分布式计算动态负载均衡策略综述[J]. 电子学报,2010,38(5):1122-1130.