vmware快照的工作原理(转)

人善被人欺 人善被人欺     2022-12-15     785

关键词:

当我们为虚拟机创建的快照时,当前可写的VMDK文件变成为只读状态,并且创建一个新文件(称之为快照文件)来保存变化的内容(使用in-file delta technology)。

在初始状态下,快照文件的大小为16MB,并随着虚拟机对磁盘文件的写操作而增长。快照文件按照16MB的大小进行增长以减少SCSI reservation冲突。当虚拟机需要修改原来的磁盘文件的数据块时,这些修改会被保存到快照文件中。当在快照文件中的已经修改过的数据块需要被再次修改时,这些修改将覆盖快照文件中的数据块,此时,快照文件大小不会改变。因此,快照文件的大小永远不会超过原来的VMDK文件的大小。

快照文件的变化频率取决于虚拟机应用的写的繁忙程度,例如对于Exchange和SQL等应用,快照文件变化比较快。多个快照的情况下,在创建新的快照时,之前的快照文件变成只读的状态。

不同类型的快照文件

*-delta.vmdk文件:该文件就是前面我们所提到的快照文件,也可以理解为redo-log文件。在每创建一个快照时就会产生一个这样的文件。而在删除快照或回复到快照时间点状态时该文件会被删除。

*.vmsd文件:该文件用于保存快照的metadata和其它信息。这是一个文本文件,保存了如快照显示名、UID(Unique Identifier)以及磁盘文件名等。在创建快照之前,它的大小是0字节。

*.vmsn文件:这是快照状态文件,用于保存创建快照时虚拟机的状态。这个文件的大小取决于创建快照时是否选择保存内存的状态。如果选择的话,那么这个文件会比分配给这个虚拟机的内存大小还要大几兆。

创建快照

快照的创建可以通过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磁盘文件相合并。但是在有多个快照的情况时,效果就不一样了。

假设要删除一个虚拟机的所有快照,该虚拟机有三个快照,snap1、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锁。此外,删除快照时可能会导致性能比较大的下降,虚拟机越忙越明显。为了避免这个问题,快照的删除最好在非高峰时期。

 

 

 

大多数情况下,应该避免为同一台虚拟机创建多个快照;每次为系统创建新的快照,其运行速度都会变慢。每个快照都会建立相应的delta磁盘文件,如果虚拟机需要读取多个delta文件,必然会增加系统的I/O负载。这个过程无疑会延长虚拟机的响应时间,并且产生额外的磁盘操作。
如果你只想保存一系列快照当中的最新版本,可以将它们整合为单一快照。这种方式可以帮助提升系统运行速度和管理效率。选择目标虚拟机,单击鼠标右键,之后选择整合。你可以在虚拟机和模板视图当中查询虚拟机是否需要整合,并且在列表当中显示所有需要进行整合的虚拟机。

快照测试的工作原理以及 toMatchSnapshot() 函数在 React 组件的 Jest 快照测试中的作用是啥?

】快照测试的工作原理以及toMatchSnapshot()函数在React组件的Jest快照测试中的作用是啥?【英文标题】:HowSnapshottestingworksandwhatdoestoMatchSnapshot()functiondoinJestSnapshottestingforReactcomponents?快照测试的工作原理以及toMatchSnapshot()函数在React... 查看详情

vmware的快照和克隆总结

...虚拟机的时候,就可以使用快照功能。其实,快照并不是VMwareWorkstation5的新功能。早在VMwareWorkstation4的时代,就已经支持快照功能了。但是VMwareWorkstation4只能生成一个快照,也就是说,VMwareWorkstation4创建的虚拟机要只有两个状态... 查看详情

vmware虚拟机怎么拍摄快照/vmware如何新建快照

参考技术A1、点虚拟机菜单,快照子菜单,再点拍摄快照2、在弹出的对话框中填写相关信息,点拍摄快照按钮即可 参考技术B快照可以将你的系统定格在某个状态下!第1个按钮就是做快照第2个按钮就是回到当前的一次快照第3个... 查看详情

vmware自动快照时间

VMware的自动快照时间取决于你选择的快照策略。用户可以在VMwarevSphere客户端中配置快照策略,其中可以设置快照的自动保存时间。如果你没有设置快照策略,默认情况下,VMware会创建每天一次的快照,每周一次的快照,每月一... 查看详情

vmware虚拟机删除文件,空间不释放

VMware虚拟机删除文件,空间不释放我在VMware中装了Suse,从win桌面拷贝东西到了suse,然后删除到回收站,清空回收站,但是虚拟机的空间没有增加,导致虚拟机的空间越来越大,直到满的不能用,为什么?怎么解决桌面虚拟机就... 查看详情

