虚拟机快照技术是指,在虚拟机运行过程中将虚拟机的完整运行状态,包括内存、磁盘、 CPU、网络等,保存到持久化的外部设备中,从而当虚拟机发生故障时可以通过备份的数据恢复虚拟机的运行。快照里面内存的快照又是非常重要非常关键的一部分。
内存快照主要实现机制主要有三种:停机拷贝机制(stop-and-copy),预拷贝机制(pre-copy),后拷贝机制(post-copy)。
停机拷贝机制(stop-and-copy)
在进行虚拟机快照的时刻要先将虚拟机挂起,然后在保存完虚拟机的完整状态后再恢复虚拟机的运行。
这种方式简单,但使得整个快照过程的虚拟机停机时间完全取决于虚拟机的内存大小,而且该时间可以达到几十秒,严重影响虚拟机的性能。
主流kvm、xen、vmware等都是基于停机拷贝方式实现快照功能。
预拷贝机制(pre-copy)
通过多轮迭代的方式对内存页面进行保存。每一轮保存自上一轮以来变脏的内存页面,当需要保存的内 存页面数量收敛到可以在一个较短的停机时间内完成保存的时刻,虚拟机停机。
写密集时,收敛时间较长,多轮拷贝影响性能。“状态漂移”现象。
Vnsnap等基于预拷贝机制实现快照。
后拷贝机制(post-copy)
首先停