一种虚拟机磁盘数据块同步方法与流程

文档序号:12176613阅读:1603来源:国知局
一种虚拟机磁盘数据块同步方法与流程

本发明属于计算机技术领域,更具体地说,尤其涉及一种虚拟机磁盘数据块同步方法。



背景技术:

随着基于标准x86平台的虚拟化应用广泛普及,对于虚拟化的高可用(HA)方案的需求强烈,当前主流的解决方案是基于传统的共享存储方案而来,如采用存储区域网络(SAN)、网络附加存储(NAS)、分布式文件存储系统等。然而对于中小企业或一般性能要求的关键应用场合,这种方案存在明显不足。具体问题如下:

1.SAN/NAS存储系统成本太高、关键设备如光纤交换机、HBA板卡完全依赖进口。系统安装调试与日常维护复杂。

2.分布式文件系统从概念逻辑上就非常复杂,不同的分布式文件系统概念、算法、架构都有所不同,仅有少数的专业技术人才才能掌握;优点是扩展非常容易,成本低,适合互联网领域、大型企业、政府等大规模数据中心等应用场合。缺点系统结构复杂、物理部署拓扑结构复杂、需要更多的主机、交换机、专用网络。系统异常难以排查,维护工程师要求非常专业,由于开源的分布式存储软件系统达不到商业应用的稳定性,因此需要一定的定制开发才能满足企业需求,不适合中小企业关键应用场合。

基于当前市场上常见的共享存储系统和分布式存储系统的应用局限性,本发明提供一种基于虚拟化(Hypervisor)平台的虚拟机磁盘数据块同步方法(简称“虚拟数据块同步vBlockSync”),特别适合于中小企业的关键应用场合。



技术实现要素:

本发明的目的是为了解决现有技术中存在的缺点,而提出的一种虚拟机磁盘数据块同步方法。

为实现上述目的,本发明提供如下技术方案:

一种虚拟机磁盘数据块同步方法,包括如下具体步骤:

S1、虚拟机被定义为高可用模式时,虚拟化管理平台会在不同主机上生成两个配置完全一致的虚拟机,其中一台为primary,一台为secondary;虚拟机在启动过程中,标识为primary的虚拟机处于running状态,标识为secondary的虚拟机处于paused状态,等待数据同步;

S2、心跳系统网络侦测隶属在不同主机上的虚拟机运行状态,若primary失效,通知虚拟化管理平台及时将primary降级为secondary,并启用secondary为primary继续对外提供服务;

S3、虚拟化管理平台启动虚拟机时,首先运行SyncSuit同步组件,SyncSuit同步组件在虚拟机整个运行周期中处于运行状态。

S4、经过SyncSuit同步组件的静态同步模块、delta同步模块、动态同步模块同步后,虚拟化磁盘数据完全一致。

优选的,所述SyncSuit同步组件,包括:

组件初始化层,负责设置SyncSuit同步组件的初始化所需参数设置、缓存区建立、初始化各功能模块,若虚拟机为Primary,则建立tcp侦听端口,若为secondary则建立到Primary的同步tcp链接;

同步策略层,根据secondary虚拟机的虚拟化磁盘状态调用不同的功能模块执行对应同步功能模块;

功能模块层,所述功能模块层包括静态同步模块、delta同步模块、动态同步模块、读同步模块;

网络传输层,负责数据的网络传输,同时提中断检测、中断重连,使用tcp协议。

优选的,所述静态同步模块在虚拟机启动前,基于虚拟机配置文件,使用rsync同步所有虚拟化磁盘,同步虚拟化磁盘时rsync软件需要启用checksum参数检查。

优选的,所述delta同步模块在模块初始时为每个虚拟化磁盘生成bitmap数据文件,每个bit表示512Byte磁盘块,初始所有bit位值为’0’,若有’write’操作则置’1’;考虑效率问题,建议支持单块虚拟化磁盘容量不超过2T。

优选的,所述动态同步模块为primary虚拟机在写数据到磁盘时,Hypervisor同步插件先将数据块写入本地并更新bitmap文件数据,再发送给secondary虚拟机;若secondary写入失败,则意味着磁盘数据不一致,同步策略层须执行delta同步模块。

