VMware ESXI 虚拟机无法关机 | 您所在的位置:网站首页 › 虚拟机无法挂起关机 › VMware ESXI 虚拟机无法关机 |
前言:昨天通过kibana发现elastic集群状态变成Red,在开发工具中通过命令行排查发现有一台elastic节点消失了,便试图登录节点发现登陆失败,本地的elastic节点是通过VMware ESXI 创建出的虚拟机,登陆ESXI发现已经卡死,web界面点击关闭电源等了几分钟发现关机失败,便打开SSH通道通过命令行登录排查。 一:打开ESXI SSH通道登陆VMware ESXI web管理界面,主机-操作-服务-启用Secure Shell(SSH),默认是禁用的,开启后重启ESXI后又会恢复为禁用。 我使用的是mac,直接通过终端进行ssh登陆,密码为web管理界面登陆的root密码。 1:通过运行:vim-cmd vmsvc/getallvms 获取所有已注册虚拟机的列表,找到无法正常关机的虚拟机的VMID,我这里需要记住es3的VMID:6 2:通过运行:vim-cmd vmsvc/power.getstate VMID 查看目前虚拟机的运行状态。 注:我之前在web管理界面点击了关闭电源,通过命令行查看可以发现虚拟机仍处于开机状态。 3:通过运行:vim-cmd vmsvc/get.tasklist VMID 查看未能正常关闭的虚拟机是否有挂起的任务阻止了虚拟机关机。 注:我写文档的时候环境已经恢复了,所以这里没有挂起的任务,故障情况下,此处有挂起的任务,当时着急修复忘记截图,此处引用官方示例图 4:通过运行:vim-cmd vimsvc/task_info task_id 获取挂起任务的详细信息,task_id 引用步骤3中(官方示例图)获取到的任务id。 5:通过运行:vim-cmd vimsvc/task_cancel task_id 取消挂起的任务。 注:如果步骤4中返回的信息中cancelable参数等于false时,表示任务不可取消,所以并不是所有的任务都能取消。 6:通过运行:vim-cmd vmsvc/power.shutdown VMID 关闭虚拟机。 注:如果还是无法关闭,再执行:vim-cmd vmsvc/power.off VMID 四:使用ESXI esxcli 命令关闭1:通过运行:esxcli vm process list 获取正在运行的虚拟机列表,找到无法正常关闭的虚拟机World ID。 2:通过运行以下命令之一关闭无法正常关闭的虚拟机。 esxcli vm process kill -t=soft -w=WorldID esxcli vm process kill -t=hard -w=WorldID esxcli vm process kill -t=force -w=WorldID注:-t=soft 表示安全关闭虚拟机。 -t=hard表示不做任何检查,立即关闭。 -t=force表示强制关闭。 五:通过kill 虚拟机进程进行关机警告:官方推荐的方法为步骤三和步骤四,此步骤具有高风险,有可能会导致虚拟机异常,请斟酌谨慎使用。如你使用此步骤引起虚拟机异常,概不负责。 1:通过运行 ps | grep vmx 获取所有虚拟机的进程。 可以看到,启动了几个虚拟机,就会有几个vmx的主进程。 2:通过运行 kill -9 PID 便可以将es3 虚拟机进程关闭,虚拟机也就关闭了。 总结大部分虚拟机无法关机通过步骤三和步骤四基本能解决,如果步骤三和步骤四还是不能关闭虚拟机,需要根据虚拟机的重要性判断是否使用步骤五。 很不幸,我使用以上所有方法后还是无法关闭,使用步骤五kill -9时,提示进程不存在,但是ps 结果返回进程还存在,由此判断大概率ESXI系统出现故障,本人能力有限,只能使用重启大法解决,先将其余虚拟机正常关机,然后再进行ESXI重启,ESXI重启过程中,一直卡在关机界面,后面断电重新开机问题才解决。 本文来自博客园,作者:鲜小橙,转载请注明原文链接:https://www.cnblogs.com/big-cousin/p/16879965.html |
CopyRight 2018-2019 实验室设备网 版权所有 |