虚拟机建立快照_虚拟机的快照功能是如何实现的?

虚拟机快照是通过将内存状态打标签并写入硬盘实现的。快照过程不产生新文件,而是对块文件进行增量修改。读取快照时,加载对应标签的块,内存替换过程可能耗时。删除快照会根据影响范围调整块文件大小。多个快照不会显著影响性能,但可能因文件索引复杂性增加导致问题。
摘要由CSDN通过智能技术生成

泻药

题主很仔细,快照确实是虚拟化很棒的一个技术特性,现在物理机角度理解它确实不太容易,我尝试白话解释下原理。

首先,虚拟机和物理机显著的不同是我们看待一台虚拟机是当成文件处理的,理解了这点,下面的问题就好理解了

先说建立快照,实质的过程把当前的内存状态打个标签写入硬盘的过程,这两部都很简单,就像是git的add .和commit一样存档而已,唯一的不同是,这个写入硬盘的过程是除了一个几k的标签外,不产生任何新文件的,并不是想象中的把当前文件另存为新文件,然后再有个专门的标签索引器来做时光穿梭,就像是:

原来硬盘里:

a (a).current

加载到内存里:

a

内存里写点东西:

abc

快照后内存里:

abc

快照后硬盘里

abc _abc.tag (abc).current

这里面abc是那个只增不减的块文件, (abc).current是当前的虚拟机文件状态标签,_abc.tag只是从(abc).current复制出来的一个存档小标签。

然后快照完继续操作虚拟机,这个过程叫copyonwrite但是直译过来并不直观,c@w的意思是指,不论你将来怎么对这个文件进行修改,都只能对文件是增量修改而已,写入过程不会造成旧档丢失,除非你快照删掉,才会把快照关键的存档连带去掉。

比如你添加d删除a

修改前硬盘:

abc _abc.tag (abc).current

加载到内存:

abc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值