虚拟机无缘无故假死,是件比较头疼的事情。关机也关不了,重启也不行。有时需要关物理机才行。如果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无法关机
什么是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就是个和底层通信的中间层、接口层。
===============================
可以迁移到202,却不能迁移到209,很奇怪。
xe-toolstack-restart
Stopping xapi: ..[ OK ]
Stopping the v6 licensing daemon: [ OK ]
Stopping the memory ballooning daemon: [ OK ]
Stopping perfmon: [FAILED]
Stopping the fork/exec daemon: [ OK ]
Starting the fork/exec daemon: [ OK ]
Starting perfmon: [ OK ]
Starting the memory ballooning daemon: .[ OK ]
Starting the v6 licensing daemon: [ OK ]
Starting xapi: ..start-of-day complete.[ OK ]
done.
重启下toolstack即可,发现这条命令很有用。
转自 http://zhumeng8337797.blog.163.com/blog/static/1007689142012112604339569/