虚拟机快照工作原理的详细解释

sar*_*ean 2 linux ubuntu snapshot kvm-virtualization virsh

我想完全了解虚拟机快照的工作原理。尽管我已经研究过这个主题,但我似乎无法找到快照实际工作方式的“高级”概述。我的问题是:

示例场景:我有一个运行 KVM 的 Ubuntu 12.04 主机和一个 Ubuntu 来宾。虚拟机采用 RAW 格式。我使用virsh命令对其进行快照,

  1. 生成的文件(快照)是否可启动?或者只是更改需要基本图像可用的数据?
  2. 如何回滚到先前的状态?
  3. 拥有冗长的快照链是否会降低虚拟机的性能?如果是这样,为什么?
  4. 如何管理/修剪快照?

dya*_*sny 7

  • 快照是图像链的一部分,需要所有快照可用。
  • 您可以从快照启动,但您必须保持所有以前的图像完好无损
  • 拥有快照链确实会降低性能。高负载的服务器虚拟机根本不应该运行快照
  • 要管理快照,您只需尝试使链尽可能短/平。man qemu-img技术细节
  • 拍摄快照时,会创建一个新的空图像。当您从图像中读取一个块时,您实际上命中了一个指向链中前一个快照的指针(依此类推,直到您命中一个数据块)。当您写入快照时,指针将替换为真实的数据块,并且快照图像会因该块而变大。

为了更好地理解,从这里开始