快照使用
编辑html
若是你建立了多于一个的
虚拟机快照,那么,你将有多个
还原点能够用于恢复。当你建立了一个快照,那快照些如今可写的在那个点上就变成了只读的。使用in-file delta技术就能建立新文件记录全部的关于原始磁盘文件的变动(delta)。
文件大小
快照文件的大小不能超过原始磁盘文件的大小。任什么时候候,一个磁盘块改变了,就将在delta文件里建立快照并能随着改变而更新。若是进行一次快照后,你改变了每一个单独的
磁盘存储块,这个快照将仍然象原始磁盘文件那么大。快照文件最初很小(16MB),不过,随着对
虚拟磁盘文件的写入将增大。
16MB的快照空间用于下降SCSI预留冲突。当收到改变原始磁盘上存储块的请求,它代替在delta文件里的改变。若是先前在delta文件里更改了的磁盘存储块再次被更改,因为它简单地更新在delta文件里现有的存储块,不会增长delta文件的大小。
增加率
快照的增加率由服务器上磁盘写入活动发生次数决定。拥有磁盘写入加强应用的服务器,诸如SQL和Exchange服务器,它们的快照文件增加很快。另外一方面,拥有大部分静态内容和少许磁盘写入的服务器,诸如Web和
应用服务器,它们的快照文件增加率很低。当你建立许多快照时,新delta文件被建立而且原先的delta文件变成只读的了。每一个拥有大量快照的delta文件可能变得和原始磁盘文件同样大。
当你建立一个
虚拟机快照时,这是一个特定的文件。它也是redo-log日志。delta文件是在基础VMDK(虚拟机磁盘)上的变动位图,所以,它不能增加到比VMDK还大。为虚拟机建立每个快照时,都会建立一个delta文件。当快照被删除或在快照管理里被恢复时,这些文件将自动删除。
这些文件用于存储关于快照的元数据和信息。这个文件是文本格式的,里面包括诸如快照显示名称、UID(编号)和磁盘文件名等信息。在你没建立虚拟机快照以前,这个文件的初始大小为0字节。这样说来,只要进行快照,这个文件就会增大和持续更新。
在快照被移开后,这个文件不能被彻底清除。一旦你删除了个快照,它将仍然在文件里为每一个快照遗留位置,不过仅增长编号并在“Consolidate Helper”里放置名称,这多是用来整合备份*.vmsn file
这是快照状态文件,里面存储的是使用快照时,一台
虚拟机精确的运行状态。这个文件大仍是小取决于你选择保留这台虚拟机的存储做为快照的一部分。若是你选择保留虚拟机的存储,那么,这个文件将比较大,而后分配给虚拟机最大化的RAM。
这个文件相似于VMware暂停状态文件.vmss。虚拟机每一个快照都将建立一个.vmss文件;当移动快照时,这些文件自动删除。
步骤
你能够经过VMware Infrastructure Client(VI Client)里的Snapshot Manager或直接使用ESX Service控制台上的指令行工具建立快照。使用指令能够启动或关闭一台
虚拟机。当建立快照时也能够暂停虚拟机。若是虚拟机切断了电源,你将不能选择对虚拟机存储进行快照。
流程
经过使用直接链接到一台ESX服务器或链接到VirtualCenter的VI Client来管理快照。若是你选择使用命令行界面来代替,建立快照的语法是“vmware-cmd createsnapshot”,例如“vmware-cmd myvm1.vmx createsnapshot snap1 ’before upgrade’ 1 1”。停顿与存储的选择是1或0。选择1将在进行快照前中止文件系统写入。选择1将快照
虚拟机存储状态进行存储。若是建立多个快照,一旦新的快照被建立,先前的快照变成只读的。
删除
当你为一台
虚拟机删除全部快照时,全部建立的delta文件被合并到虚拟机原先的VMDK磁盘文件,而后被删除。若是你选择只删除一个单独的快照,这个快照合并到它的父级快照。若是你选择恢复一个快照,当前的磁盘和存储状态被丢弃,虚拟机恢复到快照时的状态。不管你恢复哪一个快照, 这个快照就成为新的父级快照。然而,这个父级快照一般不是最近的快照。若是你恢复到一个旧的快照,它就变成虚拟机目前状态的父级快照。在Snapshot Manager里能够看见这个父级快照,在它下面有一个标签“You are here”。
你能使用VI Client或vmware-cmd命令行工具删除或恢复快照。VI Client里的Snapshot Manager提供更高的灵活性,也比CLI(
命令行界面)更容易使用。VI Client里的“Revert to Snapshot”选项与Snapshot Manager之间的一个重要差异是,恢复选项简单地恢复到最后一次快照,而Snapshot Manager能灵活地选择恢复到某一特定的快照。这叫作“Go To in Snapshot Manager”。
恢复
若是你使用vmware-cmd,语法是“vmware-cmd removesnapshots”,这能移除全部快照,而“vmware-cmd revertsnapshot”能恢复到最后一个快照。若是你须要移除或恢复特定的快照,你必须使用VI Client。
若是你恢复一个不包括存储状态的快照时,服务器将断电,一旦从新启动,将会使用先前的快照。若是快照包括存储状态,
虚拟机将暂停,而后回到先前快照的磁盘和存储状态。
尽管在使用快照的过程中VMware Tools并非必须的,但仍是强烈推荐使用这种工具。VMware Tools容许操做系统中止——或者减小——磁盘活动,所以能够更加轻松地制做快照,而再也不须要VMware主机建立PIT复本。
能够经过多种方式检查快照文件大小,最为简单的方式是使用RVTools或者启用快照大小特性。
还能够在PowerCLI当中执行如下命令:
get-vm | get-snapshot
这种方式能够列出目标vCenter当中的全部快照。
若是你尝试使用vMotion或者Storage vMotion之外的方式来移动虚拟机,那么快照可能会致使一些问题。尽管你可使用copy命令来复制任何文件,可是若是在具备快照的虚拟机上使用这种方式将会致使文件损坏等状况发生。
有几种类型虚拟机不能为其制做快照。其中包括使用共享SCSI总线的虚拟机,好比集群服务器。而且不能为单独磁盘制做快照。若是已经启用physical raw device mapping,则不能为其建立快照,由于底层磁盘由虚拟机进行管理。也就是说,若是不是由VMware主机进行管理,便不能为其建立快照。
若是你运行的是ESXi 4或者以前的版本,那么还须要注意一些其余问题。首先,不能使用Storage vMotion技术迁移一台具备多个快照的虚拟机。最为快速的解决方式是整合全部快照,这意味着再也不可以将虚拟机恢复到多个时间点的状态。这种限制在vSphere 5当中被移除。另一种常常发生的问题是当整合大型快照时,会出现主机暂时无响应的状况,可是主机上的虚拟机仍然在正常运行,这种状况持续一段时间以后会自动消失。
大多数状况下,应该避免为同一台虚拟机建立多个快照;每次为系统建立新的快照,其运行速度都会变慢。每一个快照都会创建相应的delta磁盘文件,若是虚拟机须要读取多个delta文件,必然会增长系统的I/O负载。这个过程无疑会延长虚拟机的响应时间,而且产生额外的磁盘操做。
若是你只想保存一系列快照当中的最新版本,能够将它们整合为单一快照。这种方式能够帮助提高系统运行速度和管理效率。选择目标虚拟机,单击鼠标右键,以后选择整合。你能够在虚拟机和模板视图当中查询虚拟机是否须要整合,而且在列表当中显示全部须要进行整合的虚拟机。
[1]
VMware快照工做原理
当建立
VMware快照时,实际上咱们并无复制原始磁盘当中的任何数据。而是将原始磁盘设置为VMware快照读状态,而且建立一个VMware快照回滚日志——有时也称之为增量磁盘,这种增量磁盘其实就是在VMware快照建立以后,针对任何虚拟机写入操做所产生的占位符。
图1.增量文件当中包含的仅仅是快照建立以后的虚拟机变化部分
图一展现了VMware快照的工做流程。假设磁盘当中包含了一个单词“SNAPSHOT”,而且每一个字母都位于本身的VMware快照磁盘块当中。当咱们建立磁盘VMware快照的时候,原始磁盘变为只读状态,一个新的增量VMDK文件被建立。这时第二个块变为“L”,而且“S”被加入到第九个块当中,这样就产生了新的单词“SLAPSHOTS”。
为了保证全部VMware快照文件都是安全的,咱们须要进行一系列操做。咱们能够删除VMware快照,这样将会简单地将新的块合并到原始的VMDK文件当中,而且将“SLAPSHOTS”提交给虚拟机——或者咱们能够回滚到另一个时间点,好比磁盘刚刚读入“SNAPSHOT”的时候。每次建立VMware快照的时候,都会建立一个新的增量磁盘,保证咱们可以回滚到VMware快照链当中的任什么时候间点。
VMware快照可否修复VMDK文件
若是原始VMDK文件遭到破坏或者被删除,那么VMware快照管理员就会面临不少棘手问题。正如图二所示,包含“SNAPSHOT”的原始VMware快照磁盘已经消失。如今咱们手中只剩下了包含字母“L”和“S”的增量磁盘,而指向磁盘的元数据(metadta)已经消失。
图2.若是只使用损坏或者丢失VMDK文件的VMware快照,那么没法重建原始文件。
也许你已经得出告终论:若是包含“SNAPSHOT”的原始VMware快照磁盘或者原始块丢失,那么使用增量磁盘当中的部分数据没法重建任何东西。
VMware快照缺失文件种类决定可否进行恢复
仅仅使用VMware快照文件来恢复丢失的VMDK文件是不可能的,可是根据丢失VMDK文件的不一样,咱们可能拥有几种解决方案。一个VMware快照虚拟机磁盘由两个不一样的文件组成:VMDK文件——虚拟磁盘的最重要组成部分——保存了全部数据,以及描述符文件——VMX文件——为虚拟机配置文件提供相关VMware快照磁盘信息。
若是VMDK文件丢失,那么只能寄但愿于保存了VMware快照备份文件,而若是描述符文件丢失,那么可使用ESXi命令行进行恢复。
[2]
VMware快照能够帮你规避不少麻烦,VMware快照并非备份。
VMware快照的做用被不少人混淆了做用,VMware快照致使他们陷入无限麻烦中。要理解VMware快照是什么,咱们须要定义VMware快照不是什么。
VMware快照不是备份,这是毫无疑问的。备份是为可以在数据丢失和文件损坏时恢复的长期存储设计的。撤销功能对于使用过
Office应用程序的不少人来讲都很熟悉。这个功能是容许你在工做完成时,能够在你想要选择的确切的时间点后退一步。可是VMware快照没有撤销功能。因此,如今你们知道VMware快照不是什么了吧。
VMware快照是一个虚拟机的时间点。VMware快照不是通常的自动化项目;VMware快照是在某一时间点上手动建立的,并且VMware快照还能够跳回到这个时间点。当这个“时间点”被建立后,虚拟机继续运行,管理员能够继续运行现有的任务。若是升级失败,管理员能够将虚拟机恢复到升级前的时间点上。这听起来跟撤销功能很是类似,你能够恢复到你以前建立的时间点上这一点确实是事实。一般有两种可用的快照类型:
VMware快照之传统快照
传统的VMware快照不会捕捉虚拟机当前内存状态。这种类型的VMware快照经常是快速执行,由于VMware快照不包含活动的项目。运行的虚拟机在建立VMware快照时不须要暂停。若是管理员选择恢复虚拟机到VMware快照,虚拟机将不得不从新引导就像正常的关机重启。
VMware快照之快照内存状态
这种类型的VMware快照会在作快照时捕捉虚拟机的内存状态,以及其余活动(
磁盘,
I/O,网络)。这种VMware快照执行时间较长,可是VMware快照有一个额外的好处:若是你恢复到这个VMware快照时,虚拟机将回到你建立时确切的时间点,若是当你建立VMware快照时这台虚拟机还在运行着任务,那么VMware快照将继续在你建立VMware快照完成确切的时间点上。
[3]
VMware快照出错的时候
VMware快照还有一个强大的功能,就是若是你虚拟机使用不当,VMware快照能够帮你去除错误。如今,咱们知道VMware快照是什么以及VMware快照如何工做了,让咱们来看一下你不该该作的一些事。
VMware快照是时间点,意味着只是临时的。如今,人们对于临时的定义不一样,这就是问题所在。那个增量变化文件记录着虚拟机的全部改变:若是是一个繁忙的虚拟机,那么VMware快照的增量变化文件就会变得愈来愈大。那个增量变化文件存放在数据库服务器中,
VMware快照删除一个大型的或者长时间的快照是记录全部变化的增量变化文件应用于本来的
VMDK文件的一个过程。VMware快照对于较小的增量变化文件来讲,这个过程相对简单,可是对于大型的VMware快照来讲,这个过程会致使虚拟机暂停或者变化应用到原来的
VMDK会暂停几秒或者几分钟。
VMware快照的利与弊都是牢牢相连的。VMware快照可让管理员在同一个虚拟机的不一样时间来回切换——创造一种相似撤销功能的体验。但问题是,你拥有了更多的VMware快照,你就会拥有更多的增量变化文件,那么就会增长损坏的可能性。
VMware中的快照是对VMDK在某个时间点的“拷贝”,这个“拷贝”并非对VMDK文件的复制,而是保持磁盘文件和系统内存在该时间点的状态,以便在出现故障后虚拟机可以恢复到该时间点。若是对某个虚拟机建立了多个快照,那么就能够有多个可恢复的时间点。算法
当咱们为虚拟机建立的快照时,当前可写的VMDK文件变成为只读状态,而且建立一个新文件(称之为快照文件)来保存变化的内容(使用in-file delta technology)。数据库
在初始状态下,快照文件的大小为16MB,并随着虚拟机对磁盘文件的写操做而增加。快照文件按照16MB的大小进行增加以减小SCSI reservation冲突。当虚拟机须要修改原来的磁盘文件的数据块时,这些修改会被保存到快照文件中。当在快照文件中的已经修改过的数据块须要被再次修改时,这些修改将覆盖快照文件中的数据块,此时,快照文件大小不会改变。所以,快照文件的大小永远不会超过原来的VMDK文件的大小。后端
快照文件的变化频率取决于虚拟机应用的写的繁忙程度,例如对于Exchange和SQL等应用,快照文件变化比较快。多个快照的状况下,在建立新的快照时,以前的快照文件变成只读的状态。安全
不一样类型的快照文件服务器
*-delta.vmdk文件:该文件就是前面咱们所提到的快照文件,也能够理解为redo-log文件。在每建立一个快照时就会产生一个这样的文件。而在删除快照或回复到快照时间点状态时该文件会被删除。网络
*.vmsd文件:该文件用于保存快照的metadata和其它信息。这是一个文本文件,保存了如快照显示名、UID(Unique Identifier)以及磁盘文件名等。在建立快照以前,它的大小是0字节。app
*.vmsn文件:这是快照状态文件,用于保存建立快照时虚拟机的状态。这个文件的大小取决于建立快照时是否选择保存内存的状态。若是选择的话,那么这个文件会比分配给这个虚拟机的内存大小还要大几兆。工具
建立快照post
快照的建立能够经过VMware VI客户端的Snapshot Manager来实现,或者经过ESX服务器的Service Console的命令行vmware-cmd来实现。不管虚拟机是在运行、关机仍是挂起的状态,均可以建立快照。Snapshot能够经过VI客户端直接链接到ESX Server或者链接到VirtualCenter来管理。
删除快照或者回滚到快照点状态
当删除虚拟机的全部快照时,针对该虚拟机所建立的全部delta文件中的内容将会合并到原来的vmdk文件中,合并完成后再删除vmdk文件。若是只选择删除一个快照,那么这个快照的delta文件将和其父快照的delta文件进行合并。若是选择回滚到某一个快照,那么当前的磁盘和内存状态将会被丢弃,并且虚拟机会转变到revert-to的状态。不管选择哪一个快照进行回滚,该快照都会变成当前的父快照,就是说当前运行的虚拟机会在这个快照之下。所以,父快照不必定是最近所建立的快照(在没有回滚的状况下,父快照通常都是最近所建立的快照)。在Snapshot Manager中父快照之下通常有“You are here”的标记。
若是选择回滚的快照不包含内存状态,那么该虚拟机将会被关机,在管理员启动该虚拟机时应用所选择的快照。若是包含内存状态的话,那么虚拟机会短暂的停顿一下,而后回复到快照时的磁盘和内存状态。
磁盘空间和删除多个快照
在建立快照前,全部的写操做都写入磁盘文件。可是有了快照以后,磁盘文件保持不变,而写操做写入delta文件,同时,若是保存内存状态的话,vmsn文件还要占用比该虚拟机稍大一些的空间。
在只有一个快照时,在删除快照时不须要额外的空间。由于要么直接删除快照文件,要么把快照文件和VMDK磁盘文件相合并。可是在有多个快照的状况时,效果就不同了。
假设要删除一个虚拟机的全部快照,该虚拟机有三个快照,snap一、snap2和snap3。首先,snap3的快照文件要被合并到snap2的快照文件中,致使snap2占用空间增长。而后,snap2被合并到snap1中,致使snap1占用的空间增长。最后,snap1合并到VMDK文件中,此时不会增长空间开销。在合并完成后,快照才会被删除。
一种替代的方式是依次删除快照,这样就不会增长所须要的空间,只是稍微繁琐一些。
删除快照所须要的时间
经过VI客户端删除快照时,VI的状态栏中显示的信息可能会产生误导。一般,状态栏会很快到达95%完成的状态,可是会在95%的状态等待较长的时间一直到合并完成。VirtualCenter对全部的任务都有15分钟的超时值,即便后台还在合并,可是过了15分钟后,VirtualCenter会报告该操做超时。
一种查看该任务是否完成的方式是经过VI客户端来浏览该虚拟机的datastore。若是该快照对应的delta文件不存在了,则说明该快照被删除了。
若是快照存在的时间比较长,那么快照文件就会变得比较大,所以在删除快照时就须要比较长的时间进行合并。合并的时间取决于虚拟机的繁忙程度,在关机的状态下合并的速度较快。而ESX服务器后端的磁盘子系统的繁忙程度也会影响合并的时间。
一个100GB的快照文件可能须要3-6个小时来合并到原来的VMDK文件中。而从ESX3.5开始,因为VMware修改了合并的算法,可能须要更长的时间来合并(参见VMware文档Consolidation of large or deeply nested snapshots)。这会影响虚拟机和ESX服务器的性能。所以,建议限制快照的保留时间,当不须要时即刻删除快照。
快照和metadata锁对ESX性能的影响
快照对ESX服务器以及虚拟机的性能影响体如今几个方面。但建立快照时,虚拟机的活动会暂时停顿一下,此时若是经过ping命令去检查虚拟机的状态,能够看到一些timeout的response。此外,建立快照会致使metadata的更新,为了不SCSI Reservations冲突会短期内对LUN加锁,从而致使在短暂的时间内,这个LUN将只能由一个ESX服务器进行排他性访问。
若是为虚拟机建立了快照,虚拟机在运行的状态中,该快照是活跃的。只要快照是活跃的,那么虚拟机的性能就会降低。由于ESX服务器对delta文件的写入方式不一样于VMDK文件,并且效率相对较低。delta文件每次以16MB的大小来增加,它会致使另外一种metadata锁。
最后,删除或者回滚快照都会建立一个metadata锁。此外,删除快照时可能会致使性能比较大的降低,虚拟机越忙越明显。为了不这个问题,快照的删除最好在非高峰时期。