基于固定缓冲的虚拟机磁盘复制过程读取方法及装置与流程

文档序号:15998872发布日期:2018-11-20 19:11阅读:207来源:国知局

本公开涉及虚拟机磁盘操作领域,具体涉及基于固定缓冲的虚拟机磁盘复制过程读取方法及装置。



背景技术:

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



技术实现要素:

本公开的目的是针对现有技术的不足,对一个在运行中时刻有可能发生读操作的磁盘进行复制时,引入一个读写缓冲区域,同时当磁盘在复制的时候,发送读操作,会根据要读取的内容是否在处于被写的缓冲区域间,如果在则读取虚拟机磁盘与缓存中数据合并后返回,如果不是则直接读取原有数据内容返回。

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

步骤1,在虚拟机磁盘复制操作开始时在物理机中建立一个读写缓冲区;

步骤2,接收到读操作请求时判断虚拟机磁盘被读取区域内有无修改标记;

步骤3,如果被读取区域没有修改标记则直接读取虚拟机磁盘被读取区域内容返回;

步骤4,如果被读取区域有修改标记则读取无修改标记的虚拟机磁盘区域内容并与读写缓冲区中的修改内容合并后返回;

步骤5,在虚拟机磁盘复制操作结束时恢复正常虚拟机磁盘读取;

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

进一步地,在步骤1中,所述虚拟机建立在物理机的虚拟化的平台中,虚拟机至少包括一个虚拟机磁盘。

进一步地,在步骤1中,所述读写缓冲区用于在虚拟机磁盘复制过程中接收到写操作请求时,把对虚拟机磁盘的修改内容存入读写缓冲区,并对虚拟机磁盘中被写区域做修改标记而不写入修改内容;写入修改内容到读写缓冲区时如果读写缓冲区的空间被写满则暂停写操作并等待虚拟机磁盘复制操作结束,所述读写缓冲区位于物理机中的内存或者磁盘,读写缓冲区的容量大小为N*M,其中N为可更改设置的正整数,M为虚拟机磁盘的磁盘块大小,所述修改标记为针对虚拟机磁盘被写区域内所有磁盘块做标记。

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

进一步地,在步骤4中,所述读取无修改标记的磁盘区域内容并与读写缓冲区中的修改内容合并方法的子步骤为:

步骤4.1,读取磁盘被读取区域中无修改标记的磁盘块内容;

步骤4.2,读取读写缓冲区中的修改内容;

步骤4.3,将读写缓冲区的修改内容与磁盘被读取区域中无修改标记的磁盘块内容合成;

步骤4.4,返回合成数据。

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

缓冲建立单元,用于在虚拟机磁盘复制操作开始时在物理机中建立一个读写缓冲区;

标记判断单元,用于在接收到读操作请求时判断虚拟机磁盘被读取区域内有无修改标记;

直接返回单元,用于判断在如果被读取区域没有修改标记则直接读取虚拟机磁盘被读取区域内容返回;

合并返回单元,用于判断在如果被读取区域有修改标记则读取无修改标记的虚拟机磁盘区域内容并与读写缓冲区中的修改内容合并后返回;

读取恢复单元,用于在虚拟机磁盘复制操作结束时恢复正常虚拟机磁盘读取;

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

本公开的有益效果为:本发明在使用的磁盘进行复制可以对磁盘进行读取,实现数据备份或其它的虚拟机磁盘复制过程中的读取操作能够很好地保持数据一致性,而且频繁的读取操作不会影响虚拟机的服务质量,不需要额外添加新的装置或设备。

附图说明

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

图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中,所述读操作请求来自于业务逻辑层,所述业务逻辑层为,包括一些需要进行磁盘读取的上层业务软件。

进一步地,在步骤2中,所述判断虚拟机磁盘被读取区域内有无修改标记的方法为判断虚拟机磁盘的被读取区域是否有做过修改标记的磁盘块。

进一步地,在步骤4中,所述读取无修改标记的磁盘区域内容并与读写缓冲区中的修改内容合并方法的子步骤为:

步骤4.1,读取磁盘被读取区域中无修改标记的磁盘块内容;

步骤4.2,读取读写缓冲区中的修改内容;

步骤4.3,将读写缓冲区的修改内容与磁盘被读取区域中无修改标记的磁盘块内容合成;

步骤4.4,返回合成数据。

此外,在虚拟机磁盘复制操作结束时将写缓冲区的内容根据标记更新到虚拟机磁盘的映射区域,注销写缓冲区并释放写缓冲区占用的物理机资源,如果因写缓冲区的空间被写满被暂停写操作的情况下,则将写缓冲区的内容根据标记更新到虚拟机磁盘的映射区域并对虚拟机磁盘进行未完成的写操作。

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

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

缓冲建立单元,用于在虚拟机磁盘复制操作开始时在物理机中建立一个读写缓冲区;

标记判断单元,用于在接收到读操作请求时判断虚拟机磁盘被读取区域内有无修改标记;

直接返回单元,用于判断在如果被读取区域没有修改标记则直接读取虚拟机磁盘被读取区域内容返回;

合并返回单元,用于判断在如果被读取区域有修改标记则读取无修改标记的虚拟机磁盘区域内容并与读写缓冲区中的修改内容合并后返回;

读取恢复单元,用于在虚拟机磁盘复制操作结束时恢复正常虚拟机磁盘读取;

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

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

所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述基于固定缓冲的虚拟机磁盘复制过程读取装置运行装置的控制中心,利用各种接口和线路连接整个基于固定缓冲的虚拟机磁盘复制过程读取装置可运行装置的各个部分。

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

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

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