现象:发现一台运行群机器人的虚拟机服务停止。按照以前的操作方式想重启VM。结果在windows下的xenserver没法处理,强制重启的操作按下后一直是黄色的图标。
于是顺着某度搜索前人的经验。
先是搜到了这个:http://blog.teidc.com/post-12.html (附录1)
尝试了方法1-3都没有解决问题。跳过4,直接用了5,算是初步成功。看到在xenserver的电脑控制台发现图标正常了,提示的是关闭。
随后在xenserver的电脑控制台尝试启动服务器,失败。提示如下:
此时使用df -h查看了一下磁盘占用。发现/dev/sda1/是100%的,于是乎删除了一部分日志文件。继续尝试启动虚拟机,失败。
现在没办法了,直接想重启xapi,运行命令:
service xapi restart
虽然提示成功,但,电脑上的xenserver软件并不能连接到主机。提示:Error: "xapi dead but pid file exists"
在Citrix思杰官网看到这么一条说明 https://support.citrix.com/article/CTX215887
Solution
1.Remove the xapi.pid file from /var/run directory using "rm -rf /var/run/xapi.pid" (手动删除xapi.pid文件)
2.Restart toolstack using "xe-toolstack-restart" (重启xapi)
3.Try to reconnect the server in XenCenter (在PC上重新连接到主机)
这样做以后,再到电脑上的xenserver控制台去启动VM,成功。
本文章也参考了这篇文章,学习了一些xenserver的命令:http://www.wangchao.info/1167.html
文章的结尾,为了避免原文以后丢失这里贴一下附录部分。
附录1
XenCenter中可查看到该虚拟机图标显示黄色状态,通过"右键"执行重启或者关闭操作却只能选择属性,VM不能再进行其它操作。这种现象被称作是VPS挂起情况,通常发生在虚拟机遇到死机或虚拟机遭到其它意外情况。以下是面对这类情况的解决办法,请由上往下逐步使用解决方案。
语法约定:
xe vm-reboot force=true name-label=vps919
xe vm-reboot force=true name-label=vps919
方法一:
xe task-list #查看当前任务列表和uuid
xe task-cancel uuid= #取消当前任务
方法二:
当虚拟机处于死机状态时尽量使用硬关机、硬重启。
xe vm-reboot force=true name-label=vps919
xe vm-shutdown force=true name-label=vps919
方法三:
销毁卡死VM对应的domain id,迫使VM自动重启。
xe vm-list params=uuid name-label=
#或
xe vm-list name-label= --minimal #获取指定VM的uuid
list_domains |grep #获取VM对应的domain id
/opt/xensource/debug/destroy_domain -domid #销毁VM对应的domain id
方法四:
迫使卡死VM崩溃。
xe vm-list params=actions-after-crash name-label= #查看VM崩溃后的操作,默认为重启
xe vm-list params=uuid name-label= #获取指定VM的uuid
list_domains |grep #获取VM对应的domain id
/usr/lib/xen/bin/crash_guest #触发VM崩溃,VM崩溃后会自动重启
方案五:
如果VM处于脱机状态,而VM在数据库中被标记为运行,则需要VM电源状态为关机。
xe vm-reset-powerstate force=true vm=
方案六:
重启xe工具。
这个方法有一定风险,请注意。
xe-toolstack-restart