本发明涉及容器级虚拟化技术领域,具体涉及一种针对docker的跨节点热迁移方法。
背景技术:
近年来,docker容器持续火热,使人们对云服务模式产生了新的思考,容器将给云带来更轻便,更灵活,更密集的服务能力。不同于虚拟机,容器通过共享主机内核可以弹性分配计算资源,进一步提高了资源利用率,在操作系统的角度来看,容器就相当于一个个的进程组在其中运行,而正是容器与内核这种密切的关联对容器的热迁移技术提出了挑战,迁移过程中的状态信息及资源都分散在操作系统甚至内核之中,容器的热迁移也就变的更加复杂,但在云服务均衡调度的需求下,容器的热迁移技术亟待解决。
技术实现要素:
本发明要解决的技术问题是提供一种针对docker的跨节点热迁移方法,可以在不中断容器内部状态的情况下,对其进行用户无感知的跨节点热迁移。
为了解决所述技术问题,本发明采用的技术方案是:一种针对docker的跨节点热迁移方法,包括以下步骤:
s01)、预检查,首先验证检查的可行性,然后保存容器基础状态文件,并将容器基础状态文件保存到目的主机,所述容器基础状态文件包括容器静态配置文件和容器根文件系统;
s02)、预恢复,首先验证恢复的可行性,然后根据容器静态配置文件创建新容器;
s03)、检查,首先保存容器进程运行状态,然后增量备份根文件系统,之后将根文件同步到目的主机;
s04)、恢复,包括恢复容器根文件系统、libnetwork恢复网络、volumedriver恢复数据卷和恢复容器进程。
进一步的,步骤s01和步骤s03在主机a进行,步骤s02和步骤s04在主机b进行,本方法实现主机a至主机b的跨节点热迁移。
进一步的,步骤s03中的容器进程运行状态包括普通迁移和迭代迁移。
进一步的,步骤s03中,进行增强备份根文件系统的同时进行进程dump镜像。
进一步的,步骤s01和步骤s03中,通过复制和分享的方式将文件同步至目的主机。
进一步的,步骤s01至步骤s04的操作中,均由客户端进入该步骤的api,进入api以后的进程均由docker守护。
进一步的,步骤s02创建的新容器处于停止状态,步骤s04恢复的新容器处于运行状态。
本发明的有益效果:本发明实现了对docker的跨节点热迁移,在不中断容器内部状态的情况下,对其进行用户无感知的跨节点热迁移。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。
图1为本方法的流程图;
图2为预检查的流程图;
图3为预恢复的流程图;
图4为检查的流程图;
图5为恢复的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本实施例公开一种针对docker的跨节点热迁移方法,如图1所示,包括以下步骤:
s01)、预检查
如图2所示,本步骤首先验证检查的可行性,然后保存容器基础状态文件,并将容器基础状态文件保存到目的主机,所述容器基础状态文件包括容器静态配置文件和容器根文件系统;
s02)、预恢复
如图3所示,本步骤首先验证恢复的可行性,然后根据容器静态配置文件创建新容器;
s03)、检查
如图4所示,本步骤首先保存容器进程运行状态,然后增量备份根文件系统,之后将根文件同步到目的主机;
s04)、恢复
如图5所示,本步骤包括恢复容器根文件系统、libnetwork恢复网络、volumedriver恢复数据卷和恢复容器进程。
本实施例中,步骤s01和步骤s03在主机a进行,步骤s02和步骤s04在主机b进行,本方法实现主机a至主机b的跨节点热迁移,即主机b就是目的主机。
本实施例中,步骤s03中的容器进程运行状态包括普通迁移和迭代迁移。
本实施例中,步骤s03中,进行增强备份根文件系统的同时进行进程dump镜像。
本实施例中,步骤s01和步骤s03中,通过复制和分享的方式将文件同步至目的主机。
本实施例中,步骤s01至步骤s04的操作中,均由客户端进入该步骤的api,进入api以后的进程均由docker守护。
本实施例中,步骤s02创建的新容器处于停止状态,步骤s04恢复的新容器处于运行状态。
本实施例所述方法实现了对docker的跨节点热迁移,在不中断容器内部状态的情况下,对其进行用户无感知的跨节点热迁移。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
1.一种针对docker的跨节点热迁移方法,其特征在于:包括以下步骤:
s01)、预检查,首先验证检查的可行性,然后保存容器基础状态文件,并将容器基础状态文件保存到目的主机,所述容器基础状态文件包括容器静态配置文件和容器根文件系统;
s02)、预恢复,首先验证恢复的可行性,然后根据容器静态配置文件创建新容器;
s03)、检查,首先保存容器进程运行状态,然后增量备份根文件系统,之后将根文件同步到目的主机;
s04)、恢复,包括恢复容器根文件系统、libnetwork恢复网络、volumedriver恢复数据卷和恢复容器进程。
2.根据权利要求1所述的针对docker的跨节点热迁移方法,其特征在于:步骤s01和步骤s03在主机a进行,步骤s02和步骤s04在主机b进行,本方法实现主机a至主机b的跨节点热迁移。
3.根据权利要求1所述的针对docker的跨节点热迁移方法,其特征在于:步骤s03中的容器进程运行状态包括普通迁移和迭代迁移。
4.根据权利要求1所述的针对docker的跨节点热迁移方法,其特征在于:步骤s03中,进行增强备份根文件系统的同时进行进程dump镜像。
5.根据权利要求1所述的针对docker的跨节点热迁移方法,其特征在于:步骤s01和步骤s03中,通过复制和分享的方式将文件同步至目的主机。
6.根据权利要求1所述的针对docker的跨节点热迁移方法,其特征在于:步骤s01至步骤s04的操作中,均由客户端进入该步骤的api,进入api以后的进程均由docker守护。
7.根据权利要求1所述的针对docker的跨节点热迁移方法,其特征在于:步骤s02创建的新容器处于停止状态,步骤s04恢复的新容器处于运行状态。