一种虚拟机的磁盘文件的处理方法及装置与流程

文档序号:12063267阅读:227来源:国知局
一种虚拟机的磁盘文件的处理方法及装置与流程

本发明涉及虚拟机处理技术领域,尤其涉及一种虚拟机的磁盘文件的处理方法及装置。



背景技术:

以冰点为代表的系统还原软件通过还原驱动程序拦截硬盘读写驱动,改变系统对硬盘的读写,实现对硬盘已存在数据的保护。这类还原软件需要在系统启动过程中加载还原驱动程序,属于操作系统层级的系统还原软件。在实际使用过程中,由于企业版冰点还原软件(Deep Freeze)与域控配合使用时产生较高的输入输出量,导致桌面虚拟机系统在还原过程中存在输入输出过高的问题,致使此类软件在桌面虚拟机的使用上遇到了瓶颈。



技术实现要素:

为了克服上述问题,本发明提供一种虚拟机的磁盘文件的处理方法及装置,来解决桌面虚拟机系统在还原过程中存在输入输出过高的问题。

为了解决上述技术问题,本发明实施例采用如下技术方案:

本发明的一个方面,提供了一种虚拟机的磁盘文件的处理方法,所述磁盘文件存储于第一节点上,所述方法包括:

在创建还原点时,根据所述虚拟机的磁盘文件生成第一叶子文件,并将所述磁盘文件标记为还原点的文件,其中,所述第一叶子文件用于记录后续用户新修改的用户数据;

将所述第一叶子文件存储于第二节点上,所述第一节点为所述第二节点的父节点;

将所述磁盘文件的读写属性设置为只读属性,将所述第一叶子文件的读写属性设置为可读可写属性,以及将所述虚拟机的状态标识设置为冰冻状态。

可选地,所述在创建还原点时,根据所述虚拟机的磁盘文件生成第一叶子 文件,具体为:

在创建所述还原点时,对所述虚拟机的磁盘文件进行快照处理,根据快照处理得到的文件生成第一叶子文件。

可选地,所述方法还包括:

获取一还原指令;

根据所述还原指令,删除所述第一叶子文件,并根据所述虚拟机的磁盘文件生成第二叶子文件,其中,所述磁盘文件为所述还原点的文件,所述第二叶子文件用于记录后续用户新修改的用户数据;

将所述第二叶子文件存储于第三节点上,其中,所述第一节点为所述第三节点的父节点;

将所述第二叶子文件的读写属性设置为可读可写属性。

可选地,所述还原指令为在检测到所述虚拟机进入关闭状态时自动触发或由用户手动进行触发。

可选地,所述方法还包括:

在所述虚拟机的解冻任务触发后,删除所述第一叶子文件,并根据所述虚拟机的磁盘文件生成第三叶子文件,其中,所述磁盘文件为所述还原点的文件,所述第三叶子文件用于记录后续用户新修改的用户数据;

将所述第三叶子文件存储于第四节点上,其中,所述第一节点为所述第四节点的父节点;

将所述第三叶子文件的读写属性设置为可读可写属性,将所述虚拟机的状态标识设置为解冻状态。

可选地,所述方法还包括:

在所述虚拟机的解冻任务触发后,将所述磁盘文件的读写属性设置为可读可写属性,将所述虚拟机的状态标识设置为解冻状态。

本发明的另一个方面,还提供了一种虚拟机的磁盘文件的处理装置,所述磁盘文件存储于第一节点上,所述装置包括:

生成模块,用于在创建还原点时,根据所述虚拟机的磁盘文件生成第一叶子文件,并将所述磁盘文件标记为还原点的文件,其中,所述第一叶子文件用于记录后续用户新修改的用户数据;

第一存储模块,用于将所述第一叶子文件存储于第二节点上,所述第一节点为所述第二节点的父节点;

第一设置模块,用于将所述磁盘文件的读写属性设置为只读属性,将所述第一叶子文件的读写属性设置为可读可写属性,以及将所述虚拟机的状态标识设置为冰冻状态。

可选地,所述生成模块,包括:

快照模块,用于在创建所述还原点时,对所述虚拟机的磁盘文件进行快照处理,根据快照处理得到的文件生成第一叶子文件。

可选地,所述装置还包括:

获取模块,用于获取一还原指令;

第一还原模块,用于根据所述还原指令,删除所述第一叶子文件,并根据所述虚拟机的磁盘文件生成第二叶子文件,其中,所述磁盘文件为所述还原点的文件,所述第二叶子文件用于记录后续用户新修改的用户数据;

