APP下载

基于实况-虚拟-构造分布式仿真中间件架构及其可靠性问题

2023-03-27邓雅文朱可卿韩中生樊子德王磊耿莹李肖赫

科学技术与工程 2023年5期
关键词:副本中间件视图

邓雅文,朱可卿,韩中生,樊子德,王磊,耿莹,李肖赫*

(1.中国科学院空天信息创新研究院,北京 100094; 2.北京跟踪与通信技术研究所,北京 100048)

真实-虚拟-构造(live-virtual-constructive,LVC)仿真技术是在虚实结合的训练条件下,开展复杂环境体系试验的有效探索[1]。LVC仿真技术的提出为实现各种训练要素耦合、构建数字化的模拟训练仿真体系带来新的思路。

因LVC在训练领域的独特优势,国内外开展了一系列的研究。美国率先启动并发展了一系列的仿真协议和标准,包括仿真网络(simulation networking,SIMNET)、数字系统(digital information system,DIS)、高层体系结构(high level architecture,HLA)、试验与训练使能体系结构(test and training enabling architecture,TENA)等[2]。前两种仿真协议都只包含构造仿真或者虚拟仿真两种类型,真正能涵盖LVC技术,具有平台级和聚合级建模的是HLA[3]和TENA[4]架构。LVC体系试验存在大量交互复杂的仿真资源对象,难点是需要对模拟器、仿真模型等异构资源进行统一架构下的封装,解决异构资源的互连、互通、互操作问题[5-8]。中间件作为能提供实时服务、适用不同的底层通信机制的关键技术,得到广泛重视[9-13]。目前,中国训练领域也在积极探索基于LVC的中间件架构[14]。西北工业大学提出了针对虚拟试验系统运行方式的分布式中间件;国防科技大学提出了针对联合仿真试验的“中间件+代理”的一体化方案。

受限于分布式的训练环境,仿真中间件面临着资源协调难、管理调度难、跨网跨域难等诸多问题,难以满足虚实联动的训练体系快速响应的试验任务需求。

现通过分析基于LVC的模拟训练分布式仿真中间件架构实现与运用中需要解决的可靠性问题,以高层体系结构HLA为基础开发分布式联合训练仿真中间件,通过内部的仿真引擎适配器打破信息屏障,解决异构系统互联、互通、互操作难的问题,实现仿真资源和实装资源弹性调用及动态集成,驱动所需资源进行规划调度和统一管理。

在此基础上,开展该分布式仿真架构的可靠性问题研究,设计分布式仿真系统一致性共识算法,最终实现LVC仿真异构资源互联、互通、互操作等功能,通过真实的仿真算例验证该仿真中间件架构的可靠性、有效性与一致性。

1 分布式仿真中间件架构研究

分布式联合仿真中间件架构是分布式仿真体系中间件层的实现方式[15-17],通过内部的仿真引擎适配器打破信息屏障,解决异构系统互联、互通、互操作难的问题,从而实现资源要素层仿真资源和实装资源弹性调用及动态集成。

中间件总体架构如图1所示,它是仿真应用系统之间互操作的基础,通过统一服务调用,屏蔽 LVC仿真资源通信协议的差异,提供了基础运行环境,使得上层应用能够透明地使用各类LVC仿真资源,系统主要包括以下模块。

图1 通用仿真中间件设计图Fig.1 Diagram of general simulation middleware

(1)资源虚拟模块。通过在容器云组件内部署仿真引擎软件服务,使其能够使用虚拟化环境、大数据环境及虚拟资源中心管理能力,能够在服务定义包格式、认证授权、服务实例化方面实现完全兼容,在功能、接口等方面保持一致。

(2)应用管控模块。在其中设计了管控接口,使得上层业务系统可以通过仿真中间件,对所需资源进行管控。由于各个仿真引擎软件运行时对外界暴露的接口不统一,可以根据配置文件定制容器在通用中间件中进行消息传输时的接口格式,需要各接入软件满足基本接口标准要求(例如想定编辑相关接口、导调控制相关接口等)。

