丢失基本文件后恢复 VM

问题描述

我们有一个以 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 格式,并将其放在正确的位置。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...