一种有状态容器在线迁移的方法和装置的制造方法

文档序号:9843975阅读:454来源:国知局
一种有状态容器在线迁移的方法和装置的制造方法
【技术领域】
[0001]本发明涉及计算机云计算技术领域,特别涉及一种有状态容器在线迀移的方法和
目.0
【背景技术】
[0002]随着Linux容器技术逐渐成熟,尤其是容器管理工具Docker的大放异彩,OpenShift、Cloud Foundry和百度云应用引擎等开始采用Docker容器作为安全执行云应用的沙盒。Amazon AWS、Google App Engine和Microsoft Azure也相继推出容器服务。
[0003]为了方便实现应用的弹性扩展,部署在云计算应用引擎上的应用通常都是无状态的,即这些应用的内存和文件系统只起缓存数据的作用,真正实现数据持久保存的是后端存储服务,包括数据库服务器、键-值存储服务和消息系统等。这些后端存储服务因此被称为有状态的云服务。
[0004]有状态容器是有数据存储功能的容器,可以保存数据。而无状态容器不能保存数据。把数据卷容器迀移是指把容器从一个宿主系统转移到另外一个宿主系统。无状态容器服务的迀移比较简单,甚至可以实现在线迀移。然而,现有云计算应用引擎都不支持有状态容器服务的迀移。

【发明内容】

