前言:citrix不提供数据恢复服务,本文只是在有备份的情况下进行恢复!线上环境请务必结合自身实际情况谨慎操作!
查看储存库ID:
记录硬盘名字,等会用到,一般来说小机硬盘都是有名字的:
备份VG表:
cd /etc/lvm/backup/
备份到/root目录
cp VG_XenStorage-e546abe7-d3c2-065f-6bd9-0650a2e4ca81 /root
备份数据库:
cd /var/xapi/
备份到/root目录
cp state.db /root
删除虚拟机,选中虚拟机所有硬盘删除
将备份的VG表和数据库下载到本地,数据库state.db改名为state.xml
使用ie浏览器打开state.xml,使用 Ctrl+F 查找刚刚记录的硬盘名字,找到第一个uuid,并记录下来:
我这里是搜索硬盘名字vm1314_s,若是名字中间带有空格的,例如vm 1314,搜索的时候要把空格处替换为“%.”变成vm%.1314
另外一个硬盘也是按照这种方式查找,并记录下来
使用ie浏览器打开VG表,使用刚刚记录的uuid号查找出对应VHD信息,并记录下来,注意括号:
另外一个硬盘也是按照这种方式查找,并记录下来
把记录下来的信息粘贴到现在的VG表(注意!不是复制出来的VG表):
cd /etc/lvm/backup/
vi VG_XenStorage-e546abe7-d3c2-065f-6bd9-0650a2e4ca81
注意粘贴的位置,最好是最后两个括号前,保存退出
恢复VG表,此时要在/etc/lvm/backup/目录下执行:
vgcfgrestore VG_XenStorage-e546abe7-d3c2-065f-6bd9-0650a2e4ca81 -f VG_XenStorage-e546abe7-d3c2-065f-6bd9-0650a2e4ca81
检查是否恢复:
lvscan |grep e546
可以看到,已经恢复出来了,此时还是处于inactive未激活状态
激活:
lvchange -ay /dev/VG_XenStorage-e546abe7-d3c2-065f-6bd9-0650a2e4ca81/VHD-b2a90788-c956-4d07-9471-94513ff5af38
lvchange -ay /dev/VG_XenStorage-e546abe7-d3c2-065f-6bd9-0650a2e4ca81/VHD-aea380a1-2d3a-4636-a59b-39131a8de2e5
激活后的VHD处于hidden隐藏状态,用以下命令查看:
vhd-util read -n /dev/VG_XenStorage-e546abe7-d3c2-065f-6bd9-0650a2e4ca81/VHD-b2a90788-c956-4d07-9471-94513ff5af38 -p
关闭隐藏状态:
vhd-util set -n /dev/VG_XenStorage-e546abe7-d3c2-065f-6bd9-0650a2e4ca81/VHD-b2a90788-c956-4d07-9471-94513ff5af38 -f hidden -v 0
另一个VHD一样操作
最后再去储存库扫描下,可以看到已经恢复,是没有名字的,需要手动添加名字:
开台小机,把硬盘挂载上去即可正常开机,硬盘顺序要讲究,先插系统盘,再插数据盘.