欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 一种远程LXC容器应用动态管理系统及方法独创技术16316字

一种远程LXC容器应用动态管理系统及方法

2021-03-03 23:31:14

一种远程LXC容器应用动态管理系统及方法

  技术领域

  本发明涉及云端容器应用管理技术,具体涉及一种远程LXC容器应用动态管理系统及其方法。

  背景技术

  在国家电网关于智能融合终端的要求中,明确指出需要支持容器,容器是一个虚拟的独立运行环境,能够对终端部分物理资源(CPU、内存、磁盘、网络资源等)的划分和隔离,屏蔽本容器中应用软件与其他容器或操作系统的相互影响。

  一般智能融合终端多采用Docker容器,Docker容器相比LXC容器虽然功能更加强大,更易移植和管理应用程序,但是Docker容器对CPU和内存等要求更高,对于工业级CPU而言,更高性能往往意味着更高的价格。而LXC容器虽然较为原始,没有一个很好应用管理平台,不支持远程的应用动态管理,即动态安装,卸载,启停应用,但是其轻量化的特点对于设备降成本,提高应用运行效率非常具有优势。因此,亟需设计一种远程LXC容器应用动态管理系统。

  发明内容

  本发明的目的在于提供一种远程LXC容器应用动态管理系统及其方法。

  实现本发明目的的技术解决方案为:一种远程LXC容器应用动态管理系统,包括云端、容器管理模块和LXC容器集群,所述云端包括云端应用仓库和云端控制终端,所述容器管理模块和LXC容器集群配置在设备内部,其中LXC容器集群包括若干个LXC容器,所述云端控制终端远程管理容器应用时,由所述容器管理模块解析远程控制指令,控制目的LXC容器安装、卸载或者启停应用;

  在容器管理模块内部集成Libcurl服务,容器管理模块通过调用所述Libcurl服务从云端应用仓库下载应用的安装包;在每个LXC容器内部集成Dpkg服务和Sytemd服务,目的LXC容器通过调用所述Dpkg服务安装或者卸载应用,通过调用所述Sytemd服务启停应用;所述LXC容器之间共享安装目录,用于存储从云端应用仓库下载的应用安装包。

  进一步的,所述云端和设备之间通过MQTT进行信息交互。

  进一步的,所述容器管理模块解析的远程控制指令包括执行的操作、应用名称和目的LXC容器编号。

  进一步的,所述容器管理模块向云端控制终端反馈设备操作状态信息。

  进一步的,所述远程LXC容器应用动态管理系统采用失败重试机制,当应用下载、安装、卸载或者启停失败时,再次执行操作。

  一种远程LXC容器应用动态管理方法,使用上述任一项所述的远程LXC容器应用动态管理系统,远程管理容器应用,具体包括如下步骤:

  远程管理容器应用时,容器管理模块解析远程控制指令,控制目的LXC容器安装、卸载或者启停应用;如果需要安装应用,则由容器管理模块调用Libcurl服务从云端应用仓库下载应用的安装包,并将安装包存放在容器的共享目录内,再由目的LXC容器调用Dpkg服务安装应用;如果是卸载应用,则直接由目的LXC容器调用Dpkg服务卸载应用;如果是启停应用,则直接由目的LXC容器调用Sytemd服务启停应用。

  进一步的,所述云端和设备之间通过MQTT进行信息交互。

  进一步的,所述容器管理模块解析的远程控制指令包括执行的操作、应用名称和目的LXC容器编号。

  进一步的,所述容器管理模块向云端控制终端反馈设备操作状态信息。

  进一步的,所述远程LXC容器应用动态管理系统采用失败重试机制,当应用下载、安装、卸载或者启停失败时,再次执行操作。

  本发明与现有技术相比,其显著优点在于:1)LXC容器的轻量化特点使它对MCU等硬件性能要求较低,或者可以在设备中安装更多的LXC容器,方便分类管理;2)Libcurl是一款优秀的开源跨平台网络协议库,支持多种协议,认证,非常易使用等特点;3)Dpkg是Debian 和基于 Debian 的系统中一个主要的包管理工具,可以用来安装、构建、卸载、管理deb格式的软件包,而Debian是一种linux的发行版本,所以Dpkg同样适用于管理设备的应用,只需要在每个LXC容器中安装Dpkg工具;4)Sytemd服务,不仅可以查看容器内的进程和服务的状态,还可以启停进程和服务,是一个高效的进程管理工具。

  附图说明

  图1是本发明远程LXC容器应用动态管理系统的系统框图。

  图2是本发明的数据节点替代方法示意图。

  具体实施方式

  为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

  一种远程LXC容器应用动态管理系统,包括云端、容器管理模块和LXC容器集群,所述云端包括云端应用仓库和云端控制终端,所述容器管理模块和LXC容器集群配置在设备内部,其中LXC容器集群包括若干个LXC容器,所述云端控制终端远程管理容器应用时,由所述容器管理模块解析远程控制指令,控制目的LXC容器安装、卸载或者启停应用。

  Libcurl是一款优秀的开源跨平台网络协议库,主要功能就是用不同的协议连接和沟通不同的服务器,当前支持http, https, ftp, gopher, telnet, dict, file,和ldap 协议。libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传,HTTP基本表单上传,代理,cookies和用户认证。综上所述,Libcurl具有支持多种协议,认证,非常易使用等特点。本发明中,在容器管理模块内部集成Libcurl服务,容器管理模块可通过调用所述Libcurl服务从云端应用仓库下载应用的安装包。下载的应用安装包,可保存在LXC容器的共享安装目录中,目的LXC容器安装应用时,只需从共享安装目录中下载所需应用,不需要再与云端交互。

  Dpkg是Debian Packager的简写,为Debian专门开发的套件管理系统,方便软件的安装、更新及移除。所有源自Debian的Linux发行版都使用dpkg,例如Ubuntu、Knoppix等。本发明中,在每个LXC容器中安装Dpkg工具,LXC容器可通过调用所述Dpkg服务用来安装、构建、卸载、管理deb格式的软件包,管理设备的应用。

  Sytemd即为system daemon,是linux下的一种init软件,由Lennart Poettering带头开发,并在LGPL 2.1及其后续版本许可证下开源发布,开发目标是提供更优秀的框架以表示系统服务间的依赖关系,并依此实现系统初始化时服务的并行启动,同时达到降低Shell的系统开销的效果,最终代替常用的System V与BSD风格init程序。与多数发行版使用的System V风格init相比,systemd采用了以下新技术:(1)采用Socket激活式与总线激活式服务,以提高相互依赖的各服务的并行运行性能;(2)用Cgroups代替PID来追踪进程,因此即使是两次fork之后生成的守护进程也不会脱离systemd的控制。Sytemd服务,不仅可以查看容器内的进程和服务的状态,还可以启停进程和服务,是一个高效的进程管理工具。本发明中,在每个LXC容器中安装Sytemd,可通过调用所述Sytemd服务启停应用。

  MQTT协议是一个基于客户端-服务器的消息发布/订阅传输协议,是为大量计算能力有限,且工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,它具有以下主要的几项特性:1、使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合;2、对负载内容屏蔽的消息传输;3、使用 TCP/IP 提供网络连接;4、有三种消息发布服务质量;5、小型传输,开销很小(固定长度的头部是2字节),协议交换最小化,以降低网络流量;6、使用Last Will和Testament特性通知有关各方客户端异常中断的机制。MQTT协议轻量、简单、开放和易于实现的特点,使它适用范围非常广泛,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。

  本发明中,所述云端和设备之间通过MQTT进行信息交互,只要设备和云端同处于一个局域网下,所有的设备和云端之间即可进行信息交互。当需要远程管理容器应用时,云端控制终端通过MQTT广播发送命令,智能融合终端设备会通过MQTT监听相关的Topic获取命令,获取命令后,容器应用管理模块会根据命令内容执行相关的操作,包括安装应用,卸载应用和启停应用。

  基于上述远程LXC容器应用动态管理系统,远程管理容器应用的步骤为:

  容器管理模块接收、解析远程控制指令,内容包括需要操作的应用名称,目的LXC容器编号,以及执行的操作,进而控制目的LXC容器安装、卸载或者启停应用。

  如果需要安装应用,则由容器管理模块调用Libcurl服务从云端应用仓库下载应用的安装包,并将安装包存放在容器的共享目录内,再由目的LXC容器调用Dpkg服务安装应用;

  如果是卸载应用,则直接由目的LXC容器调用Dpkg服务卸载应用;

  如果是启停应用,则直接由目的LXC容器调用Sytemd服务启停应用。

  为了监控设备运行状态,方便用户定位失败原因,所述容器管理模块向云端控制终端反馈设备操作状态信息,在调用Libcurl服务从云端应用仓库下载应用,调用Dpkg服务安装或者卸载应用,调用Sytemd服务启停应用,成功后者不成功的时候,将运行结果反馈给云端。

  所述远程LXC容器应用动态管理系统采用失败重试机制,当目的LXC容器安装、卸载或者启停应用失败时,再次尝试执行相应操作。例如,从云端应用仓库下载应用包不成功,会再次尝试调用Libcurl服务从云端应用仓库下载应用安装包。调用Dpkg服务安装应用失败,会再次尝试安装应用。调用相应容器内的Dpkg服务卸载应用失败,则再次尝试卸载应用。调用相应容器内的Systemd服务启停应用失败,则再次尝试启停应用。

  本发明还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行计算机程序控制远程LXC容器应用动态管理系统远程管理容器应用。

  一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时控制远程LXC容器应用动态管理系统远程管理容器应用。

  LXC容器是一种内核虚拟化技术,可以提供轻量级的虚拟化,以便隔离进程和资源。通常容器本身是不具备特殊业务能力的,仅为提供一个适合的软件环境。目前也有很多的开源贡献者制作了具备特定功能的容器,但是一般此类容器, 仅具备单一功能,且不便于二次定制。本发明在容器的基础上引入应用管理的概念,方便为一个通用的容器环境,赋予不同的特定功能,通过安装一个具体功能的应用,或安装多个应用协同配合完成某项功能。

  实施例

  为了验证本发明方案的有效性,进行如下实验设计。

  如图1所示,本实施例的一种远程LXC容器应用动态管理系统框图。设备和云端通信,采用MQTT通讯方式,下载安装采用Libcurl服务。LXC容器、容器管理模块、容器共享目录都工作在设备内,一个设备内允许多个LXC容器存在,LXC容器统一受容器管理模块管理。Dpkg服务,Systemd服务和应用都在LXC容器内运行,LXC容器受到Dpkg和Systemd服务的管理。

  远程LXC容器应用动态管理系统中,MQTT监听和发送消息模块,用于监听云端消息和反馈给云端信息,只要设备和云端同处于一个局域网下,所有的设备和云端之间,即可监听相关Topic的消息,并反馈设备的相关运行状态。

  容器管理模块,用于接收关于容器和容器应用操作的信息进行解析,启动相关的服务进行操作,实现管理系统的高效运行。

  Libcurl服务是一种网络协议库,安装在设备系统内,在这里专门用来从云端应用仓库下载应用安装包。安装被存入一个所有容器的共享目录内,以方便容器内的应用安装。

  Dpkg服务工作在容器内,在需要操作应用时,容器管理模块会调用容器内的Dpkg服务安装存放在共享目录内的相关安装包,或者卸载相关应用。

  Systemd服务工作在容器内,如果只是启停应用,容器管理模块会调用容器内的Systemd服务,启停应用。

  如图2所示,本实施例的一种远程LXC容器应用动态管理系统的流程图。当云端用户需要操作某个设备的某个容器应用,可以通过MQTT下发该指令,目标设备会用过MQTT的Topic监听,识别到该指令是给自己的,然后会将该信息传给容器管理模块,容器管理模块会解析信息,解析出需要要操作容器名称,应用名称和操作方式。如果容器管理模块确认该信息是完整,真实的,会反馈成功收到信息,反之则会反馈错误信息和错误编号。例如操作为在LXC01的容器内安装名为hello的应用,容器管理模块会调用Libcurl服务,连接云端的应用仓库,从中下载hello.deb安装包,存放到容器的共享目录,如果下载成功则会通过MQTT反馈下载成功信息,失败则再次尝试下载,并反馈下载失败的信息。下载完成后,容器管理模块会调用LXC01容器内的Dpkg服务,安装hello.deb安装包,如果安装成功则会通过MQTT反馈安装成功信息,失败则再次尝试安装,并反馈安装失败的信息。

  本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

  以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

  以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。

《一种远程LXC容器应用动态管理系统及方法.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)