[0005]本发明实施例提出了一种有状态容器在线迀移的方法和装置,用以实现有状态容器服务的在线迀移。
[0006]本发明实施例提供了一种有状态容器在线迀移的方法,包括如下步骤:
[0007]创建待迀移有状态容器数据卷的快照;
[0008]通过设置在第一物理主机节点上和第二物理主机节点上的虚拟路由器,建立跨物理主机的容器网络,将所述快照传输至所述第二物理主机节点;所述第一物理主机节点为待迀移有状态容器所在的主机节点;所述第二物理主机节点为所述待迀移有状态容器的目标主机;
[0009]确定所述快照创建开始之后新增的数据;
[0010]通过所述容器网络将所述新增的数据传输至所述第二物理主机节点;
[0011]将所述快照与所述新增的数据写入所述第二物理主机节点上新创建容器的数据卷中,重建有状态容器。
[0012]本发明实施例提供了一种有状态容器在线迀移的装置,包括:
[0013]快照创建单元,用于创建待迀移有状态容器数据卷的快照;
[0014]传输单元,用于通过设置在第一物理主机节点上和第二物理主机节点上的虚拟路由器,建立跨物理主机容器网络,将所述快照传输至所述第二物理主机节点;所述第一物理主机节点为待迀移有状态容器所在的主机节点;所述第二物理主机节点为所述待迀移有状态容器的目标主机;
[0015]数据确定单元,用于确定所述快照创建开始之后新增的数据;
[0016]所述传输单元进一步用于通过所述容器网络将所述新增的数据传输至所述第二物理主机节点;
[0017]数据写入单元,用于将所述快照与所述新增的数据写入所述第二物理主机节点上新创建容器的数据卷中,重建有状态容器。
[0018]本发明有益效果如下:
[0019]本发明实施例提供的一种有状态容器在线迀移的方法和装置,通过设置在待迀移有状态容器所在主机节点上及目标主机节点上的虚拟路由器,建立容器网络,传输待迀移有状态容器数据卷的快照至目标主机,确定快照创建开始后新增的数据后,传输新增的数据至目标主机,将快照与新增数据写入目标主机上新创建的容器的数据卷中,重建有状态容器,可以实现有状态容器的跨物理主机在线迀移。
【附图说明】
[0020]下面将参照附图描述本发明的具体实施例,
[0021]图1为本发明实施例中有状态容器在线迀移的方法流程示意图;
[0022]图2为本发明实施例中有状态容器数据卷在线迀移的流程示意图;
[0023]图3为本发明实施例中集群管理示意图;
[0024]图4为本发明实施例中集群时段分布示意图;
[0025]图5为本发明实施例中主节点状态转换示意图;
[0026]图6为本发明实施例中日志复制示意图;
[0027]图7为本发明实施例中OpenContrail系统框架图;
[0028]图8为本发明实施例中集群网络管理示意图;
[0029]图9为本发明实施例中资源调度示意图;
[0030]图10为本发明实施例中有状态容器在线迀移的装置结构示意图。
【具体实施方式】
[0031]为了使本发明的技术方案及优点更加清楚明白,以下结合附图对本发明的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本发明的一部分实施例,而不是所有实施例的穷举。并且在不冲突的情况下,本说明书中的实施例及实施例中的特征可以互相结合。
[0032]图1为本发明实施例中有状态容器在线迀移的方法流程示意图,如图1所示,有状态容器在线迀移的方法可以包括如下步骤:
[0033]步骤101:创建待迀移有状态容器数据卷的快照;
[0034]步骤102:通过设置在第一物理主机节点上和第二物理主机节点上的虚拟路由器,建立跨物理主机的容器网络,将所述快照传输至所述第二物理主机节点;所述第一物理主机节点为待迀移有状态容器所在的主机节点;所述第二物理主机节点为所述待迀移有状态容器的目标主机;
[0035]步骤103:确定所述快照创建开始之后新增的数据;
[0036]步骤104:通过所述容器网络将所述新增的数据传输至所述第二物理主机节点;
[0037]步骤105:将所述快照与所述新增的数据写入所述第二物理主机节点上新创建容器的数据卷中,重建有状态容器。
[0038]快照是对指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(拷贝开始的时间点)的映像。即,快照可以是其所表示的数据的一个副本,也可以是数据的一个复制品。快照的作用主要是能够进行在线数据备份与恢复。当存储设备发生应用故障或者文件损坏时可以进行快速的数据恢复,将数据恢复某个可用的时间点的状态。快照的另一个作用是为存储用户提供了另外一个数据访问通道,当原数据进行在线应用处理时,用户可以访问快照数据,还可以利用快照进行测试等工作。
[0039]确定所述快照创建开始之后新增的数据,具体实施中,可以是确定所述快照传输一完成就停止运行所述待迀移有状态容器,并确定从所述快照创建开始之后至所述待迀移有状态容器停止运行之前这段时间内的新增的数据;也可以是在确定所述快照创建开始后,令所述待迀移有状态容器继续运行一段时间后停止运行,确定从所述快照创建开始之后至所述待迀移有状态容器停止运行之前这段时间内的新增的数据。其中,所述待迀移有状态容器在确定所述快照创建开始后继续运行的时间可以由本领域技术人员根据实际情况确定,这里不做具体限定。
[0040]具体实施中,将所述快照与所述新增的数据写入所述第二物理主机节点上新创建容器的数据卷中,可以是将先传输完成的快照先写入所述第二物理主机节点上新创建容器的数据卷中,再将新增的数据写入所述第二物理主机节点上新创建容器的数据卷中;也可以是将所述快照和新增的数据合并一起写入所述第二物理主机节点上新创建容器的数据卷中;也可以是先将新增的数据写入所述第二物理主机节点上新创建容器的数据卷中,再将所述快照写入所述第二物理主机节点上新创建容器的数据卷中。具体所述快照和新增的数据的写入数据及是合并后写入所述第二物理主机节点上新创建容器的数据卷中,这里不做具体限定。
[0041]本发明实施例提供的一种有状态容器在线迀移的方法,通过设置在待迀移有状态容器所在主机节点上及目标主机节点上的虚拟路由器,建立跨物理主机的容器网络,传输待迀移有状态容器数据卷的快照至目标主机,确定快照创建开始后新增的数据后,传输新增的数据至目标主机,将快照与新增数据写入目标主机上新创建的容器的数据卷中,重建有状态容器,可以实现有状态容器的跨主机在线迀移。
[0042]实施中,创建待迀移有状态容器的数据卷的快照具体可以包括:
[0043]基于Btrfs系统创建待迀移有状态容器的数据卷的快照,所述容器的文件系统为Btrf s系统。
[0044]具体实施中,由于Btrfs系统良好的扩展性,B树和动态inode(informat1n node,信息节点/索引节点)创建等特性保证了Btrf s系统在大型机器上仍有卓越的表现,其整体性能而不会随着系统容量的增加而降低。且当系统面临不可预料的硬件故障时,Btrfs系统采用C0W(Copy On fcite,写时复制)技术可以保证文件系统的一致性。Btrfs系统还支持总和校验码,避免了无警报故障的出现。此外,Btrfs系统支持创建快照(snapshot)和克隆(clone),能够方便的管理多个物理设备。Btrfs系统还能够显著提高文件系统的时间/空间性能,包括延迟分配,小文件的存储优化,目录索引等。
[0045]所以,本发明实施例中可以选择Btrfs系统作为有状态容器所在物理主机存储数据的文件系统。图2为本发明实施例中有状态容器数据卷迀移的流程示意图,如图2所示,在从节点I上启动一个有状态的PostgresSQL数据库服务器容器之前,首先在与从节点I相连的存储池“/data”中创建一个“pg”目录,用于存储数
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1