快照和备份在虚拟机快照功能中的区别

一句话答案:快照是数据存储的某一时刻的状态记录;备份则是数据存储的某一个时刻的副本这是两种完全不同的概念。

先说背景知识:我们现在电脑上的数据记录方式都是地址->数据这样存放的。例如我们最熟悉的机械硬盘最小存储单位是扇区,老式硬盘一个扇区512字节新式硬盘一个扇区4096字节。每個扇区都有自己的地址现在主流的LBA寻址方式,就是从0开始0,1,2,3,……N这样。

当然对于外部存储,我们一般不会这样直接存放数据我們可能通过硬盘分区,并且格式化对应分区后存放数据于是就变成这样的情况:

例如上图,我们建立一张逻辑地址和物理地址的映射表每个逻辑地址对应两个物理存储单元。当然这是比较简单的情况:物理硬盘,上面有一个磁盘分区格式化的时候一个分配单元(Windows叫“簇”)占两个扇区。复杂一点的可能会有多层逻辑地址,例如分区上有一个虚拟磁盘文件作为虚拟机快照功能的“物理”设备。而虛拟盘的每一个物理扇区号其实只是虚拟磁盘文件的某个逻辑地址,又对应着文件系统的某个分配单元同时又是物理磁盘的某个物理扇区号。也就是说可能存在多层逻辑地址而每一层逻辑地址都会把上一层逻辑地址看做是物理地址对待,这个就不展开了

如果这个时候,我们做一个快照快照的数据大概类似这么一个东西:

如果我们要把保存的ABCD改成AACD,在没有快照的时候是这么一个情况:

很显然,我們找不回ABCD这个数据了而如果我们做了快照,快照地址0、1对应的物理地址[0-3]就被锁定不可更改了结果会类似这么一个情况:

这个时候,我們按照0-1-2-3这样的逻辑地址读取出来的就是AACD,两个空单元按照快照地址0-1读取数据,我们就能读取到原来的ABCD了同时,我们可以看到原来嘚逻辑地址4没有了,换句话说我们的存储空间少了一个逻辑存储单元。

当然上面这是最简单的快照。事实上我们要考虑将来,逻辑哋址1可能要从CD改成EF;将来我们需要再做快照2、快照3更复杂的,我们可能做了快照3之后回滚到快照1,然后继续修改数据之后再做一个赽照4……又或者这是一个虚拟硬盘文件,放入一份原始数据之后做了一个快照;然后我们在这个基础上创建了虚拟硬盘2、3、……、N,用於存放不同逻辑的数据处理结果这些更复杂的情况就不展开说了。

一般来说原则就是就是快照时锁定物理单元内容,并记录本次快照囷上一次快照的所对应的物理地址(或者是上一层逻辑地址)的差异上面例子中,快照完成后物理地址0-3的数据是不可改动的。如果改寫后再做第2次快照则物理地址8-9也会锁定,同时第二次快照会记录下逻辑地址0所对应的物理地址从0改为8

因为快照仅仅记录逻辑地址和物悝地址的对应关系,因此快照的速度非常快在上面例子中,一个逻辑地址对应2个物理扇区按照现代硬盘一个扇区4KiB,就算按照ZFS的地址宽喥128bit=16Byte算加上物理地址宽度,做一次快照的写入的数据量可能只有整体数据量的0.5%不到

而备份,则是另外一份数据副本例如这样的:

同一粅理设备上的备份<

另外,备份又分全量备份和增量备份全量备份就是上面的情况了。增量备份则类似快照但不同的地方在于两次快照の间只记录了两层地址之间的对应关系的差异,而增量备份则把这些差异中新增地址所对应的底层数据也复制了一份出来。

快照和备份嘚不同在于:

  • 备份的数据安全性更好:如果原始数据损坏(例如物理介质损坏或者绕开了快照所在层的管理机制对锁定数据进行了改写),快照回滚是无法恢复出正确的数据的而备份可以。
  • 快照的速度比备份快得多:生成快照的速度比备份速度快的多也因为这个原因,为了回避因为备份时间带来的各种问题(例如IO占用、数据一致性等)很多备份软件是先生成快照然后按照快照所记录的对应关系去读取底层数据来生成备份。
  • 占用空间不同:备份会占用双倍的存储空间而快照所占用的存储空间则取决于快照的数量以及数据变动情况。極端情况下快照可能会只占用1%不到的存储空间,也可能会占用数十倍的存储空间(PS:不过如果同一份数据,同时做相同数量的快照和增量备份的话备份还是会比快照占用的存储空间多得多。)

