本帖最后由 木二 于 2022-3-23 11:54 编辑
一 问题背景 1.1 背景描述 使用模板更新后导致虚拟机文件丢失,会出现误操作更新了派生出来的虚拟机,需要恢复至上一次状态,即回退/滚至上一次状态。 源主机文件如下: 1.2 故障现象 误操作更新后,文件丢失。 1.3 平台信息 提示:虚拟机ID可通过VMP平台进入对应的虚拟机详情,通过URL地址栏查看。 虚拟机分组ID可通过虚拟机分组名,通过如下方式查看:
通过虚拟机分组名查看虚拟机分组ID。
- Sangfor:VMP/host-0894eff025c5 /sf # ll /sf/data/虚拟存储卷1/images/cluster/ | grep 测试临时 #查看虚拟机镜像所在分组
- lrwxrwxrwx 1 root root 12 Mar 20 17:47 测试临时.dir -> aa26a5990a24
复制代码
二 处理步骤 2.1 关闭虚拟机 VMP平台关闭虚拟机。 2.2 开启SSH端口 在VPM中,管理---->服务与支持,开启SSH端口。
2.3 查看原镜像 通过如下方式登录VMP后台。
通过虚拟机ID,在/sf/data/虚拟存储卷1/private/tplupdatebackup/目录下查找该虚拟机的原镜像。 - Sangfor:VMP/host-0894eff025c5 /sf # ll /sf/data/虚拟存储卷1/private/tplupdatebackup/ | grep 5076978169920
- -rw-r--r-- 1 root root 285212672 Mar 20 18:52 vm-disk-1.qcow2_5076978169920_BACKUP_1647782411
复制代码总结: 原镜像:vm-disk-1.qcow2_5076978169920_BACKUP_1647782411 原镜像路径:/sf/data/虚拟存储卷1/private/tplupdatebackup/vm-disk-1.qcow2_5076978169920_BACKUP_1647782411 2.4 查看原镜像基镜像 通过qemu-img info查看原镜像的基镜像。 - Sangfor:VMP/host-0894eff025c5 /sf # qemu-img info /sf/data/虚拟存储卷1/private/tplupdatebackup/vm-disk-1.qcow2_5076978169920_BACKUP_1647782411
- image: /sf/data/虚拟存储卷1/private/tplupdatebackup/vm-disk-1.qcow2_5076978169920_BACKUP_1647782411
- file format: qcow2
- virtual size: 100G (107374182400 bytes)
- disk size: 272M
- cluster_size: 65536
- backing file: nfs://dd108bb7_vs_vol_rep2/dd108bb7_vs_vol_rep2/template/7387762544043/vm-disk-1.qcow2.05f0ac6ff06a473b99a636ebd3a75784
- Format specific information:
- compat: 1.1
- lazy refcounts: false
- refcount bits: 16
- corrupt: false
复制代码
总结: 原镜像基镜像:vm-disk-1.qcow2.05f0ac6ff06a473b99a636ebd3a75784 原镜像基镜像路径:/sf/data/虚拟存储卷1/template/7387762544043/vm-disk-1.qcow2.05f0ac6ff06a473b99a636ebd3a75784 2.5 查看当前镜像 虚拟机镜像所在路径:/sf/data/虚拟存储卷1/images/cluster/aa26a5990a24/测试-0001_sangfor.vm/ 进入虚拟机镜像目录,并备份虚拟机当前镜像(实为错误更新后的当前镜像)。 - Sangfor:VMP/host-0894eff025c5 /sf # cd /sf/data/虚拟存储卷1/images/cluster/aa26a5990a24/测试-0001_sangfor.vm/
- Sangfor:VMP/host-0894eff025c5 /sf/data/虚拟存储卷1/images/cluster/aa26a5990a24/测试-0001_sangfor.vm # ll
- total 393218
- -rw-r--r-- 1 root root 1723 Mar 20 21:20 5076978169920.conf
- -rw-r--r-- 1 root root 0 Mar 20 17:56 qemu.lock.5076978169920
- -rw-r--r-- 1 root root 150994944 Mar 20 22:03 vm-disk-1.qcow2
- -rw-r--r-- 1 root root 33554432 Mar 20 21:32 vm-disk-2.qcow2
复制代码总结: 当前镜像:vm-disk-1.qcow2 原镜像路径:/sf/data/虚拟存储卷1/images/cluster/aa26a5990a24/测试-0001_sangfor.vm/vm-disk-1.qcow2 2.6 查看当前镜像基镜像 通过qemu-img info查看当前镜像的基镜像。 - Sangfor:VMP/host-0894eff025c5 /sf/data/虚拟存储卷1/images/cluster/aa26a5990a24/测试-0001_sangfor.vm # qemu-img info vm-disk-1.qcow2
- image: vm-disk-1.qcow2
- file format: qcow2
- virtual size: 100G (107374182400 bytes)
- disk size: 144M
- cluster_size: 65536
- backing file: nfs://dd108bb7_vs_vol_rep2/dd108bb7_vs_vol_rep2/template/7387762544043/vm-disk-1.qcow2.57841b78c55d4e71975c316c41b8c500
- Format specific information:
- compat: 1.1
- lazy refcounts: false
- refcount bits: 16
- corrupt: false
复制代码
总结: 当前镜像基镜像:vm-disk-1.qcow2.57841b78c55d4e71975c316c41b8c500 当前镜像基镜像路径:/sf/data/虚拟存储卷1/template/7387762544043/vm-disk-1.qcow2.57841b78c55d4e71975c316c41b8c500 2.7 恢复原镜像 将原镜像恢复至虚拟机当前目录,并命名为vm-disk-1.qcow2,即使用原镜像代替当前镜像。 - Sangfor:VMP/host-0894eff025c5 /sf/data/虚拟存储卷1/images/cluster/aa26a5990a24/测试-0001_sangfor.vm # mv vm-disk-1.qcow2 vm-disk-1.qcow2.bak #备份当前镜像
- Sangfor:VMP/host-0894eff025c5 /sf/data/虚拟存储卷1/images/cluster/aa26a5990a24/测试-0001_sangfor.vm # ll #确认备份情况
- total 393218
- -rw-r--r-- 1 root root 1723 Mar 20 21:20 5076978169920.conf
- -rw-r--r-- 1 root root 0 Mar 20 17:56 qemu.lock.5076978169920
- -rw-r--r-- 1 root root 150994944 Mar 20 22:07 vm-disk-1.qcow2.bak
- -rw-r--r-- 1 root root 33554432 Mar 20 21:32 vm-disk-2.qcow2
复制代码
提示:恢复原镜像之前如上操作必须备份当前镜像,避免误操作。 - Sangfor:VMP/host-0894eff025c5 /sf # cd /sf/data/虚拟存储卷1/images/cluster/aa26a5990a24/测试-0001_sangfor.vm/
- Sangfor:VMP/host-0894eff025c5 /sf/data/虚拟存储卷1/images/cluster/aa26a5990a24/测试-0001_sangfor.vm # cp /sf/data/虚拟存储卷1/private/tplupdatebackup/vm-disk-1.qcow2_5076978169920_BACKUP_1647782411 vm-disk-1.qcow2
- Sangfor:VMP/host-0894eff025c5 /sf/data/虚拟存储卷1/images/cluster/aa26a5990a24/测试-0001_sangfor.vm # ll
- total 786434
- -rw-r--r-- 1 root root 1723 Mar 20 21:20 5076978169920.conf
- -rw-r--r-- 1 root root 0 Mar 20 17:56 qemu.lock.5076978169920
- -rw-r--r-- 1 root root 285212672 Mar 20 22:07 vm-disk-1.qcow2
- -rw-r--r-- 1 root root 150994944 Mar 20 22:08 vm-disk-1.qcow2.bak
- -rw-r--r-- 1 root root 33554432 Mar 20 21:32 vm-disk-2.qcow2
复制代码
2.8 恢复原镜像基镜像 确认原镜像基镜像是否位于正确位置:/sf/data/虚拟存储卷1/template/7387762544043 。 - Sangfor:VMP/host-0894eff025c5 ~ # ll /sf/data/虚拟存储卷1/template/7387762544043/
- total 47579137
- -rw-r--r-- 1 root staff 958 Mar 20 19:09 7387762544043.conf
- -rw-r--r-- 1 root staff 33554432 Mar 20 17:47 preload_disk.qcow2
- lrwxrwxrwx 1 root staff 48 Mar 20 19:09 vm-disk-1.qcow2 -> vm-disk-1.qcow2.57841b78c55d4e71975c316c41b8c500
- -rw-r--r-- 1 root root 30349983744 Mar 20 17:47 vm-disk-1.qcow2.05f0ac6ff06a473b99a636ebd3a75784 #原镜像基镜像
- -rw-r--r-- 1 root staff 18001952768 Mar 20 19:09 vm-disk-1.qcow2.57841b78c55d4e71975c316c41b8c500 #当前镜像基镜像
复制代码
由上可知:当前镜像基和原镜像都位于正确的路径。 2.9 修改image配置文件 进入虚拟机镜像ID路径:/sf/data/虚拟存储卷1/images/cluster/aa26a5990a24/测试-0001_sangfor.vm/,然后修改虚拟机配置文件 【5076978169920.conf】中的UUID,将template_uuid修改为原镜像基镜像ID:05f0ac6ff06a473b99a636ebd3a75784 。 - Sangfor:VMP/host-0894eff025c5 /sf # cd /sf/data/虚拟存储卷1/images/cluster/aa26a5990a24/测试-0001_sangfor.vm/
- Sangfor:VMP/host-0894eff025c5 /sf/data/虚拟存储卷1/images/cluster/aa26a5990a24/测试-0001_sangfor.vm # vim 5076978169920.conf #修改uuid
- ……
- template_uuid: 05f0ac6ff06a473b99a636ebd3a75784
- ……
复制代码
2.10 修改server配置文件 进入虚拟机qemu-server路径:/cfs/nodes/cluster/qemu-server/aa26a5990a24/,然后修改虚拟机配置文件 【5076978169920.conf】中的UUID,将template_uuid修改为原镜像基镜像ID:05f0ac6ff06a473b99a636ebd3a75784 。 修改/cfs/nodes/cluster/qemu-server/aa26a5990a24/5076978169920.conf - Sangfor:VMP/host-0894eff025c5 ~ # vim /cfs/nodes/cluster/qemu-server/aa26a5990a24/5076978169920.conf
- ……
- template_uuid: 05f0ac6ff06a473b99a636ebd3a75784
- ……
复制代码
三 确认验证 3.1 开机确认 修改完成后,VMP平台打开虚拟机,登录虚拟机进行数据(文件)校验,确保数据完整性。
提示:回滚之后建议关闭VMP SSH端口。 |