在XenServer中,碰到VM挂起(hang)的情况,也不是那么少见,而VM长时间挂起,那么很影响心情和后续的操作。

一般情况下,为了关闭VM或者重启VM,我们推荐这样的操作顺序:

  1. 进入到VM内,使用系统的关机或者重启功能
  2. 通过XenCenter的菜单选择ShutDown或者Restart。虽然这个菜单的实现是通过XenServer tool来控制系统的命令来实现,但是不保证在XenServer Tools工作异常的情况下,导致VM挂起(Hang),而且,这个应该也是VM挂起(XenCenter中VM标志处于黄色状态)的主要原因。
  3. 尝试通过XenCenter菜单的Force Shutdown和Force Restart来强制操作。
如果这些操作都进行了以后,VM也长时间处于挂起状态,为了让VM能够关机,或者说是强制关机来重置其状态,我们有以下几种解决方法,这些解决方法的危害会逐渐增加,所以,请按顺序尝试:
  1. 尝试重置VM的电源状态
    1
    xe vm-reset-powerstate force=true vm=<vm name>
  2. 尝试重启toolstack
    1
    xe-toolstack-restart
  3. 尝试destroy domain
    1
    2
    3
    4
    5
    6
    #首先获取VM的UUID
    xe vm-list name-label=<vm name> params=uuid
    #获取VM的Domain ID
    list_domains | grep <VM-UUID>
    #尝试重置hang状态的VM
    /opt/xensource/debug/xenops destroy_domain -domid <vm domain id>
  4. 到这里还不行,就可以强制VM进入崩溃状态
    1
    2
    3
    4
    5
    6
    #首先获取VM的UUID
    xe vm-list name-label=<vm name> params=uuid
    #获取VM的Domain ID
    list_domains | grep <VM-UUID>
    #手动触发VM的Crash机制
    /usr/lib/xen/bin/crash_guest <domain ID>
  5. 如果连Crash机制都不起作用的情况下,那么就只剩下强制关闭XenServer主机电源一条途径了。
注:在Crash VM以后,VM会处于蓝屏状态,这个时候,可以再试试正常的关机或者强制关机命令来关闭虚机。

实在不行,就只能重启母机了建议,不要对xenserver作任何操作,过半个小时之后,再操作,一般会恢复正常的。