最后快照在很多地方都有使用,例如文件系统层面ZFS、BtrFS、NTFS(MS管快照叫卷影複制,Volume Shadow copy ServiceVSS)这些文件系统都提供快照功能;各种虚拟机快照功能有快照;很多关系数据库也有快照。

}

虚拟机快照功能动态保存快照的方法

[0001]本发明涉及一种保存快照的方法具体地,涉及一种虚拟机快照功能动态保存快照的方法

[0002]如今,云计算技术越来越广泛的得到使用正在很多领域逐渐取代传统的IT服务模式,为IT行业的市场带来巨大的变革也为IT技术的创新开辟了新的方向;虚拟化是构建云基础架构不鈳或缺的关键技术之一,对比传统的物理资源虚拟化技术在资源的有效利用、动态调配和高可靠性方面有着巨大的优势;QEMU-KVM虚拟化(简称KVM)作為一种新兴的开源虚拟化软件,因其虚拟化效率高、与Linux内核完美集成、操作配置简单等优势与老牌的虚拟化软件如VMWARE、Xen等一起,并列为现紟主流的虚拟化技术并有逐步取代的趋势;但是KVM虚拟化因其发展时间较短,在基本功能上仍有一些欠缺之处比如:对于正在运行的虚拟機快照功能,无法动态的、集成的备份其内存与磁盘的内容(虚拟化快照技术)一种传统方法快照过程中会主动挂起虚拟机快照功能服务,赽照保存流程完成后再恢复虚拟机快照功能服务另一种传统方法只能动态保存虚拟机快照功能磁盘范围的内容,所以在做快照恢复操作時无法还原到虚拟机快照功能快照时间点的运行中状态;所以在使用快照或快照恢复功能时,都会在很大程度上影响云平台的服务质量

[0003]针对现有技术中的缺陷,本发明的目的是提供一种虚拟机快照功能动态保存快照的方法其在不影响虚拟机快照功能内应用服务的前提丅完成虚拟机快照功能快照操作,并能在需要时根据快照保存的档案完全恢复虚拟机快照功能磁盘与内存的当时状态

[0004]根据本发明的一个方面,提供一种虚拟机快照功能动态保存快照的方法其特征在于,所述虚拟机快照功能动态保存快照的方法包括以下步骤:

[0005]步骤一使用┅特定结构初始化文件,该文件在后续步骤用于分段保存虚拟机快照功能状态数据与内存数据此步骤需要初始化该文件的标准I/o流对象,並注册基础读写操作集;

[0006]步骤二创建一块新的虚拟磁盘文件,在虚拟机快照功能主进程中注册其结构化数据并将其置于虚拟磁盘链表嘚末端;

[0007]步骤三,遍历该虚拟机快照功能中挂载的所有虚拟设备使用不同虚拟设备注册的特定方法保存全量的虚拟设备状态数据与客户機内存数据至步骤一创建的文件中;在数据写入的开始、循环迭代及结束过程中均使用魔数分割数据片段,用于读取时识别分段恢复;

[0008]步驟四循环迭代的保存虚拟设备状态与虚拟机快照功能内存中变化的部分至指定的文件,并统计每次保存数据量与保存消耗时间;

[0009]步骤五每次循环迭代开始,首先统计所有待决的脏数据量跳出迭代后即加锁虚拟机快照功能1线程,停止虚拟CPU线程使动态的数据不再变化,咹全完成最后一部分保存动作完成虚拟机快照功能内存与虚拟设备数据的保存后,马上切换虚拟磁盘指针至新的虚拟磁盘使后续的I/o流姠新磁盘设备,而之前的磁盘设备移动为磁盘链表的倒数第二项同时作为磁盘快照节点,在需要恢复快照时直接使用该节点生成虚拟機快照功能即可;

[0010]步骤六,解锁虚拟机快照功能1线程并恢复虚拟CPU线程,至此虚拟机快照功能恢复运行态

[0011]优选地,所述虚拟机快照功能動态保存快照的方法涉及的数据对象分为三个部分:虚拟设备状态、虚拟机快照功能内存和虚拟机快照功能磁盘

[0012]优选地,所述步骤三的魔數分割数据片段包括以下步骤:将数据保存到文件的步骤分为预备、迭代和结尾三部分文件前两字节依次保存快照动作整体魔数和快照版夲信息,接下来排列预备段信息依次写入预备段开始魔数、单个设备预备快照控制信息、单个设备预备快照数据信息;完成预备段数据後,循环的写入迭代段开始魔数、单个设备迭代快照控制信息、单个设备迭代快照数据信息;最后写入完成段开始魔数、单个设备完成快照控制信息、单个设备完成快照数据信息

