Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Virtual machine 在丢失基本文件后恢复VM_Virtual Machine_Openstack_Kvm_Data Recovery - Fatal编程技术网

Virtual machine 在丢失基本文件后恢复VM

Virtual machine 在丢失基本文件后恢复VM,virtual-machine,openstack,kvm,data-recovery,Virtual Machine,Openstack,Kvm,Data Recovery,我们有一个openstack平台,KVM作为管理程序。由于某些原因,由于物理磁盘的硬件问题,我们丢失了虚拟机。但是虚拟机的磁盘文件仍然存在。但我们丢失了“基本”支持文件。我们要还原这些磁盘文件中的数据。怎么可能呢?假设您的vm磁盘文件采用qcow2格式(这是OpenStack的默认格式),您应该能够首先通过运行以下命令来识别相应的基本文件: qemu-img info <filename> 您关心的信息是备份文件。这应该是从Glance创建的raw格式磁盘映像,其中文件名(在之前)

我们有一个openstack平台,KVM作为管理程序。由于某些原因,由于物理磁盘的硬件问题,我们丢失了虚拟机。但是虚拟机的磁盘文件仍然存在。但我们丢失了“基本”支持文件。我们要还原这些磁盘文件中的数据。怎么可能呢?

假设您的vm磁盘文件采用
qcow2
格式(这是OpenStack的默认格式),您应该能够首先通过运行以下命令来识别相应的基本文件:

qemu-img info <filename>
您关心的信息是
备份文件
。这应该是从Glance创建的
raw
格式磁盘映像,其中文件名(在
之前)应该是Glance映像id


您应该能够使用它从Glance下载图像,必要时将其转换为
raw
格式,并将其放置在正确的位置。

如何创建具有相同磁盘格式和大小的新虚拟机,然后在启动它们之前简单地替换其中的文件?对于初学者来说,这是最简单的方法。如果您只想保存文件,而不创建新的虚拟机,则可以先将其转换为原始文件,然后使用工具kpartx访问其分区,fsck其分区,然后将其装载并复制到您想要的位置。如果磁盘vmdk文件损坏,您还需要恢复它们。虽然vmdk格式是公开的,但快速谷歌搜索并没有为我带来一个免费的开源恢复工具。但Vmware不是免费的,不是开源的,而是可下载的。
$ 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