什么是虚拟机快照

什么是虚拟机快照?

我们在玩转虚拟机的时候,每一个时刻,都有一些特定的程序在VM内部运行。其中我们比较关心的是在VM的内存中运行的内容,还有VM的虚拟磁盘上存储的内容。快照就是用来截取某个VM在特定时刻的状态,主要是内存和磁盘的内容状态。

这有什么作用呢?
举个栗子,我们的应用总是要不断地更新和升级。我们担心更新和升级过程中可能会存在的问题,导致应用出错。这时做快照就可以为我们提供一个还原点,以便升级出错后来快速回滚到升级前的状态。

从VMware平台上来看,我们给一个VM打一个快照,它会创建一个vmsn文件,这个文件将用来储存内存中运行的内容。那么内存中的内容获取到了,磁盘中的内容怎么办呢?

在做快照的时候VMware会把当前VM的虚拟磁盘文件(vmdk文件)设置为只读。为了保证虚拟磁盘文件被锁定后VM仍然能继续运行,它还会创建一个delta文件,这个delta文件专门用来储存做快照之后新写入的数据。

当我们后续遇到不好修复的系统或者应用程序错误时,我们可以用之前做的快照来还原VM到当初的状态。这在VMware平台上只需要将不再需要的delta.vmdk(包含错误内容)丢弃,并将原来的虚拟磁盘文件的vmdk从只读状态解锁,然后继续在该vmdk上写入。同时将vmsn文件的内容恢复到内存即可复原VM做快照时的状态。

在这里插入图片描述

这里有个问题:
既然快照这么方便,我们可以长期使用快照来做还原点,或者实现备份吗?

答案是不应该。

假设我们半年都不删除快照,那么这半年的VM写入磁盘的数据都会被写到delta.vmdk,后续如果要管理和删除快照时将会遇到一些麻烦。

删除快照时,VM还是要保持最新状态,vmsn文件中保存的内存状态将不再需要,但被写入delta.vmdk的数据不应该被丢弃。它们需要被合并到源vmdk中,如果delta.vmdk很大的话,这将需要花费很长的时间。这段时间内无法取消这个过程,VM也不能重启或关机,而且会占据额外的磁盘资源。

所以虚拟机快照虽然很有用,但是不应该被滥用,也不应该被长期保持。备份虚拟机还是应该要采用专门的备份方案。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值