基于动态缓冲的虚拟机磁盘复制过程写入方法及装置与流程

文档序号:16208103发布日期:2018-12-08 07:22阅读:227来源:国知局
基于动态缓冲的虚拟机磁盘复制过程写入方法及装置与流程

本公开涉及虚拟机磁盘操作领域,具体涉及基于动态缓冲的虚拟机磁盘复制过程写入方法及装置。

背景技术

虚拟机建立在虚拟化的平台之上,其中包括磁盘部分,在日常使用或者运维中,需要对一台正在运行的虚拟机磁盘进行数据备份,因为虚拟机正在运行无时无刻都有可能对磁盘进行写入数据,如果要对磁盘进行复制数据备份,那将会面临磁盘数据在复制过程中避免被写导致不一致性的问题。目前如果要对一个正在运行的虚拟机磁盘做复制,一种方法是把虚拟机关机进行复制,复制完成之后再开机,复制期间关机不能写入;另一种方法是暂停虚拟机对磁盘的所有写操作,等复制完成后再允许写入。目前两种办法在不同程度上都会影响虚拟机的服务质量,因为都要避免在复制期间有写入的操作,导致数据不一致性。



技术实现要素:

本公开的目的是针对现有技术的不足,对一个在运行中时刻有可能被写的磁盘进行复制时,引入一个动态缓冲区索引目录,根据写入操作所占用存储空间的实际情况新增缓冲区。

为了实现上述目的,本公开提供基于动态缓冲的虚拟机磁盘复制过程写入方法及装置,其中,所述方法包括以下步骤:

步骤1,在虚拟机磁盘复制操作开始时在物理机中建立动态缓冲区索引目录;

步骤2,虚拟机磁盘复制过程中接收到写操作请求时,查询动态缓冲区索引目录是否有可用的空闲存储空间的写缓冲区;

步骤3,动态缓冲区索引目录如果没有写缓冲区或者所有的写缓冲区的存储空间都已经写满,则创建一个新的写缓冲区并更新动态缓冲区索引目录;

步骤4,把对虚拟机磁盘的写入数据存入写缓冲区,并标记虚拟机磁盘中待写入数据的映射区域;写入数据到写缓冲区时如果写缓冲区的空间被写满则创建一个新的写缓冲区并更新动态缓冲区索引目录;

步骤5,在虚拟机磁盘复制操作结束时将写缓冲区的内容根据标记更新到虚拟机磁盘的映射区域;

步骤6,销毁写缓冲区并释放写缓冲区占用的物理机资源。

进一步地,在步骤1中,所述动态缓冲区索引目录包括写缓冲区的数量和各缓冲区的可用空闲存储空间大小,所述虚拟机建立在物理机的虚拟化的平台中,虚拟机至少包括一个虚拟机磁盘。

进一步地,在步骤1中,所述写缓冲区位于物理机中的内存或者磁盘,写缓冲区的容量大小为n*m,其中n为可更改设置的正整数,m为虚拟机磁盘的磁盘块大小。

进一步地,在步骤2中,所述写操作请求来自于业务逻辑层。

进一步地,在步骤4中,所述标记虚拟机磁盘中待写入数据的映射区域的方法为根据存入写缓冲区后写入数据的实际缓冲区空间占用大小标记虚拟机磁盘中相应大小的待写入数据区域作为映射区域,在磁盘复制结束前映射区域不再写入其它数据,所述写入数据为准备修改虚拟机磁盘数据或者新增数据,来自于业务逻辑层。

进一步地,在步骤5中,如果因写缓冲区的空间被写满被暂停写操作的情况下,则将写缓冲区的内容根据标记更新到虚拟机磁盘的映射区域并对虚拟机磁盘进行未完成的写操作。

本发明还提供了基于动态缓冲的虚拟机磁盘复制过程写入装置,所述装置包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序运行在以下装置的单元中:

动态缓冲目录建立单元,用于在虚拟机磁盘复制操作开始时在物理机中建立动态缓冲区索引目录;

目录查询单元,用于在虚拟机磁盘复制过程中接收到写操作请求时,查询动态缓冲区索引目录是否有可用空闲存储空间的写缓冲区;

缓冲区创建单元,用于在动态缓冲区索引目录如果没有写缓冲区或者所有的写缓冲区的存储空间都已经写满,则创建一个新的写缓冲区并更新动态缓冲区索引目录;

缓冲区写入单元,用于把对虚拟机磁盘的写入数据存入写缓冲区,并标记虚拟机磁盘中待写入数据的映射区域;写入数据到写缓冲区时如果写缓冲区的空间被写满则创建一个新的写缓冲区并更新动态缓冲区索引目录;

映射更新单元,用于在虚拟机磁盘复制操作结束时将写缓冲区的内容根据标记更新到虚拟机磁盘的映射区域,

缓冲释放单元,用于销毁写缓冲区并释放写缓冲区占用的物理机资源。

本公开的有益效果为:本发明在使用的磁盘进行复制可以对磁盘进行写入,通过加入动态缓冲区索引目录,可以保证写入数据过大时能够动态的增加缓冲区的大小,且能够实现数据备份或其它的虚拟机磁盘复制过程中的写入操作能够很好地保持数据一致性,而且频繁的写入操作不会影响虚拟机的服务质量。

附图说明

通过对结合附图所示出的实施方式进行详细说明,本公开的上述以及其他特征将更加明显,本公开附图中相同的参考标号表示相同或相似的元素,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,在附图中:

图1所示为本公开的基于动态缓冲的虚拟机磁盘复制过程逻辑图;

图2所示为本公开的基于动态缓冲的虚拟机磁盘复制过程写入方法的流程图;

图3所示为本公开的基于动态缓冲的虚拟机磁盘复制过程写入装置图。