(3)服务调度模块。支持将仿真软件整体封装到同一容器中,也支持根据需求将仿真软件各模块拆解,按照组件模板定制微服务。同时,为用户提供多租户、资源隔离、高可用的运行环境,为仿真引擎软件的安装部署、运行和弹性伸缩提供合理的资源调配策略,确保服务高可用。

(4)通信链路模块。实现多通信介质、多协议资源接入扩展能力,支持有线网络和无线链路,可运行于多种硬件平台;总线以及平台支持基于广域网的分布式仿真,由专用信息通信网络提供所需的通信资源,其中包括了3种通信总线,分别是时间总线、指令总线、数据总线。实现系统调用、协作、支撑等功能接口的连通,通信形式上支持一对一、一对多、多对多。分布式联合训练仿真中间件架构以通用仿真中间件为通信基础,通过仿真引擎适配器将异构仿真系统或引擎软件接入,具有模块化、标准化以及一体化的特点。可实现资源分配、任务协同,完成集中与分布相结合的监视、控制和管理功能,将各个分布式仿真系统的能力进行整合升级,实现其管理调度与互联互通。该支撑系统对上能够为训练提供分布式仿真能力支持,对下能够驱动所需资源进行规划调度和统一管理。

通用仿真中间件为分布式仿真提供运行过程中所需的通信资源,在HLA RTI基础上实现了3种通信总线(基于消息队列实现),分别是时间总线、指令总线、数据总线。时间总线主要为仿真引擎软件传输统一的时间同步信号;指令总线向各仿真引擎软件提供运行时的控制命令传输,包括导调控制指令(开始、暂停、状态变更等)、资源分配指令(分配容器等)、信息同步指令(状态上报等)等,采用异步传输;数据总线主要是用于传输仿真模型文件、态势数据以及运行状态等。

仿真引擎适配器将分布式仿真引擎接入系统,依托原生云技术为分布式系统提供按需配置、弹性扩展、即取即用的容器云运行环境。弹性运行环境构建在IaaS环境适配之上,采用资源调度引擎,借助融合及超融合架构,提供用于支撑容器运行的弹性计算框架,实现分布式架构、自动化部署运维、高可用保障。各个封闭的仿真引擎软件能无缝对接联合仿真系统,受系统统一管控,形成分布式仿真能力。系统基于适配器模式,支持用户根据需求在预定义的接口标准上对仿真引擎软件进行定制修改、二次开发,尽可能保证灵活性。当某次分布式仿真任务被发起后,系统分析用户给出的完整要求,从中抽取模型实体,筹划需要的仿真资源,制定本次服务执行策略。通过内部最优化算法解算,按需分配资源,实现应用系统负载和基础资源供给额度的关联。

2 分布式仿真系统可靠性问题研究

分布式仿真可靠性保证研究主要为中间件架构提供容灾抗毁与可靠运行能力,包括主从备份、同步机制、回放机制等,保障系统的实时运行、消息处理、模型运行和分布式处理,保证分布式协同仿真的可靠性与一致性,仿真节点状态转换如图2所示。包含仿真主节点、备份节点、跟随节点、过程控制节点4种角色。

图2 仿真节点状态转换Fig.2 Simulation node state transitions

仿真主节点:接受任务请求执行仿真流程,向跟随节点同步日志。

备份节点:用于在超时或者仿真主节点失效时接替仿真任务,并成为下一任仿真主节点。

跟随节点:接收并持久化仿真主节点同步的日志信息。

过程控制节点:将过程状态信息封装到日志序列中,并将它们复制到所有跟随节点。

设定固定时间间隔,当跟随节点超时即启动备份节点,当仿真主节点超时失效,则会启动备份节点来接替成为下一个仿真主节点,执行仿真任务,保证仿真流程的连贯性和可靠性。