第二存储模块,用于将所述第二叶子文件存储于第三节点上,其中,所述第一节点为所述第三节点的父节点;

第二设置模块,用于将所述第二叶子文件的读写属性设置为可读可写属性。

可选地,所述还原指令为在检测到所述虚拟机进入关闭状态时自动触发或由用户手动进行触发。

可选地,所述装置还包括:

第二还原模块,用于在所述虚拟机的解冻任务触发后,删除所述第一叶子文件,并根据所述虚拟机的磁盘文件生成第三叶子文件,其中,所述磁盘文件为所述还原点的文件,所述第三叶子文件用于记录后续用户新修改的用户数据;

第三存储模块,用于将所述第三叶子文件存储于第四节点上,其中,所述第一节点为所述第四节点的父节点;

第三设置模块,用于将所述第三叶子文件的读写属性设置为可读可写属性,将所述虚拟机的状态标识设置为解冻状态。

可选地,所述装置还包括:

第四设置模块,用于在所述虚拟机的解冻任务触发后,将所述磁盘文件的读写属性设置为可读可写属性,将所述虚拟机的状态标识设置为解冻状态。

本发明的有益效果是:

上述方案,以虚拟机中原始磁盘文件为还原点,在虚拟机的磁盘文件基础上生成叶子文件,通过叶子文件来记录后续用户新修改的用户数据,将后续的用户操作数据与原始磁盘文件分隔开来进行独立记录,避免其他用户的操作对磁盘文件进行修改,在后续还原过程中,只需将存储有后续的用户操作数据的叶子节点进行删除即可实现对虚拟机的还原,更好的适应了实际需要,避免了还原操作导致的输入输出过高的问题。

附图说明

图1表示本发明中第一实施例的流程示意图;

图2表示本发明中第二实施例的流程示意图;

图3表示本发明中第三实施例的流程示意图;

图4表示本发明中第五实施例的模块结构框图一;

图5表示本发明中第五实施例的模块结构框图二;

图6表示本发明中第五实施例的模块结构框图三;

图7为虚拟机冰冻操作过程示意图;

图8为虚拟机还原操作过程示意图;

图9为虚拟机解冻操作过程示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

第一实施例

如图1所示,本发明公开了一种虚拟机的磁盘文件的处理方法,该磁盘文件存储于第一节点上,其中该方法具体包括:

步骤101:在创建还原点时,根据所述虚拟机的磁盘文件生成第一叶子文件,并将所述磁盘文件标记为还原点的文件。

其中,第一叶子文件用于记录后续用户新修改的用户数据,创建还原点是指在对虚拟机上现有的磁盘文件基础上作保留,使该些磁盘文件上的数据及内容不被后来的操作数据修改或覆盖,将磁盘文件标记为还原点的文件表明在需要对虚拟机进行还原时,该磁盘文件为虚拟机所保留的内容,还原之后虚拟机重新回到该还原点时刻对应的磁盘文件状态。且在创建还原点之后,在虚拟机上现有磁盘文件基础上生成叶子文件,将后续的用户操作数据记录全部记录存放在该叶子文件内,将磁盘文件标记为还原点文件以便于不被读写修改,并便于后来做还原操作。

步骤102:将所述第一叶子文件存储于第二节点上,所述第一节点为所述第二节点的父节点。

其中,磁盘文件存储于第一节点上,根据该磁盘文件生成的第一叶子文件存储于为该第一节点子节点的第二节点上,以便于后续的还原处理。

步骤103:将所述磁盘文件的读写属性设置为只读属性,将所述第一叶子文件的读写属性设置为可读可写属性,以及将所述虚拟机的状态标识设置为冰冻状态。

此时与上述步骤101、102相对应地,此时将磁盘文件的读写属性设置为只读属性,避免后续用户操作时对该磁盘文件进行修改,第一叶子文件的读写属性设置为可读可写属性,使后续用户数据能够在该叶子文件中进行存储,在创建还原点之后,该虚拟机的状态标识设置为冰冻状态,表明此时的虚拟机上有还原点的存在。

本发明的上述方法,以虚拟机中原始磁盘文件为还原点,在虚拟机的磁盘文件基础上生成叶子文件,通过叶子文件来记录后续用户新修改的用户数据,将后续的用户操作数据与原始磁盘文件分隔开来进行独立记录,避免其他用户的操作对磁盘文件进行修改,在后续还原过程中,只需将存储有后续的用户操作数据的叶子节点进行删除即可实现对虚拟机的还原。

