基于组播的云终端高效升级机制探析

2016-01-05 12:33严承习慧丹
电脑知识与技术 2015年29期

严承++习慧丹

摘要:随着大数据及云计算技术的不断发展,云终端的使用越来越广泛,在使用云终端的同时,人们对其操作和管理的方便性提出了更高的要求,特别是某些急需在短时间内完成的升级操作。针对传统HTTP方式和NFS方式升级面临的问题,探讨一种基于组播的云终端升级机制,实验表明该方法可有效降低网络带宽及服务器的性能需求。

关键词:HTTP;NFS;组播

中图分类号:TP30 文献标识码:A 文章编号:1009-3044(2015)29-0038-03

Implementation Mechanism of Cloud Terminal Upgrade Based on Multicast

YAN Cheng, XI Hui-dan

(Department of Computer Science, Qiannan Normal College for Nationalities, Duyun 558000, China)

Abstract:With the continuous development of big data and cloud computing technology, the cloud terminal is more widely used; So while using cloud terminal put forward higher requirements for the operation and management of its convenience, especially in certain urgent need upgrade operation is completed in a short time; The paper analyzing the way the original HTTP, NFS way to upgrade cloud terminal , and efficient technology upgrades conducted in-depth research, using a multicast mechanisms and technology to achieve efficient upgrade on cloud terminals.

Key words:HTTP; NFS; Multicast

随着云计算技术的发展和应用,企业从安全、成本等方面考虑,其信息化建设中云终端的使用率越来越高,而为云终端提供高效的管理方式成为其大规模应用的基本要求,特别是对终端操作系统镜像升级成为迫切处理的问题之一。目前云终端升级操作主要有两种技术机制:1)采用超文本传输协议(HTTP);2)采用NFS[1]挂载方式升级。采用HTTP方式主要是在通过云终端网管服务器将存放镜像升级文件的服务器地址设置在对应的云终端,通过终端启动时的判断机制,确定终端是否需要升级,在升级过程中网络数据的传输方式是采用HTTP协议。采用NFS挂载方式则是网管服务器对NFS服务器地址、镜像文件名称目录等数据下发到对应终端,终端通过NFS挂载方式,从NFS服务器上获取升级镜像文件,然后再升级。但这两种方式都有一个无法逃避的问题是存放镜像文件的服务器与终端的带宽以及服务器的性能,不论是采用HTTP或NFS挂载到服务器,每个终端都会与服务器建立连接,镜像文件传输的时候对网络带宽的要求非常高,特别是当终端数量比较多的时候,也有可能造成服务器异常,进而影响整体升级效率。

1 云终端组播方式升级机制研究与实现

1.1 组播技术机制

IP通信机制单播(unicast)是在需要通信的两个主机之间直接进行数据包的传送,广播(broadcast)是一个发送数据包的主机给整个网络中所有的其他主机都发送数据包,在数据传输过程中无论是采用单播还是组播的方式都有可能存在浪费带宽的问题,为了有效处理单点对多点的数据包传送,出现了IP组播[2],其思想是在网络中需要接收某个数据包的主机定义为一个组播组,发送数据包的源主机只需要确保数据包会发送到这个组播组地址,接下来整个组播组中的所有机器都会受到这个数据包,而组播组外的机器不会收到。在这种数据包发送方式中,假定一个组播组种有n台机器,需要接收数据包的机器数为m,那么组播方式会比单播方式节省需要接收(m-1)次发送,同时比广播方式节省(n-1)次发送,对网络来说是很大的降低了其带宽要求,提高了网络性能。同样,在云终端升级方式中,如果采用组播方式进行升级,也会有效的降低网络带宽的要求,节省服务器的资源,提高用户的满意度。

1.2 云终端组播升级实现机制

1.2.1 云终端升级系统架构

云终端升级系统架构主要由网管服务器、NFS/组播服务器、云终端[4,5]组成,网管服务器和NFS/组播服务器可部署在同一台服务器,在网管服务器和NFS/组播服务器之间可以通信的情况下也可分开部署,如图1所示。

1)网管服务器。通信模块负责与组播服务器进行通信,包括传递组播参数,检测组播服务状态,关闭组播服务;Tr069模块负责与云终端交互,包括网管服务器下发参数到终端,终端上报到网管信息的处理。