优选的,所述读同步模块:primary在读磁盘数据时,SyncSuit同步组件先读取primary数据并生成checksum,SyncSuit同步插件获取secondary的对应数据块的checksum,若不匹配,则需要执行静态同步模块后再执行动态同步模块。

本发明的技术效果和优点:本发明具有如下优点:

1、仅须修改虚拟化(Hypervisor)平台的block层;

2、能够支持所有虚拟化(Hypervisor)平台支持的操作系统;

3、配置、维护简单。

本发明须修改Hypervisor(qemu)的Block层,加入SyncSuit同步组件;本发明须使用开源的rsync软件(配置为daemon模式)作为静态虚拟化磁盘同步工具。

附图说明

图1为本发明的虚拟化管理平台拓扑结构图;

图2为本发明的SyncSuit同步组件架构图;

图3为本发明的静态磁盘同步流程图;

图4为本发明的虚拟化磁盘的bitmap图

图5为本发明的动态同步流程图;

图6为本发明的delta同步流程图;

图7为本发明的读同步流程图;

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合具体实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提供如图1所示的一种虚拟机磁盘数据块同步方法,包括如下具体步骤:

S1、虚拟机被定义为高可用模式时,虚拟化管理平台会在不同主机上生成两个配置完全一致的虚拟机,其中一台为primary,一台为secondary;虚拟机在启动过程中,标识为primary的虚拟机处于running状态,标识为secondary的虚拟机处于paused状态,等待数据同步;

S2、心跳系统网络侦测隶属在不同主机上的虚拟机运行状态,若primary失效,通知虚拟化管理平台及时将primary降级为secondary,并启用secondary为primary继续对外提供服务;

S3、虚拟化管理平台启动虚拟机时,首先运行SyncSuit同步组件,SyncSuit同步组件在虚拟机整个运行周期中处于运行状态。

S4、经过SyncSuit同步组件的静态同步模块、delta同步模块、动态同步模块同步后,虚拟化磁盘数据完全一致。

本发明提供如图2所示的同步组件架构图,所述SyncSuit同步组件包括:

组件初始化层,负责设置SyncSuit同步组件的初始化所需参数设置、缓存区建立、初始化各功能模块,若虚拟机为Primary,则建立tcp侦听端口,若为secondary则建立到Primary的同步tcp链接;

同步策略层,根据secondary虚拟机的虚拟化磁盘状态调用不同的功能模块执行对应同步功能模块;

功能模块层,所述功能模块层包括静态同步模块、delta同步模块、动态同步模块、读同步模块;

网络传输层,负责数据的网络传输,同时提供中断检测、中断重连,使用tcp协议。

如图3所示,所述静态同步模块在虚拟机启动前,基于虚拟机配置文件,使用rsync同步所有虚拟化磁盘,同步虚拟化磁盘时rsync软件需要启用checksum参数检查。

如图4-5所示,所述delta同步模块在模块初始时为每个虚拟化磁盘生成bitmap数据文件,每个bit表示512Byte磁盘块,初始所有bit位值为’0’,若有’write’操作则置’1’;考虑效率问题,建议支持单块虚拟化磁盘容量不超过2T。

Bitmap数据文件格式说明如表1所示

表1为字段说明

1)在secondary计算机节点掉线或者宕机、崩溃后重新上线,加入primary/secondary模式时,比对bitmap文件,若bitmap文件为同一次运行,则虚拟机仅同步primary/secondary的bitmap对应磁盘数据块的差异部分,而无需同步全盘。

2)若secondary同步时bitmap与primary不是同一次运行;

(1)重置bitmap。

(2)执行静态同步模块。

(3)同步bitmap的对应的数据。

如图6所示,所述动态同步模块为primary虚拟机在写数据到磁盘时,Hypervisor同步插件先将数据块写入本地并更新bitmap文件数据,再发送给secondary虚拟机;若secondary写入失败,则意味着磁盘数据不一致,同步策略层须执行delta同步模块。

如图7所示,所述读同步模块:primary在读磁盘数据时,SyncSuit同步组件先读取primary数据并生成checksum,SyncSuit同步插件获取secondary的对应数据块的checksum,若不匹配,则需要执行静态同步模块后再执行动态同步模块。

最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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