问题描述
我们有一个以 KVM 作为管理程序的 openstack 平台。由于某种原因,由于物理磁盘的硬件问题,我们丢失了虚拟机。但是我们仍然存在 VM 的磁盘文件。但是我们丢失了“基础”支持文件。我们想要恢复这些磁盘文件中存在的数据。怎么可能?
解决方法
假设您的 vm 磁盘文件为 qcow2
格式(这是 OpenStack 的默认格式),您应该能够首先通过运行以下命令来识别适当的基本文件:
qemu-img info <filename>
这将产生有关 qcow2 磁盘映像的信息,包括后备文件的路径。输出将如下所示:
$ qemu-img info /var/lib/nova/instances/instance-0000000c/disk
image: /var/lib/nova/instances/instance-0000000c/disk
file format: qcow2
virtual size: 20G (21474836480 bytes)
disk size: 149M
cluster_size: 65536
backing file: /var/lib/nova/instances/_base/06a057b9c7b0b27e3b496f53d1e88810a0d1d5d3_20
您关心的信息是backing_file
。这应该是从 Glance 创建的 raw
格式磁盘映像,其中文件名(在 _
之前)应该是一个 Glance 映像 ID。
您应该能够使用它从 Glance 下载图像,必要时将其转换为 raw
格式,并将其放在正确的位置。