vmware数据恢复之exsi5.5虚拟机还原快照数据恢复方法

...这些数据的唯一方法就是恢复数据。今天要说的就是一起vmware虚拟化误操作的数据恢复案例。·【虚拟化环境描述】 查看详情

服务器数据恢复误操作还原vmware虚拟机快照的数据恢复方案

服务器数据恢复环境:几年前从一台物理服务器上迁移到ESXI上的虚拟机,在迁移完成后做了一个快照。服务器故障:某天工作人员误操作还原了几年前迁移完成后所做的快照,将这台虚拟机的数据恢复到几年前刚迁移完成时候... 查看详情

vsphere和vmware快照的不足之处

当快照创建时虚拟机执行一个读操作,hypervisor会检查快照VMDK,查看是否有被读取的区块存在。如果有,则从快照中为虚拟机提供这个区块,如果没有,虚拟机还需要去读取基础VMDK。如果只有一个快照,这并不是什么问题,只不... 查看详情

vmware虚拟机,在开机状态下,是无法拍摄快照的吗?

vmware虚拟机,在开机状态下,是无法拍摄快照的吗?我点击拍摄快照,没反应?在快照管理器里面也没有显示出刚刚拍过的快照参考技术A虚拟机在开机状态下是可以拍摄快照的拍摄快照需要时间,左下角有进度显示需要等快照... 查看详情

vmware无法获取快照信息锁定文件失败

注;本文来源于《Vmware无法获取快照信息锁定文件失败》因电脑睡眠失败造成关机了。造成原因:如果使用VMWare虚拟机的时候突然系统崩溃蓝屏,有一定几率会导致无法启动,会提示:锁定文件失败,打不开磁盘或快照所依赖的... 查看详情

vmware无法获取快照信息锁定文件失败

今天早上起来发现虚拟机崩了;造成原因:如果使用VMWare虚拟机的时候突然系统崩溃蓝屏,有一定几率会导致无法启动,会提示:锁定文件失败,打不开磁盘或快照所依赖的磁盘;这是因为虚拟机在运行的时候,会锁定文件,防... 查看详情

几张图片帮助记忆docker基本原理(转)

...的非常好的一篇文章,不知道为什么被删除了。利用Google快照,做个存档。快照地址:地址作者地址:青牛什么是dockerDocker是一个开源项目,诞生于2013年初,最初是dotCloud公司内部的一个业余项目。它基于Google公司推出的Go语言实... 查看详情

vmware虚拟机如何使用快照功能备份系统

参考技术A  1、首先下载安装虚拟机VMWare,并且在虚拟机内安装一个虚拟系统  2、这时候打开虚拟机,鼠标在里面是移动不到实体机上的,所以需要安装虚拟机的工具。  3、虚拟机工具在完整版里面自带,也可以去搜索... 查看详情

vmware虚拟机提示:“锁定文件失败,打不开磁盘或快照所依赖的磁盘”的解决方法

VMWare虚拟机提示:“锁定文件失败,打不开磁盘或快照所依赖的磁盘”的解决方法   如果使用VMWare虚拟机的时候突然系统崩溃蓝屏、断电等,有一定几率会导致无法启动,会提示:锁定文件失败,打不开磁盘或快照所... 查看详情

什么是虚拟机的快照?

我搞不懂"虚拟机快照"是什么?有什么作用?是不是指一个虚拟软件中装几台电脑操作系统(也就是等于安装了几台电脑)?虚拟机的快照是虚拟机在某个点及时的副本。虚拟机快照是对某一个特定文件系统,在某一个特定时间... 查看详情

hdfs的快照原理和hbase基于快照的表修复

...的删除策略进行hbase的数据表恢复。本文主要介绍了hdfs的快照原理和根据快照进行的数据恢复。1.Hdfs的快照原理1.1快照原理    Hdfs的快照(snapshot)是在某一时间点对指定文件系统拷贝,快照采用只读模式,可以对... 查看详情

快照原理

快照使用编辑如果你创建了多于一个的虚拟机快照,那么,你将有多个还原点可以用于恢复。当你创建了一个快照,那快照些现在可写的在那个点上就变成了只读的。使用in-filedelta技术就能创建新文件记录所有的关于原始磁盘文... 查看详情

zookeeper的功能以及工作原理(转)

 Zookeeper的功能以及工作原理 1.ZooKeeper是什么?ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下... 查看详情