一种基于aufs文件系统的热迁徙方法和系统与流程

文档序号:13736217阅读:258来源:国知局
一种基于aufs文件系统的热迁徙方法和系统与流程

本发明属于混合云的热迁徙领域,具体涉及一种在不同云环境之间基于aufs文件系统的热迁徙方法和系统。



背景技术:

云计算是通过计算机网络为用户提供了按需、灵活、可伸缩的计算和存储资源。随着云计算的发展,客户通过云端按需的访问应用程序和数据的形式成为越来越重要的计算和服务模式,越来越多的企业建立了自己的私有云。公有云为独立于企业公司的面向公众的云,而私有云为面向组织内部的云。混合云将两个或多个私有云或公有云进行组合而形成的基础设施,使数据和应用可以在云间方便的迁移以满足突发的访问量和数据安全等需求。混合云具有灵活性、兼顾安全与弹性的特点,是未来云计算系统部署的发展趋势。

为了消除系统软件和硬件的耦合,提高物理资源的利用率,虚拟化技术作为云计算的核心技术正在快速发展,虚拟化技术通过虚拟中间层截获虚拟操作系统对底层接口的调用,可以屏蔽底层计算机硬件的差异。

在云平台运营中,容器在线迁移技术将运行中的容器迁移到另一台主机上运行,同时保持服务不中断,可以实现资源调度、灾难备份、在线维护升级和节约电能,提供弹性、可扩展和高可用性等。例如在大规模云平台的运营中不可避免的存在需要升级或者维护宿主机的情况,如内核泄露或者硬件维护等,这些操作都需要对宿主机进行停机重启的操作,导致宿主机上的容器服务中断。容器在线迁移技术可以将容器透明的迁移到另一主机上运行,避免对容器服务造成的影响。容器在线迁移技术可以使管理者均衡系统负载、执行维护并且灵活的重新分配资源、提供了数据中心和集群的可管理性,有效的解决了高性能计算机环境对硬件平台的依赖性问题。

容器在线迁移技术需要考虑内存页和打开的设备状态、存储和网络连接的迁移。如果在同一个云环境中进行容器的迁移,各个物理机可以通过网络实现共享文件系统,容器迁移的时只需要迁移内存页和设备状态。然而,在多个云环境之间的容器迁移,如果使用共享存储则存在着性能和安全性的问题,因为网络延时会使现有的共享存储机制在多个云环境中不能提供高效的i/o性能。另外,不同的云环境实现共享存储,必然会依赖外部的存储设备,这样则会降低云环境的安全性,同时会给管理带来不便。因此如何在多个云环境中文件系统的迁移问题迫在眉睫。

现有的容器对内存页的在线迁移主要使用checkpoint/restore方法,即在源节点冻结容器进程,获取内存页的内容,保存成文件,然后传输到目的节点,在目的节点创建容器进程,利用传输过来的内存页内容恢复容器运行。当容器的文件系统进行迁移时,需要将文件系统全部从源节点拷贝到目的节点。一次性拷贝全部的文件系统,网络传输数据量大,容器停机时间长,严重影响混合云的工作效率。



技术实现要素:

本发明提供一种基于aufs文件系统的热迁徙方法和系统,针对docker容器使用的aufs文件系统,分别在不同云环境的源端和目的端首先建立镜像仓库,逐层检测源节点容器使用的文件系统,当目的节点具有该层的标识符时,则从镜像仓库中取出该层镜像,直到目的节点不存在于目的端的仓库或者遇到可写层。本发明通过分层检测传输文件系统,可以在减少传输数据量的同时也能够极大地减少容器的停机时间。

附图说明

图1为本发明中基于aufs文件系统的热迁徙方法的流程图;

图2为本发明中基于aufs文件系统的热迁徙方法的系统框架图;

图3为本发明中一实施例的迁徙过程。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

本发明提供一种基于aufs文件系统的热迁徙方法,如图1所示,包括以下步骤:s1:分别在不同云环境的的源端和目的端建立镜像仓库,s2:在容器中逐层传送该层的标识符到目的端;s3:目的端收到源端的标识符后,检测该层是否存在于镜像仓库,如果存在进入步骤s4,如果不存在,进入步骤s5;s4:从镜像仓库中取出该层镜像,进入步骤s2;s5:冻结容器进程,获取容器的内存页,然后将内存页和可写层的内容传输到目的端,在目的端恢复容器运行。

本发明提供一种基于aufs文件系统的热迁徙系统,包括:不同云环境的源节点和目标节点,源节点中的文件系统迁移模块,文件识别模块和传输模块,在目的节点中的文件系统迁移模块,文件系统模块,镜像仓库模块和传输模块;文件识别模块接收源节点的文件系统迁移模块传送的容器标识符,分析处理容器启动时候使用的镜像文件,获取容器中该层的标识符;文件系统模块接收目的节点中的文件系统迁移模块的命令,从镜像仓库模块获取镜像拼装系统文件。传输模块负责所述源节点与所述目的节点之间的数据传送。

本发明一实施例的迁移过程图3所示,热迁徙系统在进行文件系统的迁徙时,源节点中的文件系统迁移模块向文件识别模块发送容器标识符,文件识别模块收到容器标识符后,识别该容器启动时使用的镜像文件,从容器的最底层开始,获取每层的标志符,并将其返回给文件系统迁移模块,文件迁移模块将标识符传送给目的节点。目的节点接收到标识符后,检测该层是否存在于镜像仓库,如果存在,则从镜像仓库直接获取该层镜像,如果不存在,则从源节点传送从该层开始之后的所有文件至目的节点。

本发明的一实施例为,docker容器使用aufs文件系统维护容器运行的文件系统,采用树状结构。不同的容器的文件系统可能包含很大一部分相同的层次,例如一个webserver容器和一个mysql容器底层都是使用的ubuntu的文件系统,所以在组织镜像方面,采用树状结构对文件进行复用。docker本身对相同的层都在json中指定了一个唯一的标识符,针对docker容器使用的aufs文件系统,在源端和目的端首先分别建立镜像仓库,维护一个映射,记录本台机器所拥有的镜像层标识符。在迁移开始后,源端自下而上的逐层检测源节点容器使用的文件系统,对底层的只读层,源端和目的端进行协商,检查目的端是否拥有该层镜像,这个过程中,使用的是镜像层的标识符。目的端收到源端的标识符后,检测该层是否存在于镜像仓库,如果存在,则从镜像仓库中取出该层镜像,迭代这个过程,直到该层不存在于目的端的仓库或者遇到可写层。然后利用c/r方法,冻结容器进程,获取容器的内存页,然后将内存页和可写层的内容传输到目的端,在目的端恢复容器运行。

本发明利用aufs文件系统的层次特点,减少文件系统跨域迁移时传输的数据量,在目的节点,根据源节点传送的标识符从镜像仓库获取相应层的镜像,最后与源节点发送来的可写层数据共同组成目的节点容器依赖的文件系统。本发明解决了跨域容器热迁移时文件系统数据量大,停机时间长的问题,极大提高了混合云的工作效率。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1