2) NFS/组播服务器。通信模块负责与网管服务器进行交互,返回组播状态;http模块提供镜像恢复的分区文件和组播端口信息文件等为终端下载,以便云终端获取分区信息判断该镜像文件是否与终端的分区信息一致;组播模块负责终端加入组播组,校验组播数据,判断终端是否超时丢弃,组播数据的发送。

3)云终端。Tr069模块负责与网管进行交互,包括将网管下发的参数设置情况返回到网管服务器,上报镜像文件分区信息是否与终端一致判断结果、终端升级结果及终端状态;组播模块负责加入到网管服务器设置的组播组,接收组播数据。

1.2.2 云终端升级流程

网管服务器提取最新的系统镜像版本,在网管服务器新建操作系统升级任务进行终端批量升级,在建任务时可选择NFS或组播升级,并选择需要升级的镜像版本。若选择NFS方式升级,则将NFS服务器及镜像文件信息下发到终端,终端挂载到NFS服务器先复制镜像分区信息,检测分区信息是否满足升级要求,若满足则复制镜像升级文件,完成升级。若选择组播方式升级,需配置组播升级的参数,网管服务器将组播参数以及需要升级的镜像文件信息发送到组播服务器,组播服务器根据组播参数启动组播程序,若组播程序启动,则组播服务器会发送消息到网管服务器,网管服务器再将组播参数信息和镜像文件信息下发到终端,进行组播升级。

在组播升级之前,需在网管服务器选择一台系统配置好的或者新系统的终端,提取该终端的系统镜像,将新的系统镜像上传到NFS服务器,并记录到网管服务器。再开始组播升级。升级过程如下:将在网管服务器配置的组播参数及升级的镜像文件信息同步到组播服务器;组播服务器接收到组播参数后,从镜像文件目录下获取镜像的分区数,根据分区数查找组播可用端口数,并新写入该目录下的端口信息文件;根据获取的端口信息,启动组播服务,同时将镜像分区信息和组播使用端口的文件复制到HTTP服务下载的目录下,返回网管服务器提示组播启动服务成功;若网管服务器收到组播服务启动成功消息,则将组播地址等参数及下载镜像分区信息和端口信息的文件HTTP地址下发到云终端,否则结束本次升级;云终端收到消息后,先判断组播服务器是否可连接,若可连接,则去下载镜像分区信息和端口信息的文件,否则返回信息到网管,结束本次升级;下载到信息后,判断镜像的分区信息是否满足当前云终端的升级要求,若满足,则云终端解析组播端口信息并记录,重启云终端进入升级系统,否则返回信息到网管,结束本次升级;终端接收到组播服务器发送的发现报文,加入组播组;组播服务器检测组播开始发送数据的策略是否满足,如果满足策略,则开始发送数据,若在开始发送数据时,仍有终端因为网络延时或组播策略的终端连接数超过了实际终端数等原因未加入到此轮组播中,则等待这轮组播数据升级完成后,组播服务器重启组播服务,加入到下轮组播中,以此循环,直到所有正常进入升级系统的终端都完成升级;云终端接收到数据后,校验数据正确与否,若数据校验有误,则重启进入下一轮组播升级,否则直到升级成功;在组播发送数据的升级过程中,由于网络原因或其他原因导致某一终端网络不通,组播服务器会等待该终端直到超时丢弃该终端再继续发送数据,保证升级的完整性。

如图2所示,组播升级的具体流程如下:

1)网管客户端在任务管理中建立系统升级的任务;

2)网管服务端在调度任务时,若是组播升级的任务,则将组播升级参数传递到组播服务器。参数包括:升级文件、组播端口、组播地址、组播服务器网卡、双工模式、传输速率限制、最小连接数、最小等待时间、最大等待时间、跳数、重发hello包间隔时间参数、发送多少个REQACK后丢弃接收机;

3)组播服务器接收组播参数,根据传入的升级文件(实际是一个目录)参数,到相应文件目录解析升级文件的分区信息,根据分区数检测组播升级所需的端口号(把客户端配置的组播端口参数作为起始值,进行检测),并将检测可用端口写入组播升级文件夹下的端口文件*.port;

4)根据传入的参数启动组播服务,将启动成功失败的标识返回到网管服务器,同时将升级文件的分区信息及端口文件复制到http服务器目录;

5)若启动组播服务失败,则在网管服务器的任务调度处直接返回;

6)若启动组播服务成功,进入系统升级任务的动作单元,将组播升级的参数信息下发到设备,下发参数包括:组播地址、跳数、http服务器地址及组播标识等;

