PVE从qcow2文件恢复虚拟机

一、写本文原因

公司有一台物理服务器,X58架构,挺老了,属于垃圾成色了。后来用U盘装了PVE做了虚拟化,当做线下测试服务器,以及做一些实验用。
由于园区经常停电,导致了经常装载U盘上的PVE系统损坏,好在装载U盘,对本地的虚拟机数据没有影响,装了几次也有了一些经验。

二 、备份文件
  • 2.1 安装时备份
    需要牢记住hostname和IP地址,Hostname直接和你的数据中心名称挂钩,尽量和虚拟保持一致
    PVE从qcow2文件恢复虚拟机_第1张图片
  • 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备份功备份虚机
    点击虚机–备份,可以看到此虚机的备份信息,如果本机没有备份的话,建议及时进行备份,进行重大操作前也建议进行备份。
    PVE从qcow2文件恢复虚拟机_第2张图片
    备份时默认的模式为快照,默认压缩格式为ZSTD。

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

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

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

PVE从qcow2文件恢复虚拟机_第3张图片

三、恢复
  • 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从qcow2文件恢复虚拟机_第4张图片
更改完成后可以在PVE管理界面看到更改好的虚机ID,直接右键开机即可;
在这里插入图片描述

你可能感兴趣的:(Linux,pve,虚拟机)