为了保证仿真引擎协同工作的可靠性,在最终一致性原则指导下设计了几类机制,一是主从备份,由于涉及的机器节点较多,用于执行仿真流程的仿真主节点在运行过程中有较高的概率出现失败的情况,通过自适应心跳检测、近邻响应等技术,对节点失效情况进行快速感知,并启动对应备份节点接替仿真流程;二是同步机制,过程一致性是开展分布式仿真任务的基础和前提,但是在不一致的模型效率与差异化的时钟分辨率等原因的影响下,很难保证各子系统的逻辑时钟同步及仿真数据传递的时序一致性。因此,在系统中设计仿真共识算法,实现对仿真状态的一致认可。即使是在部分节点故障、网络延时、网络分割的情况下,基于状态机原理,由过程控制节点将过程状态信息封装到日志序列中,并将它们复制到所有跟随节点,大家按相同顺序复原状态序列,实现过程一致性;三是回放机制,利用持久化机制把用户操作日志附在文件序列中,如果出现数据丢失,按照操作顺序再进行操作即可恢复数据,为了防止存储冗余,利用持久化重写技术,对于重复序列的命令只保存最后有意义的记录。此外各系统会对当前应用上报的状态信息进行统一快照存储。一方面是满足回放需求,另一方面是便于某些节点在宕机后,整个系统可以从过去的某个节点重新恢复。

3 分布式仿真系统一致性共识算法

根据LVC分布式仿真系统虚实结合的特点,创新性提出虚拟引擎实用拜占庭(virtual engine practical Byzantine,VEPB)算法,结合实用拜占庭容错(practical Byzantine fault tolerance,PBFT)算法[18]的优点,加上消息签名验证,验证分布式可靠性的同步机制,能够同时解决仿真状态一致性、真实性和完整性问题。

3.1 向量时钟

在各个分系统节点上标记一个N维的向量,通过标记和对比时间戳的方式,表示节点依赖关系和操作顺序,为分布式仿真系统中各数据节点产生偏序值。

(1)向量时钟定义。一个拥有N个节点的分布式仿真系统,设x[k]为节点x获取的节点k的时间值,则节点x的向量时钟为

x=(x[1],x[2],…,x[n]),

k∈(0,1,2,…,n-1)

(1)

(2)向量时钟更新。当两个仿真节点进行消息通信传输时,会核对两方的向量时钟,进行向量比较和更新,则有

y[k]=max{x[k],y[k]},

k∈(0,1,2,…,n-1)

(2)

(3)节点依赖关系。设仿真节点x、y的向量时钟分别为x和y,如果对∀k∈(0,1,2,…,n-1),都有x[k]≤y[k],代表节点y的状态比节点x的状态新,称x和y满足因果关系x→y。

3.2 VEPB算法

VEPB算法实现对系统仿真状态的一致性认可。设置多副本状态机,状态机副本数量为

C=2L+1

(3)

式(3)中:L为拜占庭容错的最大数量。

把时间分为连续视图,在每个视图中,包括唯一可用的主副本和其他副本。每个视图主副本公式为

P=(VCmod |R|)

(4)

式(4)中:V为视图编号;P为副本编号;|R|为总的副本数量。VEPB算法由如下部分组成。

(1)时钟同步。副本并发地提交操作命令,将操作命令同步复制到所有节点,使用向量时钟的方式跟踪记录副本之间的依赖关系x→y。

(2)排序执行。根据操作命令之间的依赖关系排列执行顺序,保证顺序一致性。

(3)容错更新。当接收客户端请求的主副本P出现错误,系统会执行视图变更(view-change),以选出新的主副本。P会广播经过签名后的视图变更消息给所有副本,消息格式为。副本收到至少C条匹配的视图变更消息时,同时发送视图变更响应消息。新选举产生的视图V1的主副本P1收到至少C条视图变更响应消息后,广播消息给所有副本,正式进入新视图,保证新视图消息的真实性和完整性。

4 实验分析

为了验证提出的基于LVC的分布式仿真中间件架构,使用某多地联合仿真训练系统进行实验,该系统将地理分散的模拟训练系统合成为逻辑上的整体,构成完整的虚实结合训练体系,在逼真的视景和操作模拟环境中,进行较高人机交互度的仿真实验和训练。各训练子系统在统一的时空基准与任务背景下参与训练过程,完成不同科目。系统由基于离散事件推演框架[19]和通信中间件[20]开发的分布式仿真引擎实现。

