20210201,Citrix,XenCenter
某个服务器内存损坏,XenServer系统无法启动,在XenCenter上看不到此服务器下的虚机。在存储中可以看到对应的虚拟磁盘,但虚拟磁盘显示活动中,不能挂载到其他虚机上。推测是服务器计划外关机导致XenCenter未能更新虚机状态,且一直尝试查询该服务器上的虚机列表但不成功。
选择同资源池下的一台正常主机,进入其控制台。
xe host-list #列出资源池内的宿主服务器信息
xe vm-list resident-on=<host-uuid> #列出选定宿主服务器上的虚机信息
xe vm-reset-powerstate resident-on=<host-uuid> #重置选定宿主服务器上虚机的电源状态,即对虚机强制关机
此时消失的虚机重新加载到虚机列表中了。
但是启动那些虚机的时候,出现VDI不可用的提示(即虚拟磁盘不可用)。对虚拟磁盘进行分离后重新挂载,依然出现这个提示。
对于此问题,参考https://blog.csdn.net/bai0324lin/article/details/81259759上给出的解决方案。
在XenCenter控制台上可以看到虚机的uuid
xe vbd-list vm-uuid=<vm-uuid> #列出选定虚机的虚拟驱动器列表
xe vdi-forget uuid=<vdi-uuid> #遗忘选定的虚拟磁盘
遗忘虚拟磁盘后,在存储中看不到改虚拟磁盘,重新扫描虚拟磁盘所在的存储,虚拟磁盘重新出现。
xe sr-scan uuid=<sr-uuid> #重新扫描选定存储
xe vbd-create vdi-uuid=<vdi-uuid> vm-uuid=<vm-uuid> bootable=true device=0 type=Disk mode=RW #将此VDI重新挂载到VM;Bootable=yes从此VDI启动;Device=0磁盘位置是第一个磁盘;Mode=RW此磁盘可以读写
经过实验,除了分离磁盘操作必须使用shell命令之外,重新扫描存储和挂载硬盘都可以在控制台进行点选操作。控制台的分离磁盘并不会造成存储列表内磁盘消失,而forget命令会,推测是forget命令抹去了某些记录,而重新扫描时生成了新的记录,这些记录是导致VDI不可用的罪魁祸首。