SaltStack常用组件使用 SaltStack配置文件说明 轻量级DNS、DHCP服务软件DNSMASQ 千万级PV(日)的移动应用架构如何实现 高效运维最佳实践-运维自动化之殇 Ubuntu 14.04 Linux如何配置静态IP地址和DNS服务器 ELK 常见错误与解决办法 Elasticsearch 集群配置管理常用操作 常用数字证书格式相互转换-OpenSSL/Keytool/Jks2pfx ELK 综合日志归档分析系统(2)-Logstash安装配置 Elasticsearch之Shield认证与权限管理 ELK 综合日志归档分析系统(1)-Elasticsearch-Redis安装配置 Redmine 3.2 安装配置指南 CentOS6 大型web系统数据缓存设计 Redis 集群方案 Linux 内核TCP优化详解 SaltStack初始化安装配置 OpenLDAP常用操作 OpenLDAP统一身份认证 [CentOS6/7] 构建Linux Skype Message消息推送API服务(Zabbix集成告警) Tomcat 生产服务器性能优化 Zabbix结合iptables监控网络流量 Linux操作系统环境配置与优先级问题 深入 NGINX: 我们如何设计性能和扩展 Windows SQL Server 性能计数器详细说明 Windows性能计数器说明 Ubuntu安装openntpd报错:Starting openntpd: /etc/openntpd/ntpd.conf: Permission denied locale: Cannot set LC_ALL to default locale: No such file or directory OpenSSL拆解p12证书公约和私钥 Linux sar 统计系统性能(网卡、内存和交换空间、CPU资源等) Linux Shell /dev/null 2>&1 含义 Windows 2003操作系统网络不通 构建私有yum安装源镜像站点(openstack) CentOS6/RedHat6新增网卡识别问题 Ubuntu 14.04 Server优化与使用问题解决 Redhat/CentOS6系统使用ntfs-3g挂载NTFS分区 Linux GPT挂载超过2TB磁盘 Linux系统性能优化、测试和监控工具梳理 修复WIN2003远程桌面服务无法访问 解决CentOS“Zabbix discoverer processes 75% busy”的问题 REHL/CentOS安装phpMyadmin

XenServer强制终止假死挂起(hang)的虚拟机VM

2014年11月19日

在XenServer中,经常出现虚拟机挂起假死,使用XenCenter无法关机、重启的情况,这是应为虚拟机(VM)挂起假死所致。造成虚拟机假死的原因很多,如:本身虚拟机系统的原因、XenServer底层XAPI接口的问题。

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

XAPI就是XenServer中的一组管理接口的统称,是XenServer管理的核心,由一系列的toolstack组成。

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

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

1.进入到VM内,使用系统的关机或者重启功能

通过XenCenter的菜单选择ShutDown或者Restart。虽然这个菜单的实现是通过XenServer tool来控制系统的命令来实现,但是不保证在XenServer Tools工作异常的情况下,导致VM挂起(Hang),而且,这个应该也是VM挂起(XenCenter中VM标志处于黄色状态)的主要原因。尝试通过XenCenter菜单的Force Shutdown和Force Restart来强制操作。

如果这些操作都进行了以后,VM也长时间处于挂起状态,为了让VM能够关机,或者说是强制关机来重置其状态,我们有以下几种解决方法,这些解决方法的危害会逐渐增加。所以,请按顺序尝试:

2.尝试重置VM的电源状态

xe vm-reset-powerstate force=true vm=['name-label']

3.尝试重启toolstack

#重启xapi守护进程
service xapi restart
#或者
xe-toolstack-restart

4.尝试destroy domain

#首先获取VM的UUID
#[] 内的内容必选
xe vm-list name-label=['your-name-label'] params=uuid
#获取VM的Domain ID
list_domains | grep 'your-uuid'
#尝试重置挂起状态的VM
/opt/xensource/debug/xenops destroy_domain -domid [your-id]

5.如果到这里还不行,就只能强制VM进入崩溃状态

#首先获取VM的UUID
xe vm-list name-label=['your-name-label'] params=uuid
#获取VM的Domain ID
list_domains | grep
#手动触发VM的Crash机制
/usr/lib/xen/bin/crash_guest

注:在Crash VM以后,VM会处于蓝屏状态,这个时候,可以再试试正常的关机或者强制关机命令来关闭虚机。

6.如果连Crash机制都不起作用的情况下,那么就只剩下强制关闭XenServer主机电源一条途径了。

转载请注明:自动化运维 » XenServer强制终止假死挂起(hang)的虚拟机VM