天天看点

虚拟机假死解决方法

虚拟机假死解决方法

虚拟机无缘无故假死,是件比较头疼的事情。关机也关不了,重启也不行。有时需要关物理机才行。如果XenServer上有比较重要应用,肿么办?

造成虚拟机假死的原因很多,有的是本身虚拟机系统的原因、有的是XenServer底层XAPI接口有问题。

XAPI就是XenServer中的一组管理接口的统称,是XenServer管理的核心,由一系列的toolstack组成。XenCenter通过XAPI来读取XenServer的配置、管理、License的管理、数据库的维护等等,同时也包括如存储(SR)、虚机、虚拟网卡、HA等等所有的功能控制。简而言之,XAPI就是个和底层通信的中间层、接口层。

系统的原因一般强制重启就可以解决;但是xapi有问题,强制重启方法有时是行不通的。

一般假死的解决方法:

把xapi重启即可解决;在XenServer中输入: xe-toolstack-restart 或者 service xapi restrat

上述命令无效的话,可以使用下面的方法:

I've found the resolution through my other thread. Here's what you need to do.

1 - "xe vm-list" to get the uuid of the VM that is hung

2 - "list_domains" to list the domain uuid's so you can determine

the domain # of the VM above by matching the uuids from this output with

the uuid for your VM from the previous command.

3 - "/opt/xensource/debug/destroy_domain -domid XX" where XX is the domain number from the previous command

执行到最后一步,有可能时间比较长。需要等。。。。。

通过XenCenter无法关机

通过XenCenter无法关机,一直卡在那里,控制台界面也看不到,SSH登陆xen server

[root@xenserver2 log]# xe vm-list

找到这台挂起的VM对应的UUID

[root@xenserver2 log]# xe vm-shutdown uuid=627c4220-dd2e-5bf7-4ad1-871187c83933 force=true

发现没用,命令卡在那里

[root@xenserver2 log]#xe vm-reset-powerstate uuid=627c4220-dd2e-5bf7-4ad1-871187c83933 --force

依然没用,到网上找一圈,有人说是关机任务被挂起了,取消关机任务再执行关闭即可,于是

[root@xenserver2 log]#xe task-list

发现是有对应的关机任务,于是输入对应的任务UUID取消之

[root@xenserver2 log]#xe task-cancel uuid=85f509b3-d240-7dcf-4175-523c839b8145

再执行查看任务列表

发现任务依然存在,这下无奈了............!到citrix官方论坛上,发现和我一样问题的老外还不少,找了一圈,终于找到一个靠谱的办法,如下

[root@xenserver2 log]# list_domains

找出对应UUID的域ID

[root@xenserver2 log]# /opt/xensource/debug/destroy_domain -domid XX

这个命令我猜应该是删除这台VM的外联存储(NFS、ISCSI等)

[root@xenserver2 log]# xe vm-reboot uuid=XXXX --force

执行VM重启,搞定!如果控制台还是看不到界面,把XAPI服务重启一下

[root@xenserver2 log]# xe-toolstack-restart

然后重新连接xen server,VM恢复正常,问题解决!

初识toolstack——XEN的XenServer管理的核心

什么是XAPI,或者说XAPI在XenServer中有什么作用?

XAPI(或者XenAPI)是XenServer中的一组管理接口的统称,是XenServer管理的核心,由一系列的toolstack组成。

XAPI主要提供XenCenter以及pool中各主机通信的接口。XenCenter通过XAPI来读取XenServer的配置、管理、License的管理、数据库的维护等等,同时也包括如存储(SR)、虚机、虚拟网卡、HA等等所有的功能控制。而Pool中的所有XenServer的操作请求也是通过XAPI传递给dom0,同时在池中的所有主机中间通信,例如:Pool中数据库(配置数据库,由XenServer维护的一个小型数据库)会通过XAPI在所有的主机之间同步,以便在Master服务器宕机以后,其他机器能够正确而迅速的取代Master,并维持Pool的功能和服务。

简而言之,XAPI就是个和底层通信的中间层、接口层。

虚拟机假死解决方法

继续阅读