具体实施方式

以下将结合实施例和附图对本公开的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本公开的目的、方案和效果。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。附图中各处使用的相同的附图标记指示相同或相似的部分。

如图1所示为本公开的基于动态缓冲的虚拟机磁盘复制过程逻辑图,图2所示为根据本公开的基于动态缓冲的虚拟机磁盘复制过程写入方法的流程图,下面结合图1、图2来阐述根据本公开的实施方式的基于动态缓冲的虚拟机磁盘复制过程写入方法。

本公开提出基于动态缓冲的虚拟机磁盘复制过程写入方法,具体包括以下步骤:

步骤1,在虚拟机磁盘复制操作开始时在物理机中建立动态缓冲区索引目录;

步骤2,虚拟机磁盘复制过程中接收到写操作请求时,查询动态缓冲区索引目录是否有可用的空闲存储空间的写缓冲区;

步骤3,动态缓冲区索引目录如果没有写缓冲区或者所有的写缓冲区的存储空间都已经写满,则创建一个新的写缓冲区并更新动态缓冲区索引目录;

步骤4,把对虚拟机磁盘的写入数据存入写缓冲区,并标记虚拟机磁盘中待写入数据的映射区域;写入数据到写缓冲区时如果写缓冲区的空间被写满则创建一个新的写缓冲区并更新动态缓冲区索引目录;

步骤5,在虚拟机磁盘复制操作结束时将写缓冲区的内容根据标记更新到虚拟机磁盘的映射区域;

步骤6,销毁写缓冲区并释放写缓冲区占用的物理机资源。

进一步地,在步骤1中,所述动态缓冲区索引目录包括写缓冲区的数量和各缓冲区的可用空闲存储空间大小,所述虚拟机建立在物理机的虚拟化的平台中,虚拟机至少包括一个虚拟机磁盘。

进一步地,在步骤1中,所述写缓冲区位于物理机中的内存或者磁盘,写缓冲区的容量大小为n*m,其中n为可更改设置的正整数,m为虚拟机磁盘的磁盘块大小,例如磁盘块大小为512kb,n设置为1000,则写缓冲区的容量为512kb*1000=512000千字节(kb)=500兆字节(mb)。

进一步地,在步骤2中,所述写操作请求来自于业务逻辑层。

进一步地,在步骤4中,所述标记虚拟机磁盘中待写入数据的映射区域的方法为根据存入写缓冲区后写入数据的实际缓冲区空间占用大小标记虚拟机磁盘中相应大小的待写入数据区域作为映射区域,在磁盘复制结束前映射区域不再写入其它数据,所述写入数据为准备修改虚拟机磁盘数据或者新增数据,来自于业务逻辑层。

进一步地,在步骤5中,如果因写缓冲区的空间被写满被暂停写操作的情况下,则将写缓冲区的内容根据标记更新到虚拟机磁盘的映射区域并对虚拟机磁盘进行未完成的写操作。

本公开的实施例提供的基于动态缓冲的虚拟机磁盘复制过程写入装置,如图3所示为本公开的基于动态缓冲的虚拟机磁盘复制过程写入装置图,该实施例的基于动态缓冲的虚拟机磁盘复制过程写入装置包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,例如写入程序。所述处理器执行所述计算机程序时实现上述各个写入方法实施例中的步骤。

所述装置包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序运行在以下装置的单元中:

动态缓冲目录建立单元,用于在虚拟机磁盘复制操作开始时在物理机中建立动态缓冲区索引目录;

目录查询单元,用于在虚拟机磁盘复制过程中接收到写操作请求时,查询动态缓冲区索引目录是否有可用空闲存储空间的写缓冲区;

缓冲区创建单元,用于在动态缓冲区索引目录如果没有写缓冲区或者所有的写缓冲区的存储空间都已经写满,则创建一个新的写缓冲区并更新动态缓冲区索引目录;

缓冲区写入单元,用于把对虚拟机磁盘的写入数据存入写缓冲区,并标记虚拟机磁盘中待写入数据的映射区域;写入数据到写缓冲区时如果写缓冲区的空间被写满则创建一个新的写缓冲区并更新动态缓冲区索引目录;

映射更新单元,用于在虚拟机磁盘复制操作结束时将写缓冲区的内容根据标记更新到虚拟机磁盘的映射区域,

缓冲释放单元,用于销毁写缓冲区并释放写缓冲区占用的物理机资源。

所述基于动态缓冲的虚拟机磁盘复制过程写入装置可以运行于桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备中。所述基于动态缓冲的虚拟机磁盘复制过程写入装置,可运行的装置可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述例子仅仅是基于动态缓冲的虚拟机磁盘复制过程写入装置的示例,并不构成对基于动态缓冲的虚拟机磁盘复制过程写入装置的限定,可以包括比例子更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述基于动态缓冲的虚拟机磁盘复制过程写入装置还可以包括输入输出设备、网络接入设备、总线等。

所称处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述基于动态缓冲的虚拟机磁盘复制过程写入装置运行装置的控制中心,利用各种接口和线路连接整个基于动态缓冲的虚拟机磁盘复制过程写入装置可运行装置的各个部分。

所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述基于动态缓冲的虚拟机磁盘复制过程写入装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

尽管本公开的描述已经相当详尽且特别对几个所述实施例进行了描述,但其并非旨在局限于任何这些细节或实施例或任何特殊实施例,而是应当将其视作是通过参考所附权利要求考虑到现有技术为这些权利要求提供广义的可能性解释,从而有效地涵盖本公开的预定范围。此外,上文以发明人可预见的实施例对本公开进行描述,其目的是为了提供有用的描述,而那些目前尚未预见的对本公开的非实质性改动仍可代表本公开的等效改动。

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