虛拟機假死解決方法
虛拟機無緣無故假死,是件比較頭疼的事情。關機也關不了,重新開機也不行。有時需要關實體機才行。如果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就是個和底層通信的中間層、接口層。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5yM4ATMxITMxcDM3ATMxAjMvw1NwMTM4IzLcFTMwIzLcNHa0FGcjlGcfd3Xw9CXt92YuM3ZvxmYuNmLyADMjlGcvw1LcpDc0RHaiojIsJye.png)