searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

VMware的快照原理

2023-06-28 10:00:02
73
0

 

VMware的快照是基于数据块的快照。快照也是以一个文件方式存在的,缺省位置和虚拟机在同一目录下,它是一个Delta文件。每一次的快照就会产生一个新的Delta文件,而以前的Delta文件就进入一个只读状态。并且它是以16MB的大小来进行增长的。 

快照文件的最大大小是不可能超过原磁盘文件的大小。 

  

快照的不同类型: 

  1. *-delta.vmdk文件:这是当你对一个VM做一个快照时产生的差异文件,也就是一个redo-log文件。Delta文件是一个针对初始VMDK而产生变化的一个Bitmap。
  2. *.vmsd文件:这个一个是用来存放关于快照的metadata和相关信息的文件。它是一个文本文件,存放一些诸如快照名,UID,磁盘文件名等等。它起始大小是0字节,直到做了第一个快照时才会改变大小。
  3. *.vmsn文件:这是一个快照状态文件,它存放的是当你做快照时虚拟机的真实运行状态。它的大小据于你是否选择保留VM的内存作为快照的一部分相关。

  

命令行创建快照: 

vmware-cmd myvm1.vmx createsnapshot snap1 'before upgrade' 1 1". 

The options for quiesce and memory are either 1 for yes or 0 for no. 

  

快照的删除或恢复: 

当你删除一个VM的所有快照时,所有在快照时创建出来的Delta文件被融合回原来的VMDK文件,然后删除这些Delta文件。但当你只删除一个快照时,那么只有这个快照会融合回它的上一级快照。 

当你恢复一个快照时,现有的磁盘和内存状态被丢弃,然后VM被带回到那个时间点的状态,而这个快照成为新的父级快照。父级快照不一定就是最新做的快照,它在快照管理器中被标注为”you are here”。 

当你用vmware-cmd来做时, vmware-cmd removesnapshots会删除所有的快照,vmware-cmd revertsnapshot会复原到最近的快照。若你要删除或复原到某一个快照时,你不能用命令行而需要用VIC。 

若你复原一个不包含内存状态的快照,当你将VM启动时,它将会应用前一个快照。 

  

如何找到那些有快照的VM呢? 

到/vmfs/volumes目录下: 运行 find –iname “*-delta.vmdk” –mtime +7 –ls 可以找到在7天内没有改变的快照。运行 find –iname “*-delta.vmdk可以找到所有的快照文件。 

  

如何改变快照文件的缺省位置: 

在VM的配置文件VMX中加一句: workingDir=”/vmfs/volumes/Snapvolume/snapshots/”。 

  

在做Vomtion时,若你的快照文件不在共享存储位置或新ESX主机不能访问快照文件时,当迁移做完时,VM会崩溃掉。所以,建议在做Vmotion时,最好先把快照commit掉。 

  

快照与磁盘空间的关系: 

当一个VM只有一个快照时,当你删除或commit快照时,你不需要额外的空间。但当一个VM有多个快照时,当你删除所有快照时,你需要额外的空间。 

假设你要删除一个VM的所有快照(snap1,snap2,snap3),首先,snap3将融合进snap2,这将导致snap2增长,接下来,snap2将融合进snap1,这会导致snap1增长。最后,snap1将融合进原来的VMDK,这不需要额外的空间。只有当VMDK文件融合操作完成时,快照才会被删除,所以当一个有20G大小快照的VM在做commit时潜在地需要额外的20G。

0条评论
作者已关闭评论
m****n
2文章数
0粉丝数
m****n
2 文章 | 0 粉丝
m****n
2文章数
0粉丝数
m****n
2 文章 | 0 粉丝
原创

VMware的快照原理

2023-06-28 10:00:02
73
0

 

VMware的快照是基于数据块的快照。快照也是以一个文件方式存在的,缺省位置和虚拟机在同一目录下,它是一个Delta文件。每一次的快照就会产生一个新的Delta文件,而以前的Delta文件就进入一个只读状态。并且它是以16MB的大小来进行增长的。 

快照文件的最大大小是不可能超过原磁盘文件的大小。 

  

快照的不同类型: 

  1. *-delta.vmdk文件:这是当你对一个VM做一个快照时产生的差异文件,也就是一个redo-log文件。Delta文件是一个针对初始VMDK而产生变化的一个Bitmap。
  2. *.vmsd文件:这个一个是用来存放关于快照的metadata和相关信息的文件。它是一个文本文件,存放一些诸如快照名,UID,磁盘文件名等等。它起始大小是0字节,直到做了第一个快照时才会改变大小。
  3. *.vmsn文件:这是一个快照状态文件,它存放的是当你做快照时虚拟机的真实运行状态。它的大小据于你是否选择保留VM的内存作为快照的一部分相关。

  

命令行创建快照: 

vmware-cmd myvm1.vmx createsnapshot snap1 'before upgrade' 1 1". 

The options for quiesce and memory are either 1 for yes or 0 for no. 

  

快照的删除或恢复: 

当你删除一个VM的所有快照时,所有在快照时创建出来的Delta文件被融合回原来的VMDK文件,然后删除这些Delta文件。但当你只删除一个快照时,那么只有这个快照会融合回它的上一级快照。 

当你恢复一个快照时,现有的磁盘和内存状态被丢弃,然后VM被带回到那个时间点的状态,而这个快照成为新的父级快照。父级快照不一定就是最新做的快照,它在快照管理器中被标注为”you are here”。 

当你用vmware-cmd来做时, vmware-cmd removesnapshots会删除所有的快照,vmware-cmd revertsnapshot会复原到最近的快照。若你要删除或复原到某一个快照时,你不能用命令行而需要用VIC。 

若你复原一个不包含内存状态的快照,当你将VM启动时,它将会应用前一个快照。 

  

如何找到那些有快照的VM呢? 

到/vmfs/volumes目录下: 运行 find –iname “*-delta.vmdk” –mtime +7 –ls 可以找到在7天内没有改变的快照。运行 find –iname “*-delta.vmdk可以找到所有的快照文件。 

  

如何改变快照文件的缺省位置: 

在VM的配置文件VMX中加一句: workingDir=”/vmfs/volumes/Snapvolume/snapshots/”。 

  

在做Vomtion时,若你的快照文件不在共享存储位置或新ESX主机不能访问快照文件时,当迁移做完时,VM会崩溃掉。所以,建议在做Vmotion时,最好先把快照commit掉。 

  

快照与磁盘空间的关系: 

当一个VM只有一个快照时,当你删除或commit快照时,你不需要额外的空间。但当一个VM有多个快照时,当你删除所有快照时,你需要额外的空间。 

假设你要删除一个VM的所有快照(snap1,snap2,snap3),首先,snap3将融合进snap2,这将导致snap2增长,接下来,snap2将融合进snap1,这会导致snap1增长。最后,snap1将融合进原来的VMDK,这不需要额外的空间。只有当VMDK文件融合操作完成时,快照才会被删除,所以当一个有20G大小快照的VM在做commit时潜在地需要额外的20G。

文章来自个人专栏
云技术相关技术
2 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0