CN105955805A - 一种应用容器迁移的方法及装置 - Google Patents

一种应用容器迁移的方法及装置 Download PDF

Info

Publication number
CN105955805A
CN105955805A CN201511004698.5A CN201511004698A CN105955805A CN 105955805 A CN105955805 A CN 105955805A CN 201511004698 A CN201511004698 A CN 201511004698A CN 105955805 A CN105955805 A CN 105955805A
Authority
CN
China
Prior art keywords
file
docker
xen
disk
configuration file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201511004698.5A
Other languages
English (en)
Other versions
CN105955805B (zh
Inventor
李戈
祖立军
刘国宝
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Unionpay Co Ltd
Original Assignee
China Unionpay Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Unionpay Co Ltd filed Critical China Unionpay Co Ltd
Priority to CN201511004698.5A priority Critical patent/CN105955805B/zh
Publication of CN105955805A publication Critical patent/CN105955805A/zh
Application granted granted Critical
Publication of CN105955805B publication Critical patent/CN105955805B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • G06F9/4862Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate
    • G06F9/4868Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate with creation or replication

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种应用容器迁移的方法及装置,获取与Docker运行环境关联的初始脚本文件以及与所述Docker运行环境中每个容器关联的第一配置文件;解析所述初始脚本文件,生成与Xen运行环境关联的磁盘文件,以及解析所述第一配置文件,生成与Xen运行环境中所述容器关联的第二配置文件;将所述磁盘文件和所述第二配置文件发送至Xen宿主物理服务器,以使所述Xen宿主物理服务器根据所述磁盘文件和所述第二配置文件生成Xen虚拟服务器。本发明实施例提供的应用容器迁移的方法及装置,能够实现将Docker中应用迁移到Xen,提高应用环境的隔离性能和稳定性能。

Description

一种应用容器迁移的方法及装置
技术领域
本发明涉及互联网技术领域,尤其涉及一种应用容器迁移的方法及装置。
背景技术
Docker是基于LXC(Linux Container,Linux容器)的应用程序容器引擎,旨在提供一种应用程序的自动化部署解决方案。在Linux系统上创建一个容器并部署和运行应用程序,并通过配置文件可以轻松实现应用程序的自动化安装、部署和升级,非常方便。Docker虚拟出多个容器,每个容器之间相互隔离没有接口,可以将彼此的生产环境和开发环境分开,互不影响。
Docker主要具有以下优势:(1)简化部署多种应用,例如Web应用、后台应用、数据库应用、Hadoop(海杜普)集群、消息队列等等都可以打包成一个部署;(2)解决了硬件管理的问题,引导开发者将应用转移到云上;(3)采用虚拟化手段来满足用户按需分配的资源需求以及保证可用性和隔离性。虽然和传统的虚拟机相比,Docker在性能和系统的占用上提升了不少,但在也存在缺点,例如隔离性较差、对操作系统版本要求较高。
Xen作为一个开放源代码虚拟机监视器,可以在不停止的情况下在多个物理主机之间实时迁移,具有隔离性好、稳定性较高、对操作系统版本要求较低的优点。
Docker作为时下最流行的轻量级虚拟化技术,正在给业界带来一场颠覆性的技术革命,随着Docker技术应用规模越来越大,Docker往往作为需要快速上线的创新业务的虚拟化手段,当创新业务发展到一定程度时,限制于其隔离性稳定性较差,往往需要将其迁移到更加稳定的虚拟机平台,如虚拟监视器Xen。
综上所示,目前还没有将Docker迁移到Xen的解决方案。
发明内容
本发明提供一种应用容器迁移的方法及装置,用以解决没有将Docker迁移到Xen的解决方案的问题。
本发明实施例提供一种应用容器迁移的方法,包括:
获取与Docker运行环境关联的初始脚本文件以及与所述Docker运行环境中每个容器关联的第一配置文件;
解析所述初始脚本文件,生成与Xen运行环境关联的磁盘文件,以及解析所述第一配置文件,生成与Xen运行环境中所述容器关联的第二配置文件;
将所述磁盘文件和所述第二配置文件发送至Xen宿主物理服务器,以使所述Xen宿主物理服务器根据所述磁盘文件和所述第二配置文件生成Xen虚拟服务器。
可选的,所述获取与Docker运行环境关联的初始脚本文件,包括:
从Docker Registry服务器上获取Docker运行环境关联的初始脚本文件;
获取与所述Docker运行环境中每个容器关联的第一配置文件,包括:
从Docker宿主物理服务器查询所述Docker运行环境中的多个服务关联的第一配置文件。
可选的,所述从Docker Registry服务器上获取Docker运行环境关联的初始脚本文件之后,生成与Xen运行环境关联的磁盘文件之前,还包括:
确定从所述Docker Registry服务器上获取的所述初始脚本文件对应的第一消息摘要算法第五版MD5值,与根据所述初始脚本文件生成的第二MD5值相同。
可选的,所述解析所述初始脚本文件,生成与Xen运行环境关联的磁盘文件,包括:
根据所述初始脚本文件,获取Docker操作系统的标识,以及确定生成Xen虚拟服务器磁盘的流程信息;
将所述生成Xen虚拟服务器磁盘的流程信息和所述Docker操作系统的标识作为所述磁盘文件,以使所述Xen宿主物理服务器执行所述磁盘文件。
可选的,所述第一配置文件包括以下中的部分或全部:
每个容器对应的CPU(Central Processing Unit,中央处理器)使用率配置文件、每个容器对应的内存利用率、每个容器对应的磁盘利用率、每个容器对应的网络配置;
所述解析所述第一配置文件,生成与Xen运行环境中所述容器关联的第二配置文件,包括:
通过第一解析器将所述第一配置文件读入内存中,并解析为内存对象;
根据所述内存对象生成可扩展标记语言XML文件,将所述XML文件作为所述第二配置文件。
可选的,所述解析所述初始脚本文件,生成与Xen运行环境关联的磁盘文件,解析所述第一配置文件,生成与Xen运行环境中所述容器关联的第二配置文件之后,还包括:
根据所述磁盘文件和所述第二配置文件,生成第三MD5值;
将所述第三MD5值发送至所述Xen宿主物理服务器,以使Xen宿主物理服务器根据所述第三MD5值校验所述磁盘文件和所述第二配置文件。
本发明实施例还提供一种应用容器迁移的方法,包括:
接收磁盘文件和第二配置文件,其中所述磁盘文件是根据Docker运行环境关联的初始脚本文件解析生成,所述第二配置文件是根据Docker运行环境中每个容器关联的第一配置文件解析生成;
根据所述磁盘文件和所述第二配置文件,生成Xen虚拟服务器。
可选的,所述根据所述磁盘文件和所述第二配置文件,生成Xen虚拟服务器,包括:
确定所述磁盘文件中的流程信息,并根据所述流程信息执行磁盘生成过程;
在执行完磁盘生成过程后,加载所述第二配置文件,生成Xen虚拟服务器;
其中,磁盘生成过程为:
根据所述磁盘文件中Docker操作系统的标识,获取所述Docker操作系统的镜像,并挂载所述Docker操作系统的镜像;
在所述挂载的Docker操作系统的镜像上初始化所述初始脚本文件的环境信息;
通过第二解析器将所述确定初始化的环境信息解析成壳Shell文件,在确认生成所述Shell文件后卸载所述Docker操作系统的镜像。
可选的,所述根据所述Docker操作系统的标识,获取所述Docker操作系统的镜像,并挂载所述Docker操作系统的镜像,包括:
若所述缓存中存储了所述Docker操作系统的标识对应的Docker操作系统的镜像,则获取所述Docker操作系统的镜像;
若所述缓存中未存储所述Docker操作系统的标识对应的Docker操作系统的镜像,则读取Xen镜像服务器中的所述Docker操作系统的镜像。
可选的,所述接收磁盘文件和第二配置文件之后,还包括:
接收第三MD5值,其中所述第三MD5值由Docker宿主物理服务器根据所述磁盘文件和所述第二配置文件生成;
确定所述第三MD5值与根据所述磁盘文件和所述第二配置文件生成的第四MD5值相同。
本发明实施例还提供一种应用容器迁移的装置,包括:
获取单元:用于获取与Docker运行环境关联的初始脚本文件以及与所述Docker运行环境中每个容器关联的第一配置文件;
解析单元:用于解析所述初始脚本文件,生成与Xen运行环境关联的磁盘文件,以及解析所述第一配置文件,生成与Xen运行环境中所述容器关联的第二配置文件;
发送单元:用于将所述磁盘文件和所述第二配置文件发送至Xen宿主物理服务器,以使所述Xen宿主物理服务器根据所述磁盘文件和所述第二配置文件生成Xen虚拟服务器。
可选的,所述获取单元还用于:
从Docker Registry服务器上获取Docker运行环境关联的初始脚本文件;
获取与所述Docker运行环境中每个容器关联的第一配置文件,包括:
从Docker宿主物理服务器查询所述Docker运行环境中的多个服务关联的第一配置文件。
可选的,所述获取单元,还用于:
确定从所述Docker Registry服务器上获取的所述初始脚本文件对应的第一MD5值,与根据所述初始脚本文件生成的第二MD5值相同。
可选的,所述解析单元,还用于:
根据所述初始脚本文件,获取Docker操作系统的标识,以及确定生成Xen虚拟服务器磁盘的流程信息;
将所述生成Xen虚拟服务器磁盘的流程信息和所述Docker操作系统的标识作为所述磁盘文件,以使所述Xen宿主物理服务器执行所述磁盘文件。
可选的,所述第一配置文件包括以下中的部分或全部:
每个容器对应的CPU使用率配置文件、每个容器对应的内存利用率、每个容器对应的磁盘利用率、每个容器对应的网络配置;
所述解析单元,还用于:
通过第一解析器将所述第一配置文件读入内存中,并解析为内存对象;
根据所述内存对象生成可扩展标记语言XML文件,将所述XML文件作为所述第二配置文件。
可选的,所述解析单元,还用于:
根据所述磁盘文件和所述第二配置文件,生成第三MD5值;
将所述第三MD5值发送至所述Xen宿主物理服务器,以使Xen宿主物理服务器根据所述第三MD5值校验所述磁盘文件和所述第二配置文件。
本发明实施例还提供一种应用容器迁移的装置,包括:
接收单元:用于接收磁盘文件和第二配置文件,其中所述磁盘文件是根据Docker运行环境关联的初始脚本文件解析生成,所述第二配置文件是根据Docker运行环境中每个容器关联的第一配置文件解析生成;
生成单元:用于根据所述磁盘文件和所述第二配置文件,生成Xen虚拟服务器。
可选的,所述生成单元,还用于:
确定所述磁盘文件中的流程信息,并根据所述流程信息执行磁盘生成过程;
在执行完磁盘生成过程后,加载所述第二配置文件,生成Xen虚拟服务器;
其中,磁盘生成过程为:
根据所述磁盘文件中Docker操作系统的标识,获取所述Docker操作系统的镜像,并挂载所述Docker操作系统的镜像;
在所述挂载的Docker操作系统的镜像上初始化所述初始脚本文件的环境信息;
通过第二解析器将所述确定初始化的环境信息解析成壳Shell文件,在确认生成所述Shell文件后卸载所述Docker操作系统的镜像。
可选的,所述生成单元,还用于:
若所述缓存中存储了所述Docker操作系统的标识对应的Docker操作系统的镜像,则获取所述Docker操作系统的镜像;
若所述缓存中未存储所述Docker操作系统的标识对应的Docker操作系统的镜像,则读取Xen镜像服务器中的所述Docker操作系统的镜像。
可选的,所述接收单元,还用于:
接收第三MD5值,其中所述第三MD5值由Docker宿主物理服务器根据所述磁盘文件和所述第二配置文件生成;
确定所述第三MD5值与根据所述磁盘文件和所述第二配置文件生成的第四MD5值相同。
本发明实施例提供了一种应用容器迁移的方法及装置,获取与Docker运行环境关联的初始脚本文件以及与所述Docker运行环境中每个容器关联的第一配置文件;解析所述初始脚本文件,生成与Xen运行环境关联的磁盘文件,以及解析所述第一配置文件,生成与Xen运行环境中所述容器关联的第二配置文件;将所述磁盘文件和所述第二配置文件发送至Xen宿主物理服务器,以使所述Xen宿主物理服务器根据所述磁盘文件和所述第二配置文件生成Xen虚拟服务器。本发明实施例提供的应用容器迁移的方法及装置,能够实现将Docker中应用迁移到Xen,提高应用环境的隔离性能和稳定性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种应用容器迁移的方法流程示意图;
图2为本发明实施例提供的另一种应用容器迁移的方法流程示意图;
图3为本发明实施例提供的一种生成磁盘的方法流程示意图;
图4为本发明实施例提供的一种应用容器迁移的装置结构示意图;
图5为本发明实施例提供的另一种应用容器迁移的装置结构示意图;
图6为本发明实施例提供的一种应用容器迁移的装置结构图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例提供一种应用容器迁移的方法,对应的执行主体为Docker宿主物理服务器。如图1所示,为本发明实施例提供的一种应用容器迁移的方法流程示意图,包括:
步骤101:获取与Docker运行环境关联的初始脚本文件以及与Docker运行环境中每个容器关联的第一配置文件。
具体地,Docker中的重要组件Docker Registry服务器为Docker编写注册服务,提供了对Docker镜像文件进行管理的服务。因此,Docker宿主物理服务器可以从Docker Registry服务器上获取Docker运行环境关联的初始脚本文件,如build.file脚本文件。
进一步地,Docker宿主物理服务从Docker Registry服务器上获取的初始脚本文件build.file时,可以获取其对应的第一MD5值(Message Digest Algorithm,消息摘要算法第五版)。此外,Docker宿主物理服务可以根据获取到的初始脚本文件build.file生成第二MD5值。当确定第一MD5值和第二MD5值相同时,则可以确定初始脚本文件从Docker Registry服务器到Docker宿主物理服务的传输过程是安全的。
其中,初始脚本文件build.file包含以下中的部分或全部:Docker启动时需要配置的环境变量、操作系统镜像、启动后执行的指令、IP地址、端口号、存储资源。
具体地,Docker宿主物理服务器可以包含多个容器,每个容器可以包含多个应用服务,例如,Apache(阿帕奇)、PHP5(Hypertext Preprocessor,超文本预处理器)以及MySQL(关系型数据库管理应用)等。针对一个容器,从本地服务器查询Docker运行环境中的该容器包含的多个服务关联的第一配置文件,如base.json配置文件。
其中,第一配置文件base.json包括以下中的部分或全部:每个容器对应的CPU使用率配置文件、每个容器对应的内存利用率、每个容器对应的磁盘利用率、每个容器对应的网络配置、Docker标识、Docker宿主物理服务器的标识。
步骤102:解析初始脚本文件,生成与Xen运行环境关联的磁盘文件,以及解析第一配置文件,生成与Xen运行环境中容器关联的第二配置文件。
具体地,Docker宿主物理服务器根据初始脚本文件build.file,获取Docker操作系统的标识,例如UNIX(尤尼斯)操作系统。以及确定生成Xen虚拟服务器磁盘的流程信息;将生成Xen虚拟服务器磁盘的流程信息和Docker操作系统的标识作为磁盘文件,如qemu.sh磁盘文件,以使Xen宿主物理服务器执行磁盘文件qemu.sh。
具体地,Docker宿主物理服务器通过第一解析器如本地解析器将第一配置文件base.json读入内存中,并解析为内存对象,如java对象。根据内存对象生成可扩展标记语言XML文件,如libvert.xml,将XML文件libvert.xml作为第二配置文件。
步骤103:将磁盘文件和第二配置文件发送至Xen宿主物理服务器,以使Xen宿主物理服务器根据磁盘文件和第二配置文件生成Xen虚拟服务器。
进一步地,Docker宿主物理服务器可以根据磁盘文件qemu.sh和第二配置文件libvert.xml生成第三MD5值文件,如vm.md5。并将磁盘文件qemu.sh、第二配置文件libvert.xml及第三MD5值文件vm.md5发送至Xen宿主物理服务器。以使Xen宿主物理服务器根据第三MD5值校验磁盘文件和第二配置文件,并生成Xen虚拟服务器。
本发明实施例提供了一种应用容器迁移的方法,获取与Docker运行环境关联的初始脚本文件以及与所述Docker运行环境中每个容器关联的第一配置文件;解析所述初始脚本文件,生成与Xen运行环境关联的磁盘文件,以及解析所述第一配置文件,生成与Xen运行环境中所述容器关联的第二配置文件;将所述磁盘文件和所述第二配置文件发送至Xen宿主物理服务器,以使所述Xen宿主物理服务器根据所述磁盘文件和所述第二配置文件生成Xen虚拟服务器。本发明实施例提供的应用容器迁移的方法,能够实现将Docker中应用迁移到Xen,提高应用环境的隔离性能和稳定性能。
基于同样的发明构思,本发明实施例提供另一种应用容器迁移的方法,对应的执行主体为Xen宿主物理服务器。如图2所示,为本发明实施例提供的另一种应用容器迁移的方法流程示意图,包括:
步骤201:接收磁盘文件和第二配置文件,其中磁盘文件是根据Docker运行环境关联的初始脚本文件解析生成,第二配置文件是根据Docker运行环境中每个容器关联的第一配置文件解析生成。
其中,初始脚本文件可以为build.file文件,第一配置文件可以为base.json文件;磁盘文件可以为qemu.sh文件,第二配置文件可以为libvert.xml文件。
具体地,步骤201中Xen宿主物理服务器还可以接收第三MD5值文件vm.md5,其中第三MD5值由Docker宿主物理服务器根据磁盘文件qemu.sh和第二配置文件libvert.xml生成;此外,Xen宿主物理服务器根据接收到的磁盘文件qemu.sh和第二配置文件libvert.xml生成第四MD5值。当确定第三MD5值和第四MD5值相同时,则可以确定磁盘文件qemu.sh和第二配置文件libvert.xml从Docker宿主物理服务到Xen宿主物理服务器的传输过程是安全的。
步骤202:根据磁盘文件和第二配置文件,生成Xen虚拟服务器。
具体地,本步骤中Xen宿主物理服务器首先确定磁盘文件中的流程信息,并根据流程信息执行磁盘生成过程。在执行完磁盘生成过程后,加载第二配置文件,生成Xen虚拟服务器。
如图3为本发明实施例提供的一种生成磁盘的方法流程示意图,如图3所示,磁盘生成过程包括:
步骤301:根据磁盘文件中Docker操作系统的标识,获取Docker操作系统的镜像,并挂载Docker操作系统的镜像。
具体地,磁盘文件中Docker操作系统的标识,例如为UNIX,则Xen宿主物理服务器在缓存中查询是否存储UNIX操作系统的镜像。若缓存中存储了UNIX操作系统的镜像,则获取UNIX操作系统的镜像;若缓存中未存储UNIX操作系统的镜像,则读取Xen镜像服务器中的UNIX操作系统的镜像;然后Xen宿主物理服务器挂载UNIX操作系统的镜像。
进一步地,在步骤301中,还可以获取Docker的标识,并将所述Docker的标识作为建立Xen虚拟机的文件夹的名称。
步骤302:在挂载的Docker操作系统的镜像上初始化初始脚本文件的环境信息。
具体地,在挂在UNIX操作系统的镜像上初始化初始脚本文件build.file的环境信息,即Docker启动时需要配置的环境变量信息。
步骤303:通过第二解析器将确定初始化的环境信息解析成壳Shell文件,在确认生成Shell文件后卸载Docker操作系统的镜像。
具体地,通过第二解析器如命令解析器将确定初始化的环境信息解析成Shell文件,Shell可以接收用户命令,并调用相应的应用程序。在确认生成Shell文件后,卸载UNIX操作系统的镜像。
进一步地,上述磁盘生成过程可以通过QEMU(虚拟操作系统模拟器)执行。在执行完磁盘生成过程后,通过加载第二配置文件libvert.xml,即可以启动生成的Xen虚拟服务器。从而完成了将Docker宿主物理服务器中容器中的应用服务如Apache、PHP5、MySQL等迁移到Xen虚拟服务器的过程,使得这些应用可以直接运行在生成的Xen虚拟服务器中。
基于同样的发明构思,本发明实施例还提供一种应用容器迁移的装置,如图4所示,对应的实体装置为Docker宿主物理服务器。为本发明实施例提供的一种应用容器迁移的装置结构示意图,包括:
获取单元401:用于获取与Docker运行环境关联的初始脚本文件以及与所述Docker运行环境中每个容器关联的第一配置文件;
解析单元402:用于解析所述初始脚本文件,生成与Xen运行环境关联的磁盘文件,以及解析所述第一配置文件,生成与Xen运行环境中所述容器关联的第二配置文件;
发送单元403:用于将所述磁盘文件和所述第二配置文件发送至Xen宿主物理服务器,以使所述Xen宿主物理服务器根据所述磁盘文件和所述第二配置文件生成Xen虚拟服务器。
可选的,所述获取单元401还用于:
从Docker Registry服务器上获取Docker运行环境关联的初始脚本文件;
获取与所述Docker运行环境中每个容器关联的第一配置文件,包括:
从Docker宿主物理服务器查询所述Docker运行环境中的多个服务关联的第一配置文件。
可选的,所述获取单元401,还用于:
确定从所述Docker Registry服务器上获取的所述初始脚本文件对应的第一MD5值,与根据所述初始脚本文件生成的第二MD5值相同。
可选的,所述解析单元402,还用于:
根据所述初始脚本文件,获取Docker操作系统的标识,以及确定生成Xen虚拟服务器磁盘的流程信息;
将所述生成Xen虚拟服务器磁盘的流程信息和所述Docker操作系统的标识作为所述磁盘文件,以使所述Xen宿主物理服务器执行所述磁盘文件。
可选的,所述第一配置文件包括以下中的部分或全部:
每个容器对应的CPU使用率配置文件、每个容器对应的内存利用率、每个容器对应的磁盘利用率、每个容器对应的网络配置;
所述解析单元402,还用于:
通过解析器将所述第一配置文件读入内存中,并解析为内存对象;
根据所述内存对象生成可扩展标记语言XML文件,将所述XML文件作为所述第二配置文件。
可选的,所述解析单元402,还用于:
根据所述磁盘文件和所述第二配置文件,生成第三MD5值;
将所述第三MD5值发送至所述Xen宿主物理服务器,以使Xen宿主物理服务器根据所述第三MD5值校验所述磁盘文件和所述第二配置文件。
本发明实施例提供了一种应用容器迁移的装置,获取与Docker运行环境关联的初始脚本文件以及与所述Docker运行环境中每个容器关联的第一配置文件;解析所述初始脚本文件,生成与Xen运行环境关联的磁盘文件,以及解析所述第一配置文件,生成与Xen运行环境中所述容器关联的第二配置文件;将所述磁盘文件和所述第二配置文件发送至Xen宿主物理服务器,以使所述Xen宿主物理服务器根据所述磁盘文件和所述第二配置文件生成Xen虚拟服务器。本发明实施例提供的应用容器迁移的装置,能够实现将Docker中应用迁移到Xen,提高应用环境的隔离性能和稳定性能。
基于同样的发明构思,本发明实施例还提供另一种应用容器迁移的装置,对应的实体装置为Xen宿主物理服务器。如图5所示,为本发明实施例提供的另一种应用容器迁移的装置结构示意图,包括:
接收单元501:用于接收磁盘文件和第二配置文件,其中所述磁盘文件是根据Docker运行环境关联的初始脚本文件解析生成,所述第二配置文件是根据Docker运行环境中每个容器关联的第一配置文件解析生成;
生成单元502:用于根据所述磁盘文件和所述第二配置文件,生成Xen虚拟服务器。
可选的,所述生成单元502,还用于:
确定所述磁盘文件中的流程信息,并根据所述流程信息执行磁盘生成过程;
在执行完磁盘生成过程后,加载所述第二配置文件,生成Xen虚拟服务器;
其中,磁盘生成过程为:
根据所述磁盘文件中Docker操作系统的标识,获取所述Docker操作系统的镜像,并挂载所述Docker操作系统的镜像;
在所述挂载的Docker操作系统的镜像上初始化所述初始脚本文件的环境信息;
通过第一解析器将所述确定初始化的环境信息解析成壳Shell文件,在确认生成所述Shell文件后卸载所述Docker操作系统的镜像。
可选的,所述生成单元502,还用于:
若所述缓存中存储了所述Docker操作系统的标识对应的Docker操作系统的镜像,则获取所述Docker操作系统的镜像;
若所述缓存中未存储所述Docker操作系统的标识对应的Docker操作系统的镜像,则读取Xen镜像服务器中的所述Docker操作系统的镜像。
可选的,所述接收单元501,还用于:
接收第三MD5值,其中所述第三MD5值由Docker宿主物理服务器根据所述磁盘文件和所述第二配置文件生成;
确定所述第三MD5值与根据所述磁盘文件和所述第二配置文件生成的第四MD5值相同。
本发明实施例提供了一种应用容器迁移的装置,接收磁盘文件和第二配置文件,其中所述磁盘文件是根据Docker运行环境关联的初始脚本文件解析生成,所述第二配置文件是根据Docker运行环境中每个容器关联的第一配置文件解析生成;根据所述磁盘文件和所述第二配置文件,生成Xen虚拟服务器。本发明实施例提供的应用容器迁移的装置,能够实现将Docker中应用迁移到Xen,提高应用环境的隔离性能和稳定性能。
下面通过实体结构对本发明实施例提供的应用容器迁移的装置进行详细说明。图6为本发明实施例提供的一种应用容器迁移的装置结构图,包括:DockerRegistry服务器601、Docker宿主物理服务器602、Xen宿主物理服务器603、Xen虚拟服务器604。
在本实施例中,Docker中的重要组件Docker Registry服务器601为Docker编写注册服务,提供了对Docker镜像文件进行管理的服务。因此,Docker宿主物理服务器602可以从Docker Registry服务器601上获取Docker运行环境关联的初始脚本文件,如build.file脚本文件。
进一步地,Docker宿主物理服务器602从Docker Registry服务器601上获取的初始脚本文件build.file时,可以获取其对应的第一MD5值(Message DigestAlgorithm,消息摘要算法第五版)。此外,Docker宿主物理服务可以根据获取到的初始脚本文件build.file生成第二MD5值。当确定第一MD5值和第二MD5值相同时,则可以确定初始脚本文件从Docker Registry服务器601到Docker宿主物理服务的传输过程是安全的。
具体地,Docker宿主物理服务器602可以包含多个容器,每个容器可以包含多个应用服务,例如,Apache(阿帕奇)、PHP5(Hypertext Preprocessor,超文本预处理器)以及MySQL(关系型数据库管理应用)等。针对一个容器,Docker宿主物理服务器602从本地查询Docker运行环境中的该容器包含的多个服务关联的第一配置文件,如base.json配置文件。
具体地,Docker宿主物理服务器602解析初始脚本文件build.file,生成与Xen运行环境关联的磁盘文件qemu.sh,以及解析第一配置文件base.json,生成与Xen运行环境中容器关联的第二配置文件libvert.xml,并将磁盘文件qemu.sh和第二配置文件libvert.xml发送给Xen宿主物理服务器603。在此不再赘述。
进一步地,Docker宿主物理服务器602还可以根据磁盘文件qemu.sh和第二配置文件libvert.xml生成第三MD5值,并将第三MD5值发送至Xen宿主物理服务器603。
具体地,Xen宿主物理服务器603接收磁盘文件qemu.sh、第二配置文件libvert.xml和第三MD5值。根据接收到的磁盘文件qemu.sh和第二配置文件libvert.xml生成第四MD5值。当确定第三MD5值和第四MD5值相同时,则可以确定磁盘文件qemu.sh和第二配置文件libvert.xml从Docker宿主物理服务到Xen宿主物理服务器的传输过程是安全的。
在本实实施例中,Xen宿主物理服务器603首先确定磁盘文件qemu.sh中的流程信息,并根据流程信息执行磁盘生成过程,在此不再赘述。在执行完磁盘生成过程后,加载第二配置文件libvert.xml,生成Xen虚拟服务器604。从而完成了将Docker宿主物理服务器602中容器中的应用服务如Apache、PHP5、MySQL等迁移到Xen虚拟服务器604的过程,使得这些应用可以直接运行在生成的Xen虚拟服务器604中。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的系统。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令系统的制造品,该指令系统实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (20)

1.一种应用容器迁移的方法,其特征在于,包括:
获取与Docker运行环境关联的初始脚本文件以及与所述Docker运行环境中每个容器关联的第一配置文件;
解析所述初始脚本文件,生成与Xen运行环境关联的磁盘文件,以及解析所述第一配置文件,生成与Xen运行环境中所述容器关联的第二配置文件;
将所述磁盘文件和所述第二配置文件发送至Xen宿主物理服务器,以使所述Xen宿主物理服务器根据所述磁盘文件和所述第二配置文件生成Xen虚拟服务器。
2.如权利要求1所述的方法,其特征在于,所述获取与Docker运行环境关联的初始脚本文件,包括:
从Docker Registry服务器上获取Docker运行环境关联的初始脚本文件;
获取与所述Docker运行环境中每个容器关联的第一配置文件,包括:
从Docker宿主物理服务器查询所述Docker运行环境中的多个服务关联的第一配置文件。
3.如权利要求2所述的方法,其特征在于,所述从Docker Registry服务器上获取Docker运行环境关联的初始脚本文件之后,生成与Xen运行环境关联的磁盘文件之前,还包括:
确定从所述Docker Registry服务器上获取的所述初始脚本文件对应的第一消息摘要算法第五版MD5值,与根据所述初始脚本文件生成的第二MD5值相同。
4.如权利要求1所述的方法,其特征在于,所述解析所述初始脚本文件,生成与Xen运行环境关联的磁盘文件,包括:
根据所述初始脚本文件,获取Docker操作系统的标识,以及确定生成Xen虚拟服务器磁盘的流程信息;
将所述生成Xen虚拟服务器磁盘的流程信息和所述Docker操作系统的标识作为所述磁盘文件,以使所述Xen宿主物理服务器执行所述磁盘文件。
5.如权利要求1所述的方法,其特征在于,所述第一配置文件包括以下中的部分或全部:
每个容器对应的中央处理器CPU使用率配置文件、每个容器对应的内存利用率、每个容器对应的磁盘利用率、每个容器对应的网络配置;
所述解析所述第一配置文件,生成与Xen运行环境中所述容器关联的第二配置文件,包括:
通过第一解析器将所述第一配置文件读入内存中,并解析为内存对象;
根据所述内存对象生成可扩展标记语言XML文件,将所述XML文件作为所述第二配置文件。
6.如权利要求1所述的方法,其特征在于,所述解析所述初始脚本文件,生成与Xen运行环境关联的磁盘文件,解析所述第一配置文件,生成与Xen运行环境中所述容器关联的第二配置文件之后,还包括:
根据所述磁盘文件和所述第二配置文件,生成第三MD5值;
将所述第三MD5值发送至所述Xen宿主物理服务器,以使Xen宿主物理服务器根据所述第三MD5值校验所述磁盘文件和所述第二配置文件。
7.一种应用容器迁移的方法,其特征在于,包括:
接收磁盘文件和第二配置文件,其中所述磁盘文件是根据Docker运行环境关联的初始脚本文件解析生成,所述第二配置文件是根据Docker运行环境中每个容器关联的第一配置文件解析生成;
根据所述磁盘文件和所述第二配置文件,生成Xen虚拟服务器。
8.如权利要求7所述的方法,其特征在于,所述根据所述磁盘文件和所述第二配置文件,生成Xen虚拟服务器,包括:
确定所述磁盘文件中的流程信息,并根据所述流程信息执行磁盘生成过程;
在执行完磁盘生成过程后,加载所述第二配置文件,生成Xen虚拟服务器;
其中,磁盘生成过程为:
根据所述磁盘文件中Docker操作系统的标识,获取所述Docker操作系统的镜像,并挂载所述Docker操作系统的镜像;
在所述挂载的Docker操作系统的镜像上初始化所述初始脚本文件的环境信息;
通过第二解析器将所述确定初始化的环境信息解析成壳Shell文件,在确认生成所述Shell文件后卸载所述Docker操作系统的镜像。
9.如权利要求8所述的方法,其特征在于,所述根据所述Docker操作系统的标识,获取所述Docker操作系统的镜像,并挂载所述Docker操作系统的镜像,包括:
若所述缓存中存储了所述Docker操作系统的标识对应的Docker操作系统的镜像,则获取所述Docker操作系统的镜像;
若所述缓存中未存储所述Docker操作系统的标识对应的Docker操作系统的镜像,则读取Xen镜像服务器中的所述Docker操作系统的镜像。
10.如权利要求7所述的方法,其特征在于,所述接收磁盘文件和第二配置文件之后,还包括:
接收第三MD5值,其中所述第三MD5值由Docker宿主物理服务器根据所述磁盘文件和所述第二配置文件生成;
确定所述第三MD5值与根据所述磁盘文件和所述第二配置文件生成的第四MD5值相同。
11.一种应用容器迁移的装置,其特征在于,包括:
获取单元:用于获取与Docker运行环境关联的初始脚本文件以及与所述Docker运行环境中每个容器关联的第一配置文件;
解析单元:用于解析所述初始脚本文件,生成与Xen运行环境关联的磁盘文件,以及解析所述第一配置文件,生成与Xen运行环境中所述容器关联的第二配置文件;
发送单元:用于将所述磁盘文件和所述第二配置文件发送至Xen宿主物理服务器,以使所述Xen宿主物理服务器根据所述磁盘文件和所述第二配置文件生成Xen虚拟服务器。
12.如权利要求11所述的装置,其特征在于,所述获取单元还用于:
从Docker Registry服务器上获取Docker运行环境关联的初始脚本文件;
获取与所述Docker运行环境中每个容器关联的第一配置文件,包括:
从Docker宿主物理服务器查询所述Docker运行环境中的多个服务关联的第一配置文件。
13.如权利要求12所述的装置,其特征在于,所述获取单元,还用于:
确定从所述Docker Registry服务器上获取的所述初始脚本文件对应的第一MD5值,与根据所述初始脚本文件生成的第二MD5值相同。
14.如权利要求11所述的装置,其特征在于,所述解析单元,还用于:
根据所述初始脚本文件,获取Docker操作系统的标识,以及确定生成Xen虚拟服务器磁盘的流程信息;
将所述生成Xen虚拟服务器磁盘的流程信息和所述Docker操作系统的标识作为所述磁盘文件,以使所述Xen宿主物理服务器执行所述磁盘文件。
15.如权利要求11所述的装置,其特征在于,所述第一配置文件包括以下中的部分或全部:
每个容器对应的CPU使用率配置文件、每个容器对应的内存利用率、每个容器对应的磁盘利用率、每个容器对应的网络配置;
所述解析单元,还用于:
通过第一解析器将所述第一配置文件读入内存中,并解析为内存对象;
根据所述内存对象生成可扩展标记语言XML文件,将所述XML文件作为所述第二配置文件。
16.如权利要求11所述的装置,其特征在于,所述解析单元,还用于:
根据所述磁盘文件和所述第二配置文件,生成第三MD5值;
将所述第三MD5值发送至所述Xen宿主物理服务器,以使Xen宿主物理服务器根据所述第三MD5值校验所述磁盘文件和所述第二配置文件。
17.一种应用容器迁移的装置,其特征在于,包括:
接收单元:用于接收磁盘文件和第二配置文件,其中所述磁盘文件是根据Docker运行环境关联的初始脚本文件解析生成,所述第二配置文件是根据Docker运行环境中每个容器关联的第一配置文件解析生成;
生成单元:用于根据所述磁盘文件和所述第二配置文件,生成Xen虚拟服务器。
18.如权利要求17所述的装置,其特征在于,所述生成单元,还用于:
确定所述磁盘文件中的流程信息,并根据所述流程信息执行磁盘生成过程;
在执行完磁盘生成过程后,加载所述第二配置文件,生成Xen虚拟服务器;
其中,磁盘生成过程为:
根据所述磁盘文件中Docker操作系统的标识,获取所述Docker操作系统的镜像,并挂载所述Docker操作系统的镜像;
在所述挂载的Docker操作系统的镜像上初始化所述初始脚本文件的环境信息;
通过第二解析器将所述确定初始化的环境信息解析成壳Shell文件,在确认生成所述Shell文件后卸载所述Docker操作系统的镜像。
19.如权利要求18所述的装置,其特征在于,所述生成单元,还用于:
若所述缓存中存储了所述Docker操作系统的标识对应的Docker操作系统的镜像,则获取所述Docker操作系统的镜像;
若所述缓存中未存储所述Docker操作系统的标识对应的Docker操作系统的镜像,则读取Xen镜像服务器中的所述Docker操作系统的镜像。
20.如权利要求17所述的装置,其特征在于,所述接收单元,还用于:
接收第三MD5值,其中所述第三MD5值由Docker宿主物理服务器根据所述磁盘文件和所述第二配置文件生成;
确定所述第三MD5值与根据所述磁盘文件和所述第二配置文件生成的第四MD5值相同。
CN201511004698.5A 2015-12-28 2015-12-28 一种应用容器迁移的方法及装置 Active CN105955805B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201511004698.5A CN105955805B (zh) 2015-12-28 2015-12-28 一种应用容器迁移的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201511004698.5A CN105955805B (zh) 2015-12-28 2015-12-28 一种应用容器迁移的方法及装置

Publications (2)

Publication Number Publication Date
CN105955805A true CN105955805A (zh) 2016-09-21
CN105955805B CN105955805B (zh) 2019-01-22

Family

ID=56917141

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201511004698.5A Active CN105955805B (zh) 2015-12-28 2015-12-28 一种应用容器迁移的方法及装置

Country Status (1)

Country Link
CN (1) CN105955805B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106933508A (zh) * 2017-02-14 2017-07-07 深信服科技股份有限公司 应用容器的迁移方法及装置
CN107526626A (zh) * 2017-08-24 2017-12-29 武汉大学 一种基于CRIU的Docker容器热迁移方法及系统
CN108108229A (zh) * 2018-01-05 2018-06-01 京东方科技集团股份有限公司 虚拟主机迁移系统、方法、计算机设备、可读存储介质
US9990228B1 (en) 2017-01-25 2018-06-05 Hewlett Packard Enterprise Development Lp Validating network parameters of a containerized application
CN108268304A (zh) * 2017-01-03 2018-07-10 中国科学院声学研究所 一种基于容器的Web app迁移方法
CN108762882A (zh) * 2018-04-02 2018-11-06 杭州朗和科技有限公司 一种Docker容器的迁移方法、迁移装置、介质和计算设备
CN109213498A (zh) * 2018-08-16 2019-01-15 郑州云海信息技术有限公司 一种互联网web前端的配置方法及服务器
CN111491040A (zh) * 2020-04-09 2020-08-04 北京城市网邻信息技术有限公司 一种ip分配方法以及ip分配装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080320269A1 (en) * 2007-06-21 2008-12-25 John Richard Houlihan Method and apparatus for ranking of target server partitions for virtual server mobility operations
CN101398770A (zh) * 2007-09-30 2009-04-01 赛门铁克公司 迁移一个或多个虚拟机的系统和方法
CN103620552A (zh) * 2011-06-29 2014-03-05 惠普发展公司,有限责任合伙企业 采用动态操作系统容器的应用迁移
CN103810422A (zh) * 2014-02-20 2014-05-21 东莞中国科学院云计算产业技术创新与育成中心 一种基于镜像智能管理的安全虚拟化隔离方法
CN105159694A (zh) * 2015-07-07 2015-12-16 深圳市深信服电子科技有限公司 操作系统共存方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080320269A1 (en) * 2007-06-21 2008-12-25 John Richard Houlihan Method and apparatus for ranking of target server partitions for virtual server mobility operations
CN101398770A (zh) * 2007-09-30 2009-04-01 赛门铁克公司 迁移一个或多个虚拟机的系统和方法
CN103620552A (zh) * 2011-06-29 2014-03-05 惠普发展公司,有限责任合伙企业 采用动态操作系统容器的应用迁移
CN103810422A (zh) * 2014-02-20 2014-05-21 东莞中国科学院云计算产业技术创新与育成中心 一种基于镜像智能管理的安全虚拟化隔离方法
CN105159694A (zh) * 2015-07-07 2015-12-16 深圳市深信服电子科技有限公司 操作系统共存方法及装置

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108268304B (zh) * 2017-01-03 2021-06-08 中国科学院声学研究所 一种基于容器的Web app迁移方法
CN108268304A (zh) * 2017-01-03 2018-07-10 中国科学院声学研究所 一种基于容器的Web app迁移方法
US9990228B1 (en) 2017-01-25 2018-06-05 Hewlett Packard Enterprise Development Lp Validating network parameters of a containerized application
CN106933508B (zh) * 2017-02-14 2020-05-12 深信服科技股份有限公司 应用容器的迁移方法及装置
CN106933508A (zh) * 2017-02-14 2017-07-07 深信服科技股份有限公司 应用容器的迁移方法及装置
CN107526626A (zh) * 2017-08-24 2017-12-29 武汉大学 一种基于CRIU的Docker容器热迁移方法及系统
CN107526626B (zh) * 2017-08-24 2020-12-01 武汉大学 一种基于CRIU的Docker容器热迁移方法及系统
US10831524B2 (en) 2018-01-05 2020-11-10 Boe Technology Group Co., Ltd. Virtual host migration system and method, computer apparatus and computer readable storage medium
CN108108229A (zh) * 2018-01-05 2018-06-01 京东方科技集团股份有限公司 虚拟主机迁移系统、方法、计算机设备、可读存储介质
CN108762882A (zh) * 2018-04-02 2018-11-06 杭州朗和科技有限公司 一种Docker容器的迁移方法、迁移装置、介质和计算设备
CN108762882B (zh) * 2018-04-02 2021-12-21 杭州朗和科技有限公司 一种Docker容器的迁移方法、迁移装置、介质和计算设备
CN109213498A (zh) * 2018-08-16 2019-01-15 郑州云海信息技术有限公司 一种互联网web前端的配置方法及服务器
CN111491040A (zh) * 2020-04-09 2020-08-04 北京城市网邻信息技术有限公司 一种ip分配方法以及ip分配装置
CN111491040B (zh) * 2020-04-09 2023-03-24 北京城市网邻信息技术有限公司 一种ip分配方法以及ip分配装置

Also Published As

Publication number Publication date
CN105955805B (zh) 2019-01-22

Similar Documents

Publication Publication Date Title
CN105955805A (zh) 一种应用容器迁移的方法及装置
US10216587B2 (en) Scalable fault tolerant support in a containerized environment
US10635406B2 (en) Determining the identity of software in software containers
US8799477B2 (en) Hypervisor selection for hosting a virtual machine image
Matthias et al. Docker: Up & Running: Shipping Reliable Containers in Production
US11042450B2 (en) Mechanism for managing container runtime state
Kumar et al. Economically efficient virtualization over cloud using docker containers
US11422797B1 (en) Using graph partitioning for software decomposition during modernization processes
US10108442B1 (en) Optimization and affinity for hypervisor-based just-in-time translator
US20120005663A1 (en) Dynamic determination of application server runtime classloading
US8825750B2 (en) Application server management system, application server management method, management apparatus, application server and computer program
WO2011126776A2 (en) Virtual application extension points
WO2013110187A1 (en) System and method to reduce memory usage by optimally placing vms in a virtualized data center
US9063760B2 (en) Employing native routines instead of emulated routines in an application being emulated
CN105659209B (zh) 在客户端设备上托管的云服务
US11886302B1 (en) System and method for execution of applications in a container
CN109800005A (zh) 一种客户端热更新方法及装置
US11593675B1 (en) Machine learning-based program analysis using synthetically generated labeled data
US20160224327A1 (en) Linking a Program with a Software Library
CN106598662B (zh) 基于android的应用加载方法及装置
US11704408B1 (en) Threat scanning transplanted containers
CN110083366A (zh) 应用运行环境的生成方法、装置、计算设备及存储介质
TWI517045B (zh) JAVA cluster application system code loading and upgrading devices and methods
US20200174754A1 (en) Command tool development
US20130081007A1 (en) Providing continuous application availability during application update

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant