kvm快照存储在哪里?

我在KVM / ubuntu上运行了几个虚拟机,这些虚拟机都开始使用-snapshot参数(虚拟机只能计算几个可以在重新启动后被销毁的东西)。

在我读过的文档中,所做的更改不会写回到映像中,而是存储在临时文件中,closures后会被删除。

现在,我想知道文件系统上这些“临时文件”存储在哪里?

尝试使用lsof来查找快照存储:

 # ps aux | grep kvm $PID ? Sl 5289:40 /usr/bin/kvm ... # lsof -n -p $PID COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME 

或者一个命令:

 # lsof -n -p $(ps ax | grep [k]vm | awk '{print $1}' | head -1) 

因为我正在检查相同的,无法find他们在硬盘上的任何地方,我会假设他们留在内存? 这也可以解释为什么他们不坚持。

如果要将它们写入磁盘,请使用save / restore命令。 在这里你可以提供一个path。

快照存储在任何你configuration的地方。 在我的F14上它在/var/lib/libvirt/images ,但是你可以在virt-managervirsh使用存储域,不过你也可以。

这是上面使用的lsof命令的一个更简洁的版本。 这个变体有几个改进。 一个是它将列出所有的KVM虚拟机。

 $ lsof -n -p $(pgrep kvm | tr '\012' ,) 

如果您知道您使用这些扩展来命名您的虚拟机映像,则可以查找.img.qcow2文件的输出。

 $ sudo lsof -n -p $(pgrep kvm | tr '\012' ,) |grep -E ".img|.qcow2" qemu-kvm 3836 root 11u REG 253,0 10737418240 19169281 /var/lib/libvirt/images/vm1.img qemu-kvm 3895 root 11u REG 253,0 48318382080 19890183 /kvm/vm2.img qemu-kvm 3924 root 11u REG 253,0 10737418240 19890185 /kvm/vm3.img qemu-kvm 13594 root 11u REG 253,0 43881005056 69173572 /var/lib/libvirt/images/vm4.qcow2 

你也可以去查询libvirtd来找出它有哪些可用的存储池。

 $ sudo virsh pool-list Name State Autostart ----------------------------------------- default active yes $ sudo virsh vol-list default Name Path ----------------------------------------- vm1-d-disk0 /var/lib/libvirt/images/vm1-d-disk0 vm2-d-disk0 /var/lib/libvirt/images/vm2-d-disk0 vm3.img /var/lib/libvirt/images/vm3.img ... 

因此,对于使用default池的虚拟机,默认path将显示为/var/lib/libvirt/images 。 这将是与-snapshot活动相关的临时文件所在的目录。