首页> 中国专利> 一种基于虚拟机的磁盘镜像文件快照的制作方法和系统

一种基于虚拟机的磁盘镜像文件快照的制作方法和系统

摘要

本发明提供了一种基于虚拟机的磁盘镜像文件快照的制作方法和系统,其包括:判断是否存在父磁盘镜像文件;如果存在,则创建空快照文件,并且初始化磁盘镜像文件快照尾协议;判断父磁盘镜像文件是否为稀疏类型;如果为稀疏类型,则初始化磁盘镜像文件快照头协议、填充磁盘镜像文件快照尾协议和头协议、创建并填充块分配映射表以及更新并记录父磁盘镜像文件路径;如果为非稀疏类型,则将非稀疏父磁盘镜像文件填充到空快照文件中;以及更新磁盘镜像文件快照的头协议和尾协议,从而完成快照制作。本发明解决了非稀疏磁盘镜像文件不支持快照以及稀疏磁盘镜像文件支持快照的性能不佳的问题。

著录项

  • 公开/公告号CN103713970A

    专利类型发明专利

  • 公开/公告日2014-04-09

    原文格式PDF

  • 申请/专利权人 曙光云计算技术有限公司;

    申请/专利号CN201310751391.6

  • 发明设计人 李立;王军林;唐明;徐博;成书晟;

    申请日2013-12-31

  • 分类号G06F11/14(20060101);G06F12/02(20060101);

  • 代理机构北京新知远方知识产权代理事务所(普通合伙);

  • 代理人马军芳

  • 地址 100193 北京市海淀区东北旺西路8号中关村软件园36号楼

  • 入库时间 2024-02-19 22:53:23

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-05-22

    专利权人的姓名或者名称、地址的变更 IPC(主分类):G06F11/14 变更前: 变更后: 申请日:20131231

    专利权人的姓名或者名称、地址的变更

  • 2017-02-15

    授权

    授权

  • 2014-05-07

    实质审查的生效 IPC(主分类):G06F11/14 申请日:20131231

    实质审查的生效

  • 2014-04-09

    公开

    公开

说明书

技术领域

本发明涉及计算机技术领域,尤其涉及一种基于虚拟机的磁盘镜像文件快 照的制作方法和系统。

背景技术

XEN是一个基于开源软件组织的虚拟机监控器(即Virtual Machine Monitor 简称VMM),可以允许在单一的物理机器上同时运行多个操作系统实例。XEN 默认的RAW或是QCOW2(Qemu-copy-on-write2)磁盘格式由于RAW或 QCOW2协议里面不支持跨平台功能而不能跨越多个平台使用,比如这两种格 式的虚拟机的文件不能用在VMWare、WindowXP、Mac等电脑上面跨越平台 使用,其原因是RAW或QCOW2协议里面不支持这种跨平台功能。并且,现 有RAW磁盘文件不支持快照技术,无法定期对虚拟机进行在线备份和恢复, 从而会影响客户的数据安全。QCOW2虽然支持虚拟机在线快照,但是经过测 试,磁盘IO仍存在性能不高、延时长等缺点。由于RAW磁盘格式不支持快照 功能,无论是用DD指令还是QEMU-IMG创建出来的RAW盘都不支持在线 (离线)快照,原因是RAW格式的磁盘没有做任何协议上的处理。

进一步地,现有技术的快照备份大部分都是基于差异备份或是增量备份来 实现。差异备份或是增量备份是相对于完全备份而言。完全备份指的是,备份 系统不会检查自上次备份后档案有没有被更动过,而只是机械性地将每个档案 读出、写入,不管档案有没有被修改过。备份全部选中的文件及文件夹,并不 依赖文件的存盘属性来确定备份哪些文件。增量备份和完全备份不同,其在做 数据备份前会先判断,档案的最后修改时间是否比上次备份的时间晚。如果不 是的话,那表示自上次备份后,这档案并没有被更动过,所以这次不需要备份。 换句话说,如果修改日期″的确″比上次更动的日期来得晚,那么档案就被更动 过,需要备份。差异备份则是针对完全备份:备份上一次的完全备份后发生变 化的所有文件。增量备份和差异备份这两种技术都存在自身的缺点。增量备份 的缺点是,若要恢复所有文件,必须所有增量备份都可用,这就需要很长的时 间来还原特定文件,因为必须搜索多个备份集以找到最新版本的文件。差异备 份的缺点是,由于可能必须还原最后一次的差异和完整备份,还原所有文件可 能需要相当长的时间。

因此,在云计算环境下,期望能够实现虚拟机在业务不中断的情况下进行 任何时候的备份和恢复操作。