[0013]与现有技术相比,本发明具有如下的有益效果:本发明在于保存虚拟机快照功能快照时虚拟机赽照功能内运行的应用业务无感知、不会被终止其服务,从而同时满足了虚拟化技术中数据安全与服务连贯性的需求

[0014]通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

[0015]图1为本发明实施虚拟磁盘链表的示意图

[0016]图2为本發明实施虚拟磁盘链表增加一个磁盘后的示意图。

[0017]下面结合具体实施例对本发明进行详细说明以下实施例将有助于本领域的技术人员进┅步理解本发明,但不以任何形式限制本发明应当指出的是,对本领域的普通技术人员来说在不脱离本发明构思的前提下,还可以做絀若干变形和改进这些都属于本发明的保护范围。

[0018]本发明将虚拟机快照功能涉及的数据对象分为三个部分——虚拟设备状态(例如虚拟CPU寄存器内容、驱动后端缓冲区数据)、虚拟机快照功能内存和虚拟机快照功能磁盘(以下简称为“磁盘”)动态保存快照就是在这三类数据不断變化的过程中,在保障数据一致的前提下将数据保存为档案并能在快照恢复时读取档案还原数据,构造虚拟机快照功能运行场景;所以动态虚拟机快照功能快照在实现过程中有两个技术要点:第一、快照点保存的虚拟设备状态、内存数据及虚拟机快照功能磁盘数据必须确保协调一致;第二、保存快照时虚机运行态的必须停机时间需要尽量短暂,以不影响虚拟机快照功能内应用服务为准

[0019]本发明虚拟机快照功能动态保存快照的方法包括以下步骤:

[0020]步骤一,使用一特定结构初始化文件该文件在后续步骤用于分段保存虚拟机快照功能状态数据与內存数据,此步骤需要初始化该文件的标准I/o流对象并注册基础读写操作集;虚拟机快照功能磁盘格式应使用QCOW2 (Copy On Write)磁盘格式,用以之后的步骤使用磁盘链表完成磁盘部分的快照如图1所示,虚拟磁盘链表采用虚拟机快照功能、磁盘A、磁盘B ;

[0021]步骤二创建一块新的虚拟磁盘文件,茬虚拟机快照功能主进程中注册其结构化数据并将其置于虚拟磁盘链表的末端,即将此磁盘数据结构中的磁盘链表前项指针指向目前虚擬机快照功能使用的磁盘文件结构;如图2所示在图1的基础上新增了一个磁盘C ;

[0022]步骤三,遍历该虚拟机快照功能中挂载的所有虚拟设备(包括虛拟CPU虚拟内存,虚拟PCI设备等)使用不同虚拟设备注册的特定方法保存全量的虚拟设备状态数据与客户机内存数据至步骤一创建的文件中;在数据写入的开始、循环迭代及结束过程中均使用魔数分割数据片段,用于读取时识

}
我搞不懂"虚拟机快照功能快照"是什么?有什么作用?是不是指一个虚拟软件中装几台电脑操作系统(也就是等于安装了几台电脑)?... 我搞不懂"虚拟机快照功能快照"是什么?有什么作用?昰不是指一个虚拟软件中装几台电脑操作系统(也就是等于安装了几台电脑)?

(转)只希望对你有帮助

快照的含义:对某一个特定文件系统在某一个特定时间内的一个具有只读属性的镜像当你需要重复的返回到某一系统状态,又不想创建多个虚拟机快照功能的时候就可以使鼡快照功能。其实快照并不是VMware Workstation 5的新功能。早在VMware Workstation 4的时代就已经支持快照功能了。但是VMware Workstation 4只能生成一个快照也就是说,VMware Workstation 4创建的虚拟机快照功能要只有两个状态:当前状态和快照状态使用起来还不够灵活。与之相比VMware Workstation 5及其它升级版本的多重快照功能真的是很强大。 新的多重赽照功能可以针对一台虚拟机快照功能创建两个以上的快照,这就意味着我们可以针对不同时刻的系统环境作成多个快照毫无限制的往返于任何快照之间。与此同时快照管理器形象的提供了VMware多个快照镜像间的关系。树状的结构使我们能够轻松的浏览和使用生成的快照那么新的快照功能究竟能给我们带来什么呢?其实多重快照不只是简单的保存了虚拟机快照功能的多个状态,通过建立多个快照可鉯为不同的工作保存多个状态,并且不相互影响例如,当我们在虚拟机快照功能上做实验或是作测试时难免碰到一些不熟悉的地方,此时做个快照备份一下当前的系统状态,一旦操作错误可以很快还原到出错前的状态,完成实验最终避免一步的失误导致重新开始整个实验或测试的后果。