进一步地,上述步骤101中在创建还原点时,根据虚拟机的磁盘文件生成第一叶子文件,具体可以为:在创建还原点时,对该虚拟机的磁盘文件进行快照处理,根据快照处理得到的文件生成第一叶子文件。

这里的对虚拟机的磁盘文件进行快照处理具体是利用VHD磁盘快照技术, 在虚拟机关机状态下虚拟化管理中心启动冰冻任务对虚拟机的磁盘文件做快照从而保留冰冻点,这样用户虚拟机在启动之后,产生的新数据为体现在新建的磁盘节点上,具体这里不做限定。

第二实施例

如图2所示,本实施例将在第一实施例的基础上,对虚拟机创建还原点之后,虚拟机进行还原操作的过程展开进一步描述。

其中,该虚拟机的磁盘文件的处理方法还包括:

步骤201:获取一还原指令。

步骤202:根据所述还原指令,删除所述第一叶子文件,并根据所述虚拟机的磁盘文件生成第二叶子文件。

其中,磁盘文件为该还原点的文件,第二叶子文件用于记录后续用户新修改的用户数据。在需要对虚拟机做还原操作时,先获取还原指令,根据该还原指令对记录有用户操作虚拟机之后产生的新修改的用户数据的第一叶子文件进行删除,并在与还原点时刻对应的磁盘文件的基础上生成新的叶子文件,即上述第二叶子文件,如果有新用户对还原之后的虚拟机进行了操作,此时该第二叶子文件就负责记录存储还原之后的储虚拟机上用户新修改的用户数据,以便于在需要的时候对虚拟机作再一次的还原操作。

步骤203:将所述第二叶子文件存储于第三节点上,其中,所述第一节点为所述第三节点的父节点。

步骤204:将所述第二叶子文件的读写属性设置为可读可写属性。

对应地,此时将步骤202中生成的第二叶子文件存储在新的节点上,即上述第三节点上,该第三节点同样为存储有与还原点对应的磁盘文件的第一节点的子节点,此时该磁盘文件仍为只读状态,新的叶子文件即第二叶子文件为可读可写。

其中,上述步骤201中的还原指令为在检测到虚拟机进入关闭状态时自动触发或由用户手动进行触发,即在虚拟机关闭时自动对虚拟机进行还原操作,或者在任意时刻,根据实际需要对虚拟机进行手动操作触发还原指令。

第三实施例

如图3所示,在第一实施例基础上,本实施例将对虚拟机触发解冻任务, 将虚拟机的状态标识设置为解冻状态后的操作过程做出相应描述,本实施例中具体涉及在虚拟机的解冻任务触发后,与之对应的两种不同的处理过程。

一方面,这里将对虚拟机的解冻任务触发后,对应的第一种处理过程进行描述,其中虚拟机的磁盘文件的处理方法还包括:

步骤301:在所述虚拟机的解冻任务触发后,删除所述第一叶子文件,并根据所述虚拟机的磁盘文件生成第三叶子文件。

其中,磁盘文件为还原点的文件,第三叶子文件用于记录后续用户新修改的用户数据。

步骤302:将所述第三叶子文件存储于第四节点上,其中,所述第一节点为所述第四节点的父节点。

步骤303:将所述第三叶子文件的读写属性设置为可读可写属性,将所述虚拟机的状态标识设置为解冻状态。

上述步骤301至步骤303中,在虚拟机的解冻任务触发后,对该解冻任务进行响应,对虚拟机的状态做解冻的同时,也对虚拟做还原操作,还原该虚拟机当前状态至还原点时刻记录的磁盘状态,在对虚拟机解冻时,该还原点也随之变为无效还原点,不再对原有还原点时刻对应的磁盘文件作读写保护,后续用户的操作可以对原有的磁盘文件做出相应的修改与处理,此时虚拟机的解冻任务触发后,删除记录有用户的后续操作数据的第一叶子文件,并在磁盘文件基础上生成新的空叶子文件,以该新的空叶子文件存储接下来的用户操作数据,将该新的空叶子文件存储在第一节点的新的子节点上,上述磁盘文件读写状态也更改为可读可写状态。

另一方面,这里将对虚拟机的解冻任务触发后,对应的另一种处理过程进行描述,其中虚拟机的磁盘文件的处理方法还包括:

在虚拟机的解冻任务触发后,将磁盘文件的读写属性设置为可读可写属性,将虚拟机的状态标识设置为解冻状态。

这里,在虚拟机的解冻任务触发后,系统响应该解冻任务,只对该虚拟机上设置的还原点作解除操作,不对该虚拟机做还原操作,此时的磁盘文件也不再为还原点的文件,此时与之对应的,第一叶子文件仍用于记录后续用户新修改的用户数据,磁盘文件的读写属性设置为可读可写属性,虚拟机的状态标识 设置为解冻状态。