设计了3组性能实验来验证所提出的框架与技术:第一组验证了分布式仿真的一致性保证能力,第二组验证了分布式仿真系统在不同推演倍速下运行时的资源调度成本,第三组验证了仿真中间件在接入不同规模系统运行时的信息传输性能,所有实验重复了五次并取平均值。

4.1 分布式一致性保证能力验证

验证了提出的分布式仿真一致性方法,在所述分布式仿真训练系统中整合不同规模的实装系统、构造仿真系统、数字仿真系统,借由仿真代理适配器,实现在同一训练时空下的互联互通操作,通过比较过程日志信息,计算各仿真系统推演时钟之差的平均值,验证能否有效解决不同种类系统间存在的物理时间不同步、信息传输延迟等问题。在图3中可以看到在不同数量规模的系统中,时钟差异保持在较小的范围,分析整体趋势发现,系统规模越大,系统的一致性效果越差。同时,实装系统由于硬件系统误差较大、通信链路不稳定等问题,会产生更高的时间偏差。

图3 分布式LVC仿真系统推演时钟差值Fig.3 Clock deduction difference in distributed LVC simulation system

4.2 资源调度时间占比验证

第二组实验计算了分布式仿真中间件的资源编排与调度所需时间与实际系统执行时间的比例,从而验证使用相关云环境带来的额外时间成本。实验进行了5次,每次实验在不同规模的分布式仿真系统中运行相同训练仿真科目。图4显示了仿真系统执行过程中额外调度时间占比。总的来说,系统调度所需时间占比不高,当参与的训练子系统数量增长时,资源调度占比明显更大且波动更明显,而训练子系统数量较少时占比变化相对稳定,这是因为系统需要更多时间来进行过程同步与资源调度。值得一提的是,虽然所使用的虚拟资源不是专用的,但所有实验组的标准偏差都很小,这表明一旦创建了容器云实例,仿真系统将在云上稳定运行。

图4 分布式仿真中间件中系统额外调度时间占比Fig.4 Proportion of system additional scheduling time in distributed simulation middleware

4.3 中间件信息传输时延验证

第三组实验验证了分布式仿真中间件的信息传输性能。在某训练任务执行过程中,计算不同规模系统的同步控制消息体从控制节点传输到仿真系统的平均时延,比较单机与分布式运行模式的信息传输能力。从图5中可以看到,单机运行模式由于可以直接通过共享内存机制等进行信息传输,在系统规模较小时可以得到较好的结果,但是随着系统数量上升,传输时延呈指数上升。而分布式运行模式虽然存在一定跨机器的传输时延,但是对于大规模的运行方式有较好的适用性,传输时延呈较小斜率线性增长。

图5 分布式仿真中间件信息传输时延Fig.5 Information transmission delay in distributed simulation middleware

5 结论

基于LVC的分布式仿真中间件架构,面向异构资源整合,设计包括资源虚拟、应用管控、服务调度、通信链路等工作模块。在此基础上,进一步研究了该分布式仿真架构的可靠性及一致性共识算法,通过算例在实际仿真环境实验验证,得到以下结论。

(1)实验证明了该分布式仿真中间件架构能够满足不同规模的训练系统对资源和环境的需求,证明了该架构的可靠性以及VEPB共识算法的一致性。

(2)所提供的研究方法能够有效提高跨域联合训练、虚实联动、资源共享、资源灵活重组等能力,实现训练资源和训练系统的互联、互通、互操作,对未来训练仿真系统建设与发展具有积极影响。

猜你喜欢

副本中间件视图
面向流媒体基于蚁群的副本选择算法①
RFID中间件技术及其应用研究
基于VanConnect中间件的设计与开发
5.3 视图与投影
视图
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
副本放置中的更新策略及算法*
分布式系统数据复制的研究
中间件在高速公路领域的应用