摘 要:针对嵌入式领域多功能、多任务,以及复杂多变环境下系统的可重构性、面向较长装备生命周期的可扩展性与可维护性等应用需求,为实现嵌入式系统下计算、存储、网络等资源的统一管理,设计了一种面向嵌入式系统的高可靠资源管理平台。平台采用XML可扩展标记语言、Redis数据库、选举策略设计与故障恢复机制等关键技术,重点实现了资源管理平台与平台内应用软件的高可靠设计,并结合嵌入式应用软件实例充分验证了资源管理平台的功能、指标性能与高可靠特性。
关键词:嵌入式系统;资源管理平台;高可靠设计
中图分类号:TP311 文献标识码:A 文章编号:2096-4706(2024)17-0115-05
0 引 言
嵌入式系统是以应用为中心,以现代计算机技术为基础,能够根据用户需求(功能、可靠性、成本、体积、功耗、环境等)灵活裁剪软硬件模块的专用计算机系统。嵌入式系统的应用十分广泛,涉及工业生产、日常生活、工业控制、航空航天等多个领域[1-2]。
随着电子技术、计算机软件技术、人工智能、大数据以及云计算等信息技术飞速发展,嵌入式系统领域逐渐向着需求可定制、硬件可重组、软件可重构等特征发展,相关的嵌入式应用面临着巨大的挑战,针对嵌入式系统的计算、存储、网络等资源的管理平台设计需求也愈来愈多,如何高效实现嵌入式资源的统一管理成为领域内的热门研究方向。
较早期时,大部分小规模的嵌入式资源管理平台是一种基于中心节点的中心式管理架构,虽然这种中心式架构具有资源占用率低、更加轻量、实时性较高等优势,但过分依赖中心节点,压力集中,使得此类架构在可靠性、灵活性等方面有所欠缺,因此适用性较低。目前在商用领域资源管理的主流方式大都为使用商用服务器搭建的一种分布式资源管理系统,具有可靠性高、灵活性高、支持更大集群系统等优势,但这类系统一般为批处理系统,资源占用率较高,需要占用更多的资源来满足系统运行需求,通常难以满足嵌入式系统高带宽、低时延等实时性要求。
现阶段,在常见的通用计算平台上已经有很多资源管理软件和框架,像Map Reduce、Hadoop、Spark、Storm等[3-5]。文献[6]设计了一种面向DRE系统的自适应资源管理架构,实现动态任务管理、实时资源分配和自适应控制;文献[7]提出一个面向嵌入式实时系统的自适应图形处理器(GPU)资源管理框架。
基于上述研究,本文设计了一种面向嵌入式系统的高可靠资源管理平台,解决传统嵌入式应用与硬件绑定,资源无法重用的问题,实现计算、存储、网络等资源的统一管理与调度,支持平台资源池化管理、统一调度与按需分配,支持资源的分时复用,提升软件资源利用率。
1 系统架构分析
目前主流的系统架构主要有中心式与分布式两种。
1.1 中心式架构
中心式架构是一种常见的架构设计模式,如图1所示,是以一个中央控制节点为中心,其他普通节点围绕该中心进行组织和交互。中央控制节点和每一个普通节点进行通信,而普通节点之间不需要通信,因此中心式架构所产生的额外通信开销为N×T(其中N代表普通节点个数,T代表单次通信耗时)。
中心式的管理方式具有可集中控制与管理、简洁和易于理解与维护、系统具备强一致性和规范性等优点。但是也存在一系列的潜在缺点,一是单点故障风险,即中央控制器的故障会导致整个系统的瘫痪;二是性能瓶颈问题,即整个系统的性能优劣过分依赖于中央控制器的负载情况;三是灵活性和受限,即整个系统的扩展、调整、重组等都比较困难。
1.2 分布式架构
分布式架构是一种无中央控制节点的架构设计模式,如图2所示,每一个节点之间是对等的关系,他们之间互相进行数据的组织和交互。由于每一个节点之间均需要进行通信,因此分布式架构所产生的额外通信开销为N×(N-1)×T(其中N代表普通节点个数,T代表单次通信耗时)。
、
通过分布式架构搭建的资源管理系统,一般适用于大流量网站(处理高并发访问)、云服务平台(提供灵活的资源分配)、大数据处理(处理海量数据)、人工智能系统(支持大规模模型训练)等,具有可扩展性、高可靠性、安全性强等优点。
可扩展性,能够方便地增加或减少系统节点数量,以满足系统能力需求的动态变化。
可靠性高,部分节点发生故障时,系统仍然能够正常运行。
安全性强,系统数据信息分布在各个节点上,进一步降低了数据丢失的风险。
同时由于分布式架构的复杂程度,使其也面临着一系列的挑战,一是在复杂的协调与同步下,需时刻确保各节点的协同工作,在分布式环境下保证各节点的数据一致性;二是潜在的网络延迟或故障,大量的数据交互压力可能会影响系统的整体性能与可靠性,反而降低整体的资源利用率;三是庞大的节点数量,跨区域的部署与管理等[8],需要有效的管理和监控众多节点。
2 资源管理平台设计
结合中心式与分布式架构的优缺点,针对嵌入式应用软件的高带宽、低时延、强实时性等要求,本文设计了一种面向嵌入式系统的高可靠资源管理平台,其软件框架示意图如图3所示。
资源管理平台位于嵌入式应用软件与操作系统之间,由节点管理器NM(Node Manager)、资源管理器RM(Resource Manager)、从属资源管理器RM_S(Resource Manager Slave)三部分组成。由于RM与NM、RM与RM_S之间需要进行通信交互,因此当前架构下的额外通信开销是(N+M)×T(其中N代表NM节点个数,M代表RM_S节点个数,T代表单次通信耗时)。
2.1 节点管理器NM
节点管理器NM主要由资源采集与信息上报组成。资源采集模块通过调用操作系统相关接口实时获取硬件节点的计算、存储、网络等信息,并按照键值对(key-value)的形式统一存储,形成节点资源池,采集节拍可配置,支持对节点资源池的增、删、改、查操作;信息上报模块负责将实时查询节点资源池中的资源信息,并通过TCP形式统一打包发送给RM。
2.2 资源管理器RM
资源管理器RM主要由信息接收与资源分配组成。信息接收模块负责接收所有NM上报的资源信息,形成系统资源池,由RM统一管控,支持对系统资源池的增、删、改、查操作;资源分配模块负责实时响应嵌入式应用的资源请求(核、内存、带宽等),依据资源类型、资源需求量、资源剩余量、资源负载、应用关联性五个因素从资源池中分配当前应用所需资源,支持对系统资源池的改、查操作,可分时工作的嵌入式应用,分配过程中资源可复用。为实现RM的高可靠设计,RM需通过UDP组播的形式按可配置的节拍定期发送心跳信息给各个RM_S。
2.3 从属资源管理器RM_S
从属资源管理器RM_S,NM的一种,同时还负责实时接收RM的心跳信息,在RM正常工作时,RM_S处于未激活状态,只执行NM的功能,当RM的心跳信息连续丢失三次时,认定RM异常,此时多个RM_S之间通过选举打分的方式,选择最优的RM_S主动激活成为新的RM,当原先故障的RM又恢复正常并成功上线后,该RM只会发挥RM_S的功能。
3 关键技术分析
本文所设计的资源管理平台,所采用的关键技术包括XML(Extensible Markup Language)可扩展标记语言、Redis数据库、选举策略设计、故障恢复机制等。
3.1 XML可扩展标记语言
XML是一种用于存储和交换数据的标记语言,常被选用为应用程序的配置文件,以树状结构组织数据,具有良好的可读性与规范性[9]。
资源管理平台采用XML配置文件的方式设计系统配置文件,描述了各个节点的角色信息(NM、RM、RM_S)以及计算、存储、网络等资源信息。同时要求应用软件通过应用XML配置文件来描述实际的资源需求。
通常角色信息配置中RM_S的占比情况与系统的节点规模有关,为充分保障资源管理平台的高可靠运行,当系统节点规模在10个以内时,要求RM_S个数至少为2个,系统节点规模每增加10个,至少需要增加一个RM_S。
3.2 Redis数据库
Redis是一个开源的、高性能的键值对数据库,支持多种数据类型,读写速度快,设有哨兵机制,可以将数据存储到磁盘,以防止数据丢失等优点[10]。
NM采集的资源信息、嵌入式应用的资源请求、系统的状态信息等,通过键值对的方式存储在Redis数据库中,RM_S通过Redis数据库实现与RM的实时同步,利用Redis的哨兵机制,每当键值对信息发送改变时,RM_S自动同步更新该信息,同时每隔一定周期,RM_S主动同步所有的键值对信息,保证RM与RM_S之间的信息强一致性,使得RM_S在RM发生故障时,能够无缝接手RM功能,保障整个系统的高可靠运行。
3.3 选举策略设计
当RM发生故障时,系统中多个RM_S之间通过选举的方式,选出一个最优的RM_S来充当RM的功能。采用打分制的选举策略,对RM_S节点的物理链路远近(有无跨硬件、跨插箱、跨机柜等)、资源总量、余量、负载、网络、存储带宽等进行综合打分,并设置权重占比,打分项与权重占比情况可通过系统XML配置文件进行具体配置,计算并选择分数最高的RM_S节点激活成为新的RM。
当RM_S发生故障时,RM会采用相同的打分策略从所有的NM中选择分数最高的激活成为新的RM_S。
3.4 故障恢复机制
嵌入式应用软件通过RM的资源分配模块部署在综合分数最优的NM上。应用软件运行起来后,NM实时监测该应用软件的运行状态,并实现两种场景下的故障重构设计。
场景一,应用故障。当NM内应用发生故障时,NM会在当前节点重构该应用,若多次尝试后,依然无法恢复,NM会反馈给RM,再重新部署运行到其他NM上;
场景二,NM故障。当NM自身发生故障时,RM会依据该NM上的资源占用情况,将NM内所有应用重新部署运行到其他NM上;
场景三,RM故障。当RM发生故障后,多个RM_S之间会迅速决策出综合评分最高的RM_S,激活RM相关任务,迅速接手RM功能;
场景四,RM_S故障。当RM_S发生故障后,RM会从多个NM之间选出综合评分最高的NM,激活RM_S相关任务,迅速接手RM_S功能。
4 使用流程
以某嵌入式应用软件为例,资源管理平台的使用步骤如图4所示。
第一步,资源管理平台依据系统XML配置文件启动RM、NM、RM_S等节点的相关任务,该配置文件中主要描述了各节点的角色信息、系统资源信息、资源采集节拍、打分权重等。
第二步,嵌入式应用软件准备好可执行程序与应用XML配置文件,该文件主要描述了当前应用的资源需求、平台与操作系统要求、应用交互拓扑结构、运行时长等。
第三步,应用软件向资源管理平台RM发送部署运行请求,由RM依据资源请求和系统资源余量为嵌入式应用分配合适的NM或RM_S部署运行。
第四步,应用部署运行起来后,资源管理平台负责实时监测各节点与各应用的状态。
5 测试验证
基于上述四步具体使用流程,本文搭建了1个RM、3个RM_S、10个NM规模的资源管理平台,并设计了Dpc.out/Mti.out/Detect.out三个应用实例。其中RM的运行过程如图5所示,IP地址为192.9.200.210,主要负责接收应用部署任务、发送心跳信息给RM_S并实时监听各RM_S与NM的心跳信息。
RM接收到应用部署任务后,将其分别部署在其中两个NM(IP地址为192.9.200.211与192.9.200.212)上,其中一个NM部署了Dpc与Mti两个应用,一个NM部署了Detect一个应用,NM的运行过程如图6所示,除了负责启动并监听所部署的应用外,还需周期性地发送心跳信息给RM。
每个RM_S其实也属于一个NM,只是会额外监听RM的心跳信息,随时准备激活成为新的RM,以某个RM_S(192.9.200.213)为例,其运行过程如图7所示。
针对资源管理平台的高可靠特性,本文在测试验证过程分别模拟了应用故障、NM故障、RM故障、RM_S故障场景下资源管理平台的工作情况,测试故障恢复时间,其中故障判断周期设置为50 ms,连续丢失3次则认为发生故障,具体恢复时间结果(测100次取平均)如表1所示。
结果显示四种场景下都能够实现ms级左右的故障恢复,基本上不影响整个系统的正常运行。其中NM、RM、RM_S的恢复时间包括从诊断故障开始到NM、RM、RM_S启动成功后的时间,应用故障的恢复时间不包括应用自身的启动时间(与具体应用相关)。
6 结 论
本文设计了一种以RM、NM、RM_S为核心的资源管理平台软件,采用了XML可扩展标记语言、Redis数据库、选举策略设计、故障重构设计等关键技术,重点描述了该平台自身以及平台上应用的故障后的快速恢复机制,进一步体现了该资源管理平台的高可靠设计,并结合嵌入式应用软件实例充分验证了资源管理平台的功能、指标性能指标与高可靠特性。
参考文献:
[1] 张志慧.嵌入式系统的特点与发展趋势分析 [J].电子技术,2023,52(7):286-287.
[2] 马志刚.嵌入式系统的现状及发展趋势 [J].中国设备工程,2020(21):145-147.
[3] 郑百衡.高实时要求的嵌入式智能计算云平台设计 [J].单片机与嵌入式系统应用,2022,22(1):48-50.
[4] 邵永杰,王志敏.基于嵌入式云计算平台的分布式实时计算框架研究 [J].通信技术,2019,52(7):1708-1712.
[5] 尚葳蕤,党纪红,张锦江.空间站大规模复杂控制软件基于数据池的软件框架设计 [J].载人航天,2024,30(1):89-93.
[6] 吴晓,刘文祥,张凯龙.嵌入式分布实时系统自适应资源管理架构 [J].计算机测量与控制,2012,20(2):457-459.
[7] KIM J,RAJKUMAR R,KATO S. Towards Adaptive GPU Resource Management for Embedded Real-Time Systems [J].ACM SIGBED Review,2013,10(1):14-17.
[8]王姝,温晓玲.基于资源共享的分布式机载软件测试系统设计 [J].飞机设计,2024,44(1):76-80.
[9] 张嵩,许蕾,吴永亮.基于XML的标准结构化架构设计 [J].航天标准化,2023(2):47-51+33.
[10] 邓秀辉,李民,方惠.基于分布式集群高可用管理信息系统设计 [J].制造业自动化,2022,44(7):43-45+122.
作者简介:程杭林(1993—),男,汉族,安徽六安人,工程师,硕士,研究方向:信息处理软件工程实现与软件总体设计;李路野(1986—),男,汉族,湖北汉川人,高级工程师,博士,研究方向:信息处理软件架构设计和软件化雷达;王鹏(1990—),男,汉族,河北石家庄人,工程师,博士,研究方向:智能化信息处理与软件总体设计。
DOI:10.19850/j.cnki.2096-4706.2024.17.022
收稿日期:2024-04-29
Design of Highly Reliable Resource Management Platform for Embedded System
CHENG Hanglin, LI Luye, WANG Peng
(Nanjing Research Institute of Electronics Technology, Nanjing 210039, China)
Abstract: In view of the application requirements of the multi-function and multi-task of embedded domain, the reconstruction of system in complex and ever-changing environment, and scalability and maintainability for long equipment life cycles and so on, in order to achieve unified management of computing, storage, network and other resources in embedded systems, a highly reliable resource management platform for embedded systems is designed. The platform uses key technologies such as XML, Redis database, election policy design, and fault recovery mechanisms, then it focuses on achieving a highly reliable design for the resource management platform and the application software within the platform.
The functions, metric performance and highly reliable characteristics of the resource management platform are fully verified using examples from embedded application software.
Keywords: embedded system; resource management platform; highly reliable design