上述的第一种操作过程与第二种操作过程的区别主要在于:前者在虚拟机的解冻任务触发后,对虚拟机的解冻任务响应之后,既对虚拟机作还原操作又对虚拟机的还原点做无效、修改虚拟机的冰冻标记为解冻标记,后者对虚拟机作还原操作又对虚拟机的还原点做无效、修改虚拟机的冰冻标记为解冻标记,虚拟机中的新变化可以在第一叶子文件中存储的用户操作数据的基础上进行继续存储,这里对虚拟机做冰冻状态的设置可以确保对虚拟机作重复的还原操作,对冰冻状态的解除设置可以保证在需要的时候对原始磁盘文件做出相应调整及修改,更好的适应了实际需要。

第四实施例

本发明是在虚拟化管理系统现有的VHD格式磁盘快照接口基础上,开发新的冰冻解冻还原业务接口,来实现虚拟机的冰冻还原功能。当用户虚拟机关机时,虚拟化管理中心启动还原任务,删掉磁盘文件的叶子文件重新在冰冻点及还原点拉空的叶子文件,清除用户数据使磁盘重新回到冰冻点即还原点状态,这样由虚拟化管理中心对虚拟机磁盘文件的操作来实现冰冻还原。为使本发明目的、技术方案优点更加清楚,下面对本发明所使用的技术方案做一个详细的阐述。

一方面,对虚拟机做冰冻操作:这里借助于虚拟化管理中心提供虚拟机的冰冻功能接口,界面可以对关机状态的VHD格式虚拟机设置还原点操作,虚拟机冰冻任务触发后,后台会对该虚拟机的磁盘文件基础上新拉出一个空的叶子文件,冰冻点磁盘文件变为只读的父亲节点文件,达到保留冰冻点即还原点数据的目的,同时虚机化管理中心将该虚拟机标志为冰冻虚拟机,表示该虚拟机做过冰冻,可以对该虚拟机做还原和解冻操作。

结合图7,虚拟机的冰冻操作的具体流程如下:

用户虚拟机默认为非冰冻虚拟机,此时的虚拟机状态标识为b_freeze=0,表示该虚拟机不处于冰冻状态,即不存在还原点,假设虚拟机创建好之后有一个磁盘,该磁盘文件节点为A,在虚拟化管理中心界面对用户虚拟机做冰冻操作,则A为还原点,A变为只读,新拉出一个新的节点B,A节点由可读可写变为只读,该虚拟机的任何改变只能体现在可读可写的节点B上,从而保留还 原点处虚拟机的状态,还原点设置好后,该虚拟机状态标志变为b_freeze=1。

另一方面,对虚拟机做还原操作:虚拟化管理中心提供虚拟机的还原功能接口,分为两种策略,其一,手动触发还原,即由用户在界面对关机状态的冰冻虚拟机直接做还原冰冻点操作,其二,关机自动还原,即虚拟机在关闭时,后台自动触发还原虚拟机到冰冻点,此时如果对应于对该虚拟机的磁盘文件进行快照处理的话,则后台自动触发还原虚拟机快照点的状态。用户可根据需要自行设置还原策略,虚拟机还原任务触发后,后台删除保存用户数据的叶子文件,从而清除用户新产生的数据使磁盘回到冰冻点及还原点状态,同时从父亲节点重新拉出一个新的节点,用于存储接下来的用户数据。

结合图8,虚拟机的还原操作的具体流程如下:

已经冰冻的用户虚拟机磁盘由装载有只读的磁盘文件的父节点A和子节点B组成,用户新修改的数据全部体现在子节点B上,A为还原点,若根据还原策略需要对虚拟机做还原操作,则删除保存用户数据的叶子节点B,同时从父亲节点A处重新拉出一个新的空子节点C,磁盘便回到冰冻点,后续用户新修改的数据全部更新在新的子节点C上,此时虚拟机状态标志b_freeze仍为1保持不变。

另一方面,对虚拟机做解冻操作:虚拟化管理中心提供虚拟机的解冻功能接口,界面可以对关机状态的已冻结虚拟机设置解冻操作,虚拟机解冻任务触发后,后台会首先删除叶子文件,并从父亲节点重新拉出一个新的节点,用于存储接下来的用户数据,即先将虚拟机还原到冰冻点,然后虚拟化管理中心将该虚拟机状态标识设置为解冻虚拟机,表示该虚拟机已解除冰冻,用户可以再次自行选择对虚拟机做冰冻操作。

