虚机长时间无法开机
2017-03-11高杰欣
某虚机因故关闭了一段时间,再次开机后,始终未进入操作系统,遂选择虚拟控制台上的“重置”,以为就这样没事了。岂料,过了好久仍未观察到该虚机业务恢复。再次观察虚机仍是未进入操作系统,且“近期任务”中也看不到该虚机重置状态,说明重置指令执行完毕已经自动不显示了。此时,再次点击关闭虚拟机电源、重置、挂起,均显示“正在处理另一个任务”,虚机既不能启动,也无法停止。
出现这一情况,其实在虚机开启时,就没有正常加载启动,而我也没有等待足够长的时间让虚机正常起来,于是冒失地“重置”将虚机置于“卡壳”状态。虚机的启动,与ESXi的Hostd服务紧密相连,此时需要在“主机→配置→安全配置文件→服务”中编辑打开SSH,进入命令行操作。
首先重启Hostd服务,在命令行输入“/etc/init.d/hostd restart”,重启后回到WebClient查看虚机仍是无法关闭或重置,接下来只能强制杀掉虚机进程。通过命令“esxcli vm process list”查看到本主机上虚机的进程情况和World ID,确认ID和虚机后以命令“esxcli vm process kill--type=force --worldid=4860”进行强制关闭。完成后再次重启Hostd服务,最后来到WebClient重新点击虚机开启,此时虚机顺利开启并进入到操作系统,观察约1小时,虚机都运行平稳,确认该问题解决。
小结:虚机卡住等待处理另一个任务的情况其实并不多见,可能是ESXi的某些Bug被触发,可能是当时主机的负载较高来不及响应,也可能是等待某个未释放的资源,强制关闭类似于直接拔掉了服务器电源,是一个粗暴的操作行为。
本例的虚机处于刚开启阶段,甚至并未读取磁盘,因而没有其他副作用。假设运行中的虚机出现了类似情况,强制关闭则可能导致数据不能及时回写到磁盘,造成数据丢失或数据损坏,遇到这种问题,需要根据情况慎重操作。