面向高机动环境的边缘云内数据同步方法*
2024-03-20葛光富姚传明夏鑫成朱立捷
葛光富,姚传明,夏鑫成,朱立捷,吴 鹏,费 超
(中国电子科技集团公司第二十八研究所,江苏 南京 210007)
0 引言
伴随着物联网[1]、车联网[2]、船联网[3]、飞联网[4]等领域的迅猛发展,边缘计算技术不断取得突破,各类云业务延展至边缘,提高了信息系统规模及其复杂度,为边缘环境的数据组织运用带来了挑战。
综合考虑军民用市场,边缘环境下有着大量的信息设备用于搭建各中小型信息系统,但这些设备的软硬件资源参差不齐、性能不一,有些甚至较差,其中,终端设备的问题尤为突出,受限的计算、存储、网络资源会约束各地能够集成部署使用的信息服务。为给各类终端设备带来更多且质量有保证的信息服务,可通过集约利用边缘环境中如机动车辆、船舶、飞机等的服务器类型设备资源构建边缘云,引接“云”的信息服务能力向网络边缘延伸,并就近向“端”提供“云”“边”信息服务。进一步,能够满足高机动场景运用需求,确保边缘云内各服务节点上任意相同信息服务使用数据的实时一致性,支撑各类终端设备适地就近接入边缘云享用“云”“边”信息服务,以开展有关业务,并兼顾提高资源利用效率和系统可用性。可应用于边缘环境高机动条件下的边缘云内数据同步技术成为信息系统软件服务平台统筹规划中的必要考虑因素。
目前暂未有针对边缘环境高机动条件下边缘云内的数据同步方法,故统筹设计机动通信网络条件下边缘云的云内数据,使其有序同步一致,支撑物理分布边缘云数据、服务等资源的弱连接下高可用,以杜绝因边缘云的各服务节点上任意相同信息服务基于数据的不一致等带来的终端应用“云”“边”信息服务风险,已成为当前信息系统建设所急需。
1 概述
边缘云本质上是分布在网络边缘侧,提供实时数据处理、分析决策的小规模云数据中心,是由大规模地域分散的边缘云节点相互协同组成的分布式云。边缘云与中心云和物联网终端形成“云、边、端三体协同”的端到端的技术架构,通过将网络转发、存储、计算,智能化数据分析等工作放在边缘处理,降低响应时延、减轻云端压力、降低带宽成本[5]。
边缘云的发展历程如图1 所示。1998 年Akamai公司提出了内容分发网络[6](Content Delivery Network,CDN),它是一种基于互联网的缓存网络,其体现了边缘计算的基本思想“功能缓存”。2009 年,Satyanarayanan 等人提出了Cloudle[7]的概念,它是一个可信且资源丰富的主机,部署在网络边缘且与互联网连接[8],可以被移动设备访问并为移动设备提供服务。2013 年,美国太平洋西北国家实验室Ryan LaMothe 提出了“edge computing[9]”一词,这是边缘计算首次被提出。2018 年,《边缘云计算技术及标准化白皮书》正式发布,逐渐明晰边缘云计算概念定义。边缘云[10-11]在许多领域应用较为广泛,其中面向特定领域的边缘云在智慧医疗[12]、云游戏、工业互联网等领域发展迅速。
图1 边缘云发展历程
目前,已有诸多云服务提供商打造出了边缘云产品,如腾讯云物联网边缘计算平台(IoT Edge Compting Platform,IECP)、阿里云IoT Link Rack、百度云智能边缘(Baidu IntelliEdge,BIE)、浪潮云行·边缘云(ICP Edge Cloud,IEC)等。这些边缘云产品多用于固定有线互联通信环境,不能很好地适用于高机动无线通信环境。因此,面向高机动环境的边缘云一系列技术亟待突破,包括边缘云内多节点数据并发有序同步有关技术。
2 系统模型
边缘云内数据同步系统模型中,当多节点边缘云内任意节点的数据有源自本地的增量变化时,写入本节点自增量数据记录表,对照本节点自增量数据同步最近记录,列出本节点同步向云内数据增量要求。据此,将同步向云内对应节点的所有增量数据条目按时序插入对应节点的同步向云内节点数据增量发送队列;之后,对应节点的同步向云内节点数据增量发送队列依序分别将若干项增量数据条目打包成数据增量同步要求,并送达云内对应节点。当边缘云内其他节点收到数据增量同步要求时,向发送方节点回复已接收,并将数据增量同步要求的所有增量数据条目按时序插入本节点同步自云内数据增量处理队列。之后,本节点同步自云内数据增量处理队列的每项增量数据条目依次与本节点全增量数据记录表比对,决策相应条目数据是否本节点所需写入的增量,如果是,则写入相应本地数据库或数据文件,以支持完成本节点数据与云内的同步一致。系统模型如图2 所示。
该系统模型中,节点是边缘云中能被分配任务执行的服务节点[13]个体;网络是边缘云内节点间通信所在网络[14],主要以无线方式连接,且遵循IP通信标准。各节点集成部署边缘云内数据同步模块,用于节点数据增量记录的存储和查询,本节点自增量数据发现、云内分发,以及云内增量数据的接收、同步。
当多节点边缘云内任意节点的数据有源自本地的增量变化时,将增量数据写入本节点自增量数据记录表,更新节点自增量同步云内队列;根据节点自增量同步云内队列,分别向边缘云内对应节点依次分包发送数据增量同步要求。
当多节点边缘云内其他节点收到数据增量同步要求时,将数据增量同步要求按时序插入本节点同步自云内数据增量处理队列;之后本节点同步自云内数据增量处理队列依次与本节点全增量数据记录表比对,将本节点所需云同步增量写入本地数据库或数据文件,以实现本节点数据与云内数据的同步。
上述系统模型考虑了高机动条件下边缘云内数据库、文件数据的节点间同步,然而暂未有针对该场景下边缘云内数据的节点间有序同步的方法。因此,针对该问题,本文提出一种面向高机动环境的边缘云内数据同步方法。
3 边缘云内数据有序同步方法
面向高机动环境的边缘云内数据同步方法包括节点数据自增量发现和云内数据增量同步两个阶段,具体如下文所述。
3.1 节点数据自增量发现
当多节点边缘云内任意节点的数据有源自本地的增量变化时,写入本节点自增量数据记录表,对照本节点自增量数据同步最近记录,列出本节点同步向云内数据增量要求。据此,将同步向云内对应节点的所有增量数据条目,按时序插入对应节点的同步向云内节点数据增量发送队列;之后,对应节点的同步向云内节点数据增量发送队列依序分别将若干项增量数据条目打包成数据增量同步要求,并送达云内对应节点。节点数据自增量发现过程如图3 所示。
图3 节点数据自增量发现的过程
节点数据自增量发现包括节点数据自增量日志记录、节点自增量同步云内要求列出、节点自增量同步云内队列更新、节点自增量同步云内分包送达4 个阶段。
3.1.1 节点数据自增量日志记录
当多节点边缘云内任意节点的数据有源自本地的增量变化时,即有本地服务应用系统更改本节点管理数据库、数据文件的数据,则将节点数据自增量日志(tSelfAdd,DataSelfAddExCode),包括本节点数据自增量发生时刻、执行代码信息,添加到本节点自增量数据记录表,该过程表示如下:
式中:tSelfAdd为本节点数据自增量发生时刻;DataSlfAddExCode为本节点数据自增量执行代码,其涵盖写入数据库、数据文件路径,执行增加、删除或修改的数据内容;DataSelfAddRcdTab为本节点自增量数据记录表,其中按时序记录本节点数据自增量的发生时刻及对应的执行代码。
3.1.2 节点自增量同步云内要求列出
对照本节点自增量数据同步最近时刻记录表,LastSyncToRcd列出本节点同步向云内数据增量要求单如下:
式中:iNode为边缘云内节点编号,范围为[1,N],其中N表示边缘云内节点总数量;LastSyncToTimeiNode为本节点向边缘云第iNode个节点的同步数据最近时刻,即本节点向边缘云第iNode个节点同步数据的最近一次同步成功的时刻;LastSyncToRcd为本节点自增量数据同步最近时刻记录表;SyncToRqList为本节点同步向云内数据增量要求单,即要求本节点向边缘云内对应的iNode个节点同步LastSyncToTimeiNode之后的数据增量。
3.1.3 节点自增量同步云内队列更新
按照本节点同步向云内数据增量要求单SyncToRqList,根据节点顺序依次更新本节点同步向云内其他各节点的数据增量发送队列,其过程如图4 所示。
图4 节点自增量同步云内队列更新的过程
节点自增量同步云内队列更新的具体步骤为:
(1)同步其他节点数据增量首条查找。逆时序遍历本节点自增量数据记录表DataSelfAddRcdTab,从中找到最后一条本节点数据自增量发生时刻tSelfAdd大于LastSyncToTimeiNode(本节点向边缘云第iNode个节点同步数据的最近时刻)的记录,即为本节点向边缘云第iNode(从iNode=1 开始)个节点的首条增量数据条目。
(2)同步其他节点数据增量队列更新。将本节点自增量数据记录表DataSelfAddRcdTab中,从同步其他节点数据增量首条开始的所有记录,按时序追加到对应的第iNode(从iNode=1 开始)个节点的同步向云内节点数据增量发送队列,该过程表示如下:
式中:iNode为边缘云内节点编号,范围为[1,N],其中N表示边缘云内节点总数量;LastSyncToTimeiNode为本节点向边缘云第iNode个节点同步数据最近时刻;tSel为同步向云内节点数据自增量发生时刻;DataSelExCode为同步向云内节点自增量执行代码;DataSyncSndQueiNode为同步向云内第iNode个节点数据增量发送队列,包括同步向云内第iNode个节点的按时序存入数据自增量的发生时刻及对应的执行代码。
(3)转到下一个同步其他节点,重复步骤1和步骤2,直至iNode=N结束。
3.1.4 节点自增量同步云内分包送达
将本节点自增量同步云内其他各节点的数据增量依次分包送达云内对应节点,其过程如图5 所示。
图5 节点自增量同步云内分包送达的过程
节点自增量同步云内分包送达的具体步骤如下文所述。
(1)同步其他节点数据增量等待。等待直至同步向云内节点数据增量发送队列DataSyncSndQueiNode不为空,即存在待送达云内对应第iNode个节点的数据增量,转至步骤2。
(2)同步其他节点数据增量分包。在同步向云内节点数据增量发送队列DataSyncSndQueiNode中,按照时序且不超过数据增量同步要求包正文大小上限DataSyncSndPackSizemax,选取若干项增量数据条目分别打包成数据增量同步要求,具体如下:
式中:iNode为边缘云内节点编号,范围为[1,N],其中,N表示边缘云内节点总数量;LastSyncToTimeiNode为本节点向边缘云第iNode个节点同步数据最近时刻;WaitSyncToTimeiNode为本节点向边缘云第iNode个节点的待同步数据最近时刻,即本节点向边缘云第iNode个节点发起准备同步数据的最近一次的时刻;tSnd为送达云内节点数据自增量发生时刻;DataSndExCode为送达云内节点自增量执行代码;DataSyncSndPackiNode为送达云内第iNode个节点的数据增量同步要求,包括送达云内第iNode个节点的按时序存入数据自增量的发生时刻及对应的执行代码。
(3)同步其他节点数据增量发送。将数据增量同步要求DataSyncSndPackiNode发送至云内第iNode个节点,其中要求接收方做接收确认回复。
(4)同步其他节点数据增量接收应答。边缘云内第iNode个节点收到数据增量同步要求DataSyncSndPackiNode时,向发送方节点回复数据增量同步要求已接收确认消息,消息内容包括已接收确认的报文序列号。
(5)同步其他节点数据增量记录更新。当本节点收到数据增量同步要求接收方(即云内第iNode个节点)回复的数据增量同步要求已接收确认消息时,在本节点自增量数据同步最近时刻记录表LastSyncToRcd中更新本节点向边缘云第iNode个节点同步数据最近时刻LastSyncToTimeiNode。
(6)当同步向云内节点数据增量发送队列DataSyncSndQueiNode不为空时,重复步骤(2)至步骤(5),否则转至步骤(1)。
3.2 云内数据增量同步
当边缘云内其他节点收到数据增量同步要求时,向发送方节点回复已接收,将数据增量同步要求的所有增量数据条目按时序插入本节点同步自云内数据增量处理队列。之后,本节点同步自云内数据增量处理队列的每项增量数据条目依次与本节点全增量数据记录表比对,决策相应条目数据是否是本节点所需要写入的增量,如果是,则写入相应本地数据库或数据文件,以实现本节点数据与云内的同步一致。云内数据增量同步过程如图6 所示。
图6 云内数据增量同步的过程
云内数据增量同步包括同步自云内数据增量处理队列更新、同步自云内数据增量按需写入同步两个阶段。具体介绍如下:
(1)同步自云内数据增量处理队列更新。当边缘云内第iNode个节点收到数据增量同步要求DataSyncSndPackiNode时,在向发送方节点回复数据增量同步要求已接收确认消息的同时,将收到的数据增量同步要求DataSyncSndPackiNode的所有增量数据条目按时序插入相应本节点同步自云内数据增量处理队列,该过程表示如下:
式中:LastSyncExTime为本节点同步自云内数据增量最近执行时刻;tEx为本节点同步自云内数据增量执行时刻;DataRcvExCode为本节点同步自云内数据增量执行代码;DataSyncRcvQue为本节点同步自云内数据增量处理队列,包括本节点同步自云内数据增量按时序的执行时刻及对应的执行代码。
(2)同步自云内数据增量按需写入同步。本节点同步自云内数据增量处理队列DataSyncRcvQue的每项增量数据条目(tEx,DataRcvExCode)依次与本节点全增量数据记录表DataAllAddRcdTab中所有已增量数据条目比对,如果未查找到,则表明对应条目增量数据是本节点所需写入的增量,将其相应写入本地数据库或数据文件,并将对应增量数据条目按时序插入更新本节点全增量数据记录表,该过程表示如下:
式中:tAllAdd为本节点数据全增量发生时刻;DataAllAddExCode为本节点数据全增量执行代码;DataAllAddRcdTab为本节点全增量数据记录表,其中按时序记录本节点数据全增量的发生时刻及对应的执行代码。
4 仿真结果及分析
4.1 仿真及结果
按照本文方法使用C++语言编写边缘云内数据同步程序,结合运用边缘云聚云散软件[15],并在不同外部无线通信带宽环境下对其进行数据同步仿真模拟性能试验。分别在环境无线带宽为2 Mbit/s、8 Mbit/s、100 Mbit/s、1 000 Mbit/s 的情况下,依次仿真模拟边缘云内数据同步并设定带宽可用率为0.5,增量同步数据长度为1 000 字节,边缘云内节点数为10 个。同时,IP 协议头长度为20 字节,UDP 报文头长度为8 字节,报文序列号字段、增量同步数据长度字段、报文确认号字段的长度均为4 字节。进而可得,增量同步数据发送报大小=20+8+4+4+1 000=1 036 字节,增量同步数据接收确认报大小=20+8+4=32 字节;增量数据同步发送报传输用时=(增量同步数据发送报大小×8 bit)÷(环境无线带宽×带宽可用率×1 048 576 bit)×1 000 000 μs,增量同步数据接收确认报传输用时=(增量同步数据接收确认报大小×8 bit)÷(环境无线带宽×带宽可用率×1 048 576 bit)×1 000 000 μs;边缘云内数据同步用时=(增量数据同步发送报传输用时+增量同步数据接收确认报传输用时);边缘云可增量同步数据量=(环境无线带宽×带宽可用率×1 048 576 bit)÷(8×(边缘云内节点数-1))-(增量同步数据接收确认报大小+增量同步数据发送报大小-增量同步数据长度)字节/s。具体数据及仿真试验结果如表1 所示。边缘云内数据同步的过程中,本地计算时间包括增量同步数据发送报、增量同步数据接收确认报的封装发送、接收解析时间,可忽略不计。
表1 仿真参数设置与仿真结果
4.2 性能分析
由仿真结果可知,在环境无线带宽为2 Mbit/s、8 Mbit/s、100 Mbit/s、1 000 Mbit/s 的条件下,边缘云内数据同步为8 148.19 μs、2 037.05 μs、162.96 μs、16.30 μs,边缘云可增量同步数据量对应为14 495 字节/s、58 186 字节/s、728 109 字节/s、7 281 709 字节/s。因此,本系统可以适配各种带宽条件,极速、便捷完成千数量级以上字节数据的边缘云内同步,并且既可以支持边缘云内数据的节点间动态高可用同步,又可以实现边缘云内数据同步面向高机动环境的场景运用,应用的范围更加广泛且有助于提高系统边缘服务的稳定性及效能。此外,如图7 所示,本文方法可支持通过边缘信息基础设施平台[16]监视边缘云内数据同步的状态,能够为上层信息服务系统实时掌握其节点间数据同步的状况提供依据。
图7 边缘云内数据同步
5 结语
本文研究了运用机动弱连接通信条件下的多节点并发有序同步技术,提出了面向高机动环境的边缘云内数据同步系统。本文所提系统在边缘环境高机动条件下,可随多节点边缘云内任意节点源自本地的数据增量变化,将增量数据条目依序分包送达云内其他节点执行同步写入,以完成边缘云内各节点数据的实时同步一致。本文所提系统使用方法不但支持边缘云内数据的节点间动态高可用同步,而且可以实现边缘云内数据同步面向高机动环境的场景运用,可支撑边缘云平台环境确保边缘云内各服务节点上任意相同信息服务基于数据的实时一致性,为各类终端设备随遇享用“云”“边”数据、信息、服务资源,提供边缘云内“数据一致”增效剂,可支撑机动车辆、船舶、飞机等业务信息系统的随遇连接并访问使用边缘云上的数据,有助于提高系统边缘服务的稳定性及效能。