结合图9,虚拟机的解冻操作的具体流程如下:

已经冰冻的用户虚拟机磁盘由只读的父节点A和子节点B组成,用户新修改的数据全部体现在叶子节点B上,A为还原点,若需要对虚拟机做解除冰冻操作,则删除保存用户数据的叶子节点B,同时从快照父亲节点A处重新拉出一个新的空子节点C,磁盘回到冰冻点状态,后续用户新修改的数据全部更新在新的子节点C上,虚拟机状态标志b_freeze由1置为0,表示该虚拟机已经为非冰冻虚拟机,可以再次选择新的冰冻点对虚拟机做冰冻,解冻后的虚拟 机由节点A和节点C组成,若此时再对虚拟机作冰冻操作,则C作为新的还原点,由可写变为只读,C上新拉节点D,用于体现用户数据的改变。

第五实施例

如图4所示,本发明还公开了一种虚拟机的磁盘文件的处理装置,该磁盘文件存储于第一节点上,该装置包括:生成模块401、第一存储模块402、第一设置模块403。

其中,生成模块401,用于在创建还原点时,根据虚拟机的磁盘文件生成第一叶子文件,并将磁盘文件标记为还原点的文件,其中,第一叶子文件用于记录后续用户新修改的用户数据;第一存储模块402,用于将第一叶子文件存储于第二节点上,第一节点为第二节点的父节点;第一设置模块403,用于将磁盘文件的读写属性设置为只读属性,将第一叶子文件的读写属性设置为可读可写属性,以及将虚拟机的状态标识设置为冰冻状态。

本发明的上述处理装置,以虚拟机中原始磁盘文件为还原点,在虚拟机的磁盘文件基础上生成叶子文件,通过叶子文件来记录后续用户新修改的用户数据,将后续的用户操作数据与原始磁盘文件分隔开来进行独立记录,避免其他用户的操作对磁盘文件进行修改,在后续还原过程中,只需将存储有后续的用户操作数据的叶子节点进行删除即可实现对虚拟机的还原,使得整个还原过程简洁易实现,避免了还原操作导致的输入输出过高的问题。

进一步地,其中生成模块401还包括:快照模块4011。

其中,该快照模块4011,用于在创建还原点时,对虚拟机的磁盘文件进行快照处理,根据快照处理得到的文件生成第一叶子文件。

如图5所示,该装置还包括:获取模块501、第一还原模块502、第二存储模块503、第二设置模块504。

其中,获取模块501,用于获取一还原指令;第一还原模块502,用于根据该还原指令,删除第一叶子文件,并根据虚拟机的磁盘文件生成第二叶子文件,其中,该磁盘文件为该还原点的文件,第二叶子文件用于记录后续用户新修改的用户数据;第二存储模块503,用于将第二叶子文件存储于第三节点上,其中,第一节点为第三节点的父节点;第二设置模块504,用于将第二叶子文件的读写属性设置为可读可写属性。

其中,该还原指令为在检测到虚拟机进入关闭状态时自动触发或由用户手动进行触发。

更进一步地,如图6所示,该装置还包括:第二还原模块505、第三存储模块506、第三设置模块507。

其中,第二还原模块505,用于在虚拟机的解冻任务触发后,删除第一叶子文件,并根据虚拟机的磁盘文件生成第三叶子文件,其中,该磁盘文件为还原点的文件,第三叶子文件用于记录后续用户新修改的用户数据;第三存储模块506,用于将第三叶子文件的读写属性设置为可读可写属性,将第三叶子文件存储于第四节点上,其中,该第一节点为第四节点的父节点;第三设置模块507,用于将虚拟机的状态标识设置为解冻状态。

相对应地,该装置还包括:第四设置模块,用于在虚拟机的解冻任务触发后,将磁盘文件的读写属性设置为可读可写属性,将该虚拟机的状态标识设置为解冻状态。

上述方案中提到的装置,在虚拟机的后续还原过程中,只需将存储有后续的用户操作数据的叶子节点进行删除即可实现对虚拟机的还原,其中对冰冻状态的设置可以确保对虚拟机作重复的还原操作,对冰冻状态的解除设置可以保证在需要的时候对原始磁盘文件做出相应调整及修改,更好的适应了实际需要,使得整个还原过程简便易实现,避免了还原操作导致的输入输出过高的问题。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没 有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上所述的是本发明的优选实施方式,应当指出对于本技术领域的普通人员来说,在不脱离本发明所述的原理前提下还可以作出若干改进和润饰,这些改进和润饰也在本发明的保护范围内。

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