-
起因(问题)
在使用LVM格式的Xenserver系统使用fdisk /dev/sdX 分配新的空间。导致了服务器下面的几个虚拟机在Xencenter下无法启动,显示“VDI 不可用”。Partprobe我无法读取分区表。
Xenserver有自己的一套分区管理系统,我的服务器是虚拟机直接保存在LVM分区上面。使用fdisk会破坏Xenserver分区结构,因此虚拟机无法启动。 -
解决方法
参考https://access.redhat.com/solutions/35179的方法。
问题现象:
a) # pvscan 出现 “Couldn’t find device with uuid aaaaaa-bbbb-cccc-dddd-eeee-ffff-gggggg.”
b) # hexdump -C /dev/sdX |lessLABELONE出现在partition table的中部
操作步骤:
a) 移除所有错误加入的分区。
注意:1确保未安装新分区,用作交换或从当前正在使用的设备镜像。
2如果设备是多路径设备,那么请参考解决方案如何删除在device-mapper多路径设备上创建的分区?How to delete partition created on device-mapper multipath device?.
我的情况是新建了 /dev/sdb 分区,我需要使用parted移除新建分区,
parted /dev/sdb rm 1
如果分区下有其他设备,可以尝试
parted /dev/sdb rm 2
parted /dev/sdb rm 3
…
b) 重新扫描LVM设备,并尝试激活已恢复的卷:
pvscan
vgscan
lvscan
vgchange -ay localvg00(或者vgchange -a y)
c) 以上步骤让我启动了3个虚拟机,剩下一个依旧无法启动。是关于SR的错误。
接下来修改 /opt/xensource/sm/blktap2.py 在头部加入import sys
d) 在Xencenter图形界面,点击无法启动的虚拟机,控制台->DVD驱动器->选择为空
e) 启动虚拟机,启动成功。