7)参数设置到终端失败,则直接返回到网管服务器;若设置参数成功,终端发起http请求,下载分区信息及端口文件;

8)若分区信息与终端系统一致,则终端重启进入终端升级小系统,加入组播组,接收组播数据;

9)升级成功、终端重启进入wes系统、注册到网管服务器。

2 实验及结果分析

采用局域网内部的测试环境对终端进行升级测试,在带宽、以及服务器的性能、终端类型都一致的情况下进行测试,升级终端为10台,云终端镜像文件大小位2.53G,测试结果如图3所示,纵坐标为终端升级时间总长,横坐标为每次测试的终端升级数量。从图3可以看出,由于HTTP、NFS都需要每个终端和升级服务器建立连接,两者在单台和多台时的整体时间相差都不是很大,但是总体终端的升级时间还是和终端数目呈现一定的关系,在数量达到一定程度时候由于受到网络带宽、服务器连接数等方面的限制会出线性增长。 而采用组播的技术,不需要每个终端和升级服务器建立连接,只需要分发数据包到组播组,可以看出当终端数量由单台增长到10台的过程中升级时长变化不大,组播升级有着非常高的效率,在终端数量在一定范围内变化的时候,升级的效率与其关系不大,如果延伸到现网云终端的管理环境,一般都是专线,带宽和服务器性能都有保障的情况,其效果会更加明显。另外,由于HTTP、NFS由于采用的是每个终端和升级服务器建立连接的方式,故类似与传统的单播方式,其理论上分别需要(1,5,10)次数据的传送机制,而在组播机制中,除去服务器性能等方面的影响,在理论上传输的时间只与组播组中云终端的数量有关系,故其升级总时长大大低于HTTP和NFS升级方式。因为采用组播的技术,不需要每个终端和升级服务器建立连接,只需要分发数据包到组播组,所以当终端数量由单台增长到10台的过程中升级时长变化不大,组播升级有着非常高的效率。

3 结束语

通过分析HTTP方式、NFS方式的云终端升级技术面对大批量终端升级的情况下存在效率不高的问题上,提出一种基于组播方式实现的技术机制,在终端升级效率上有显著的提升。同时采用组播升级和NFS升级相结合实现来保证云终端升级功能的完整性,在组播升级中,网管服务器将组播参数及镜像文件信息下发到终端后,终端先到组播服务器下载镜像文件分区信息,若不满足系统升级需要,则终端上报消息当网管服务器,网管服务器记录该终端不能升级的原因。若满足升级需要,则终端重启进入升级的系统,加入到组播组,若组播启动发送数据的策略已满足,则开始组播发送数据,数据发送完后,终端重启进入正常的系统,完成升级。若再第一次组播策略已满足并开始组播升级时,在该次需要升级的终端如果已启动升级系统进入了升级界面,但没有加入到这一次组播中,则等待组播服务器当次组播数据发送完成,重启组播服务程序,等待上一轮未加入的终端加入,并再次发送组播数据,以此一轮一轮的发送,保证终端升级完成。由于以上方案,通过组播对终端升级,实现了对云终端的远程快速升级,同时降低了对网络高带宽及服务器的高性能的需求。

参考文献:

[1] 康天下, 支剑锋. 嵌入式Linux NFS根文件系统的构建及研究[J]. 现代电子技术, 2012, (2): 65-67.

[2] 苏金树, 曹继军, 张博锋. 应用层组播稳定性提高技术综述[J]. 计算机学报, 2009, (3): 575-590.

[3] Popescu A, Constantinescu D, Erman D, Ilie D. A survey of reliable multicast communication//Proceedings of the NGI.Trondheim, Norway, 2007: 111-118.

[4] 《虚拟化与云计算》小组. 虚拟化与云计算[M]. 北京: 电子工业出版社, 2009.

[5] 陈全, 邓倩妮. 云计算及其关键技术[J]. 计算机应用, 2009(9): 2562-2566.

[6] 顾雅珍, 唐慧佳. TR-069协议研究及在网关上的实现[J]. 赤峰学院学报(自然科学版), 2012, (3): 33-34.

[7] 顾雅珍. 基于 TR-069协议的网关配置管理系统的设计与实现[D]. 成都: 西南交通大学, 2011.

[8] 尹紫娟. 基于 TR069 协议的 OAM 模块的设计与实现[D]. 北京: 北京邮电大学, 2011.