PVE从qcow2文件恢复虚拟机

  • Post author:
  • Post category:其他




一、写本文原因

公司有一台物理服务器,X58架构,挺老了,属于垃圾成色了。后来用U盘装了PVE做了虚拟化,当做线下测试服务器,以及做一些实验用。

由于园区经常停电,导致了经常装载U盘上的PVE系统损坏,好在装载U盘,对本地的虚拟机数据没有影响,装了几次也有了一些经验。



二 、备份文件
  • 2.1

    安装时备份


    需要牢记住hostname和IP地址,Hostname直接和你的数据中心名称挂钩,尽量和虚拟保持一致

    在这里插入图片描述

  • 2.2


    备份PVE配置文件


    待PVE虚拟机部署完成,并且正式运行时,请备份如下目录文件:

    /etc/pve/



    其中如下两个比较重要:



    qemu-server

    :保存了虚机的配置信息


    storage.cfg

    :保存了PVE的分区信息
root@zm:/mnt/bak/dump# ls -ll /etc/pve/
total 4
-rw-r----- 1 root www-data  451 Nov  2 11:45 authkey.pub
-rw-r----- 1 root www-data   16 Nov  2 11:40 datacenter.cfg
drwxr-xr-x 2 root www-data    0 Nov  2 11:45 ha
lrwxr-xr-x 1 root www-data    0 Jan  1  1970 local -> nodes/zm
lrwxr-xr-x 1 root www-data    0 Jan  1  1970 lxc -> nodes/zm/lxc
drwxr-xr-x 2 root www-data    0 Nov  2 11:45 nodes
lrwxr-xr-x 1 root www-data    0 Jan  1  1970 openvz -> nodes/zm/openvz
drwx------ 2 root www-data    0 Nov  2 11:45 priv
-rw-r----- 1 root www-data 2074 Nov  2 11:45 pve-root-ca.pem
-rw-r----- 1 root www-data 1675 Nov  2 11:45 pve-www.key
lrwxr-xr-x 1 root www-data    0 Jan  1  1970 qemu-server -> nodes/zm/qemu-server
drwxr-xr-x 2 root www-data    0 Nov  2 11:45 sdn
-rw-r----- 1 root www-data  332 Nov  2 12:00 storage.cfg
-rw-r----- 1 root www-data   39 Nov  2 11:40 user.cfg
drwxr-xr-x 2 root www-data    0 Nov  2 11:45 virtual-guest
-rw-r----- 1 root www-data  119 Nov  2 11:45 vzdump.cron

  • 2.3

    .

    备份分区表


    备份分区表

    /etc/fstab

    ,这里记载了磁盘的挂载信息,假如丢失或者不记得,会导致虚机磁盘目录不对,无法启动;


  • 2.4.使用PVE备份功备份虚机


    点击

    虚机–备份

    ,可以看到此虚机的备份信息,如果本机没有备份的话,建议及时进行备份,进行重大操作前也建议进行备份。

    在这里插入图片描述

    备份时默认的模式为快照,默认压缩格式为ZSTD。


  • 快照模式

    :备份时对服务器进行暂挂处理,来保持数据一致性,假如虚机开启了agent,在暂停备份时由agent来接收数据,如果对数据要求一致性不太高,可以使用从此模式;


  • 挂起模式

    :进行备份前,会对虚机进行暂挂处理,导致备份时间过长,并且数据一致性不太高,可以PASS此模式;


  • 停止模式

    :数据一致性最高,用最短的停机时间对虚机进行备份。

在这里插入图片描述



三、恢复

  • 3.1 使用配置文件进行恢复


    如果对配置文件进行过备份,可以把对应的conf文件直接复制到

    /etc/pve/qemu-server/

    里即可,然后修改存储信息

    /etc/pve/storage.cfg

    ,修改Linux分区表

    /etc/fstab

    ,启动虚拟就可以了;


    3.2 没有配置文件进行恢复


    如果没有配置文件,只有虚机硬盘镜像在,不怕,我们还有机会!假如你格式化了硬盘,所有虚机镜像不在了,对不起,这篇文章你应该不用看了,你该考虑怎么跑路了~

    虚机的磁盘镜像在设定好的目录下,可以是LVM也可以是standard分区。以我的目录为例子,虚机镜像路径在:

    /mnt/vm/images/

    ,前面的vm对应的是分区目录,数字编号对应了虚机的编号,disk-0和disk-1对应了虚机的第一块和第二块硬盘;

ls /mnt/vm/images/
# 虚机编号
100  101  102  103  104  105  106

# 查看虚机编号106的镜像文件
ls 106/
vm-106-disk-0.qcow2  vm-106-disk-1.qcow2

镜像文件有了,我们该怎么恢复呢?不要急慢慢来,首先在PVE里创建一个虚拟机,编号千万不要和上面的重复。

然后把创建好的虚机配置文件复制一份,进行修改,我们需要修改如下内容


name

:虚机的名字,可以和之前一样


虚机的mac地址

:可以使用如下命令生成,前面的

52:54:00

可以自行替换

echo 52:54:00:`openssl rand -hex 3 | sed 's/\(..\)/\1:/g; s/.$//'`


smbios1

:虚机bios UUID,使用如下命令生成

uuidgen

,如果提示找不到命令,使用

apt install uuid-runtime进行安装



unused0

:未使用的硬盘,

更改为旧的虚机硬盘路径



virtio0

:引导硬盘,

更改为旧的虚机硬盘路径



vmgenid

:虚机UUID, 可以使用

uuidgen

命令生成

在这里插入图片描述

更改完成后可以在PVE管理界面看到更改好的虚机ID,直接右键开机即可;

在这里插入图片描述



版权声明:本文为hzcm1984原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。