之前在进行XenServer的一次升级操作以后发现,服务器重启以后,Local Storage无法挂在,fdisk -l命令发现,整个local storage分区消失。所以,我们需要从现有信息来恢复分区信息。
XenServer如果采用LVM分区,本地会和一半的Linux一样,会有一份备份的LVM信息,位置保存在/etc/lvm/backup/目录:
所以,我们只需要从升级前的备份信息中恢复即可。
而XenServer的分区一般由三部分组成(如下图),第一个4G分区为XenServer跟分区,第二个4G分区为升级操作的备份分区,第三个分区一半为磁盘的剩余空间,用于localstorage使用。
XenServer在升级的过程中,会把跟分区信息(sda1)备份到备份分区(sda2),安装成功以后,再从备份分区(sda2)来恢复原有的配置以及分区等信息,而问题发生时,由于某些原因导致了分区信息的恢复失败,最终导致localStorage无法挂载。而我们又知道,localStorage分区信息保存在/etc/lvm/backup/,所以,我们只需要从这里恢复即可。
恢复步骤:
- 挂载备份分区1234mkdir /backupmount /dev/sda2 /backup#change to lvm backup foldercd /backup/etc/lvm/backup/
- 找到丢失分区的SR UUID(可以通过XenCenter查看/或者参考如下使用命令查看)12#get the UUID of the localStoragexe sr–list params=namelabel,uuid
- 获取LVM的Physical_volumes(物理卷)的id1grep –A 5 “physical” VG_XenStorage–<uuid of localStorage>
- 找到LocalStorage所在的磁盘分区(如最开始的分区截图),我们本次为sda3
- 使用pvcreate命令恢复分区1pvcreate —uuid <physical_volumes_id> —restorefile /backup/lvm/backup/VG_XenStorage–<SR UUID> /dev/sda3
- 恢复卷配置(Recover the volume)1234#before restore, you can test reocver using follow commandvgcfgrestore VG_XenStorage–<uuid of localstorage> —test f VG_XenStorage–<uuid of lcoalstorage>#recover the volumevgcfgrestore VG_XenStorage–<uuid of localstorage> –f VG_XenStorage–<uuid of lcoalstorage>
- 恢复完成后,从XenCener修复下localStoage即可。