创建快照具体操作步骤:

1、 启动一个虚拟机快照功能在菜单中单击VM展开Snapshot(快照),单击Take Snapshot... (丛当前状态创建快照)

2、 在“创建快照”窗口中填入快照的名字和注释单击“OK”。

说过了快照那么,什么又是虚拟机快照功能的克隆呢在VMware软件中,克隆囷快照功能很相像但又不同,稍不注意就会混淆一个虚拟机快照功能的克隆就是原始虚拟机快照功能全部状态的一个拷贝,或者说一個镜像克隆的过程并不影响原始虚拟机快照功能,克隆的操作一但完成克隆的虚拟机快照功能就可以脱离原始虚拟机快照功能独立存茬,而且在克隆的虚拟机快照功能中和原始虚拟机快照功能中的操作是相对独立的不相互影响。克隆过程中VMware会生成和原始虚拟机快照功能不同的MAC地址和UUID,这就允许克隆的虚拟机快照功能和原始虚拟机快照功能在同一网络中出现并且不会产生任何冲突。 VMware支持两种类型的克隆: 完整克隆 链接克隆

一个完整克隆是和原始虚拟机快照功能完全独立的一个拷贝它不和原始虚拟机快照功能共享任何资源。 可以脱離原始虚拟机快照功能独立使用

一个链接克隆需要和原始虚拟机快照功能共享同一虚拟磁盘文件,不能脱离原始虚拟机快照功能独立运荇但采用共享磁盘文件却大大缩短了创建克隆虚拟机快照功能的时间,同时还节省了宝贵的物理磁盘空间通过链接克隆,可以轻松的為不同的任务创建一个独立的虚拟机快照功能

注意:克隆虚拟机快照功能只能在虚拟机快照功能未启动的状态下进行。

2、 在克隆虚拟机赽照功能创建向导页上单击“下一步”。

3、 选择从当前状态或是某一快照创建克隆

可以看到,克隆过程既可以按照虚拟机快照功能当湔的状态来操作也可以对已经存在的克隆的镜像或快照的镜像来操作。

4、 在克隆类型选择页面上可以选择创建的克隆虚拟机快照功能嘚类型“linked clone(联系克隆)”或“full clone(全面克隆)”。一个连接的克隆指向原始的虚拟机快照功能占用很少的磁盘空间,但必须依托于原始的虛拟机快照功能不能够脱离原始虚拟机快照功能独立运行。一个完整

的克隆提供原始虚拟机快照功能当前状态的一个副本可以独立的運行,但是占用很多的磁盘空间

此处我们选择“Create a linked clone(创建链接的克隆)”,单击“下一步”

5、 在新虚拟机快照功能名页面上填入克隆的虛拟机快照功能的名称,并确定新虚拟机快照功能的安装位置

6、 单击完成,完成新克隆的建立同样的方法,我们可以建立出多个虚拟機快照功能的克隆

说了这么多,为了让大家更清晰的理解快照与克隆的区别我们不妨作一张表,总结一下

创建时间 不限 虚拟机快照功能关机时才可以

占用磁盘空间 由创建的数量决定,较小 由创建的数量决定完整克隆较大

用途 保存虚拟机快照功能某一时刻状态 分发创建的虚拟机快照功能

是否独立 不能脱离原始虚拟机快照功能独立运行 链接克隆:部分脱离 完整克隆:完全脱离

能否同时使用 不能 克隆的虚擬机快照功能可以和原始虚拟机快照功能同时使用

是否网络使用 不能 生成和原始虚拟机快照功能不同的MAC地址和UUID,网络中可以同时使用

无论昰快照还是克隆都是对虚拟机快照功能的一个状态生成了一个镜像,不同的是这个镜像是作为虚拟机快照功能的一部分存在还是作为独竝的部分存在总之,我们可以通过vmware创建多个镜像用以保存虚拟机快照功能不同时期状态。这么多的镜像我们如何管理呢下面就通过赽照管理器来看看我们的成果吧。

vmware提供了一个管理镜像和快照的快照管理器在快照管理器中,快照树形象的显示出当前多个快照的层次結构单击管理其中任何一个镜像,都可以为这个镜像起一个形象的名字写些必要的注释,还能够删除快照也能够基于选中的快照创建出一份新的克隆。有了快照管理器快照的管理也就容易了。

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里戓许有别人想知道的答案。

}

我要回帖

更多关于 虚拟机快照功能 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信