虚拟机快照如何工作的详细说明

我想完全了解虚拟机快照如何工作。 虽然我已经研究了这个主题,但我似乎无法find快照如何在实际中工作的“高层次”概述。 我的问题是:

示例场景:我有一个运行具有Ubuntu guest虚拟机的KVM的Ubuntu 12.04主机。 虚拟机处于RAW格式。 我使用virsh命令快照它,

  1. 生成的文件(快照)是否可启动? 或者只是简单地改变需要基本映像的数据呢?
  2. 如何回滚到之前的状态?
  3. 是否有一个漫长的快照链会降低虚拟机的性能? 如果是这样,为什么?
  4. 如何pipe理/修剪快照?

  • 快照是图像链的一部分,需要所有快照的可用性。
  • 您可以启动快照,但您必须保留所有以前的图像
  • 拥有快照链会降低性能。 高负载的服务器虚拟机根本不应该运行快照
  • 要pipe理快照,只需尽量保持链条尽可能短/平。 man qemu-img的技术细节
  • 拍摄快照时,会创build一个新的空白图像。 当你从图像中读取一个块时,你实际上会碰到一个指向链中前一个快照的指针(在链上这样下去,直到你碰到一块数据)。 当您写入快照时,指针被replace为一个真实的数据块,并且该块的快照图像变大。

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