发明内容

本发明针对上述问题,提出了一种基于虚拟机的磁盘镜像文件快照的制作 方法和系统,其实现了虚拟机在业务不中断的情况下进行任何时候的备份和恢 复操作。

在一个方面,本发明提供了一种基于虚拟机的磁盘镜像文件快照的制作方 法,其包括以下步骤:判断是否存在父磁盘镜像文件;如果存在,则创建空快 照文件,并且初始化磁盘镜像文件快照尾协议;判断父磁盘镜像文件是否为稀 疏类型;如果父磁盘镜像文件为稀疏类型,则依序进行下列步骤:初始化磁盘 镜像文件快照头协议、填充磁盘镜像文件快照尾协议、填充磁盘镜像文件快照 头协议、创建并填充块分配映射表、以及更新并记录父磁盘镜像文件路径;如 果父磁盘镜像文件为非稀疏类型,则将非稀疏父磁盘镜像文件填充到空快照文 件中;以及更新磁盘镜像文件快照的头协议和尾协议,并关闭磁盘文件快照, 从而完成快照制作。

在另一个方面,本发明提供了一种基于虚拟机的磁盘镜像文件快照的制 作系统,其包括:父磁盘镜像文件检查模块,用于判断是否存在父磁盘镜像文 件;快照文件创建模块,用于在父磁盘镜像文件检查模块判断存在父磁盘镜像 文件时,创建空快照文件,并且初始化磁盘镜像文件快照尾协议;父磁盘镜像 文件类型判断模块,用于判断父磁盘镜像文件为稀疏类型还是非稀疏类型;稀 疏文件处理模块,用于在父磁盘镜像文件类型判断模块判断父磁盘镜像文件为 稀疏类型时,初始化磁盘镜像文件快照头协议,填充磁盘镜像文件快照尾协议, 填充磁盘镜像文件快照头协议,创建并填充块分配映射表,以及更新并记录父 磁盘镜像文件路径;非稀疏文件处理模块,用于在父磁盘镜像文件类型判断模 块判断父磁盘镜像文件为非稀疏类型时,将非稀疏父磁盘镜像文件填充到空快 照文件中;以及快照协议更新单元,用于更新磁盘镜像文件快照的头协议和尾 协议,并关闭磁盘文件快照,从而完成快照制作。

本发明提供的基于虚拟机的磁盘镜像文件快照的制作方法和系统,解决了 非稀疏磁盘镜像文件不支持快照以及稀疏磁盘镜像文件支持快照的性能不佳 的缺陷,并支持毫秒级别的快照操作,从而实现了虚拟机在业务不中断的情况 下进行任何时候的备份和恢复操作。

附图说明

下面将参照附图描述本发明的具体实施例,其中:

图1为本发明实施例的基于虚拟机的磁盘镜像文件快照的制作方法的流程 示意图。

图2为本发明实施例的基于虚拟机的磁盘镜像文件快照的制作系统的结构 示意图。

具体实施方式

为了使本发明的技术方案及优点更加清楚明白,以下结合附图对本发明的 示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本发明的一 部分实施例,而不是所有实施例的穷举。

为解决XEN虚拟机在业务不中断的情况下进行在线备份和恢复的问题, 基于稀疏磁盘镜像和非稀疏磁盘镜像提出了本发明。图1示出了本发明实施例 的基于虚拟机的磁盘镜像文件快照的制作方法的流程示意图。

首先,在步骤S101中,判断是否存在父磁盘镜像文件。如果存在,则执 行步骤S102,创建空快照文件,并且初始化磁盘镜像文件快照尾协议。如果不 存在,则返回错误。

接着,在步骤S103中,判断父磁盘镜像文件是否为稀疏类型。如果父磁 盘镜像文件为稀疏类型,则依序进行下列步骤S104-S108:初始化磁盘镜像文 件快照头协议(S104);填充磁盘镜像文件快照尾协议(S105);填充磁盘镜像 文件快照头协议(S106);创建并填充块分配映射表(S107);更新并记录父磁 盘镜像文件路径(S108)。如果父磁盘镜像文件为非稀疏类型,则执行步骤S114, 将非稀疏父磁盘镜像文件填充到空快照文件中。

最后,执行步骤S120,更新磁盘镜像文件快照的头协议和尾协议;并关闭 磁盘文件快照,从而完成快照制作。

在本实施例中,磁盘镜像文件快照的格式协议如下:稀疏和非稀疏磁盘均 由磁盘镜像头协议和磁盘镜像尾部协议构成,磁盘镜像的数据均被包裹在协议 的地址中。协议内容的示例如下。

比如,磁盘镜像的头协议可如下所示:

磁盘镜像的尾协议可如下所示:

在步骤S107中,需要创建并填充块分配映射表。这里,镜像文件数据块 位于磁盘镜像头协议和磁盘镜像尾协议之间,如下所示。

磁盘镜像头协议中的Table Offset字段指向了块分配表(Block Allocation  Table),块分配表是由磁盘镜像文件中的很多数据扇区组成。在创建磁盘的时 候就决定了块分配表中条目项的数量,块分配表中的每一个条目分别指向了一 个数据块(Data Block),磁盘镜像头协议中的Max Table Entries字段记录了这 个磁盘镜像中具有多少个数据块。

数据块(Data Block)由扇区位图(Sector Bitmap)和数据组成。扇区位图 中的每一位由1或是0构成,当位图位是1的时候,说明该扇区数据存在于本 快照文件中;当位图位是0的时候,则说明该扇区数据位于父磁盘镜像文件中。 数据块的大小一般都是扇区大小的整数倍,默认情况下,数据块(Data Block) 是4096字节,即2M,磁盘镜像头协议中的Block Size字段记录该大小。

进一步地,数据的存放位置(即扇区)可通过下面的计算公式来计算:

BlockNumber=floor(RawSectorNumber/SectorsPerBlock)

SectorInBlock=RawSectorNumber%SectorsPerBlock

ActualSectorLocation=BAT[BlockNumber]+BlockBitmapSectorCount+ SectorInBlock

其中,变量BlockNumber用来索引BAT表中的块,RawSectorNumber是 一个块中的扇区号,ActualSectorLocation就是数据存放位置的绝对偏移扇区 值。

在本发明中,由于快照文件自身存储了父磁盘镜像文件的路径(步骤 S108),当虚拟机试图去打开快照文件的时候,就会连同地把父磁盘镜像文件 打开。由于磁盘镜像头协议中的Parent Locator Entry字段记录了父磁盘镜像文 件的路径(可以是绝对路径,也可以是相对路径),从而实现了快照功能的跨 平台特性。

此外,在本发明中,快照文件本身对父磁盘镜像文件的路径进行了记录操 作,并且同时对快照文件本身的元数据进行了修改控制。当系统检测到块位图 (Block bitmap)为脏标记的时候,就需要将脏数据刷新到快照文件脏数据块 的扇区中。如果这个脏数据块是属于父磁盘镜像文件的范畴,就把脏数据写入 到父磁盘镜像文件中去。

在另一方面,本发明实施例还提供了一种基于虚拟机的磁盘镜像文件快 照的制作系统,如图2所示,其包括:父磁盘镜像文件检查模块201,用于判 断是否存在父磁盘镜像文件;快照文件创建模块202,用于在父磁盘镜像文件 检查模块201判断存在父磁盘镜像文件时,创建空快照文件,并且初始化磁盘 镜像文件快照尾协议;父磁盘镜像文件类型判断模块203,用于判断父磁盘镜 像文件为稀疏类型还是非稀疏类型;稀疏文件处理模块204,用于在父磁盘镜 像文件类型判断模块203判断父磁盘镜像文件为稀疏类型时,初始化磁盘镜像 文件快照头协议,填充磁盘镜像文件快照尾协议,填充磁盘镜像文件快照头协 议,创建并填充块分配映射表,以及更新并记录父磁盘镜像文件路径;非稀疏 文件处理模块205,用于在父磁盘镜像文件类型判断模块203判断父磁盘镜像 文件为非稀疏类型时,将非稀疏父磁盘镜像文件填充到空快照文件中;以及快 照协议更新单元206,用于更新磁盘镜像文件快照的头协议和尾协议,并关闭 磁盘文件快照,从而完成快照制作。

如果父磁盘镜像文件检查模块201判断不存在父镜盘像文件,则返回错误。

根据本发明的快照制作方法和系统,解决了非稀疏磁盘镜像文件不支持 快照的问题,并且提升了稀疏磁盘镜像文件支持快照的性能。具体地说,稀疏 和非稀疏磁盘镜像文件快照的制作时间均可达到毫秒级,虚拟机快照恢复的时 间也可控制在1分钟之内,相比现有技术而言速度得到较大提升。

以上实施例仅用以说明本发明的技术方案,而非对其进行限制。因此,在 不背离本发明的精神及其实质的情况下,本领域技术人员可作出各种改变、替 换和变型。很显然,但这些改变、替换和变型都应涵盖于本发明权利要求的保 护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号