在ESXi主机上关闭无响应的虚拟机
该方法适用于以下情况:
- ESXi主机上的虚拟机不能关闭。
- 虚拟机无响应且不能停止。
这篇文章描述在ESXi环境中如何正确的关闭一台无响应的虚拟机。
注意: 这篇文章只适用于ESXi主机,不适用于ESX主机。对于ESX主机,请参考 Powering off an unresponsive virtual machine on an ESX host (1004340).
注意: 如果你尝试查找造成虚拟机无响应的原因,首先应当收集性能变化规律,然后中止虚拟机运行,从而收集更多的故障信息。要获得更多信息,请参考 Troubleshooting a virtual machine that has stopped responding: VMM and Guest CPU usage comparison (1017926) 或者 Troubleshooting a virtual machine that has stopped responding (1007819).
警告: 请严格按照文章中的步骤操作。每一步操作对虚拟机都有一定的影响,所以请不要跳过其中任何一步!
用vSphere Client关闭虚拟机
用客户端尝试顺利关闭虚拟机:
1. 用vSphere Client或者 VI Client连接 VMware vCenter Server或VirtualCenter Server。
2. 右键单击要关闭的虚拟机,从弹出的快捷菜单中选择“电源->关闭客户机”。如果操作失败并提示“正在处理另一个任务”,请等待任务完成,或者参考 Powering off a virtual machine fails with the error: Cannot power Off: Another task is already in progress (1027040) 或 vCenter operation times out with the error: Operation failed since another task is in progress (1004790).
3. 如果虚拟机依然在运行,请尝试在主机上进行相同的操作。
4. 用vSphere Client或者 VI Client 直接连接ESXi主机来运行虚拟机。
5. 右键单击要关闭的虚拟机,从弹出的快捷菜单中选择“电源->关闭客户机”。
如果虚拟机使用客户端不能正常关机,请选用以下任一种命令行模式。
安装 vSphere Command-Line Interface 工具
vSphere Command-Line Interface (vCLI) 会在本文的某些步骤中用到,所以在使用前请确保你已经正确的安装了它。
- 对于ESXi 3.5 主机, 请在 Remote Command-Line Interface Installation and Reference Guide中参考Remote CLI Installation and Execution 。
- 对于ESXi 4.0 主机, 请在 vSphere Command-Line Interface Installation and Reference Guide中参考vSphere CLI Installation, Execution, and Command Overviews 。
- 对于 ESXi 4.1主机,请参考 vSphere Command-Line Interface Installation and Scripting Guide。
- 对于ESXi 5.0 主机,请参考 vSphere Command-Line Interface Documentation。
注意: 对于ESXi 4.x 和 ESX 5.0主机,远程命令行接口程序会通过vSphere Management Assistant (vMA) 访问。 如果你偏爱这个工具,请在 vSphere Command-Line Interface Installation and Reference Guide中参考 Installing vMA and Running Commands from vMA 。
确认虚拟机的位置
请确认虚拟机是在哪个主机上运行。你可以通过vSphere Client中虚拟机的“摘要”选项卡来查看相关信息。随后将在虚拟机所在的主机上运行相关命令来关闭虚拟机。
使用ESXi 5.0 主机的esxcli 命令来关闭虚拟机
esxcli 命令能够在本地或远程来关闭运行在ESXi 5.0主机上的虚拟机。要获得更多信息,请参考 vSphere Command-Line Interface Reference中esxcli vm Commands 章节。
1. 打开ESXi Shell、vSphere Management Assistant (vMA)或vSphere Command-Line Interface (vCLI) 客户端,只要esxcli工具能够运行即可。
2. 使用如下命令获取正在运行的虚拟机清单,该清单由World ID、UUID、Display Name和 .vmx 配置文件所在路径构成:
esxcli vm process list
3. 用如下命令关闭一台虚拟机:
esxcli vm process kill --type=[soft,hard,force] --world-id=WorldNumber
注意: 有三种关闭虚拟机的方法,Soft 程度最低,hard 为立即执行,如果依然不能关闭,则可以使用force 模式。
4. 执行步骤2来检查虚拟机是否已不再运行。
使用 ESXi 命令行工具 vim-cmd 来关闭虚拟机
1. 在 ESXi 控制台,进入技术支持模式,用root用户登录。 更多信息请参考 Tech Support Mode for Emergency Support (1003677).
2. 使用如下命令获取正在运行的虚拟机清单,该清单由VMID、Display Name和 .vmx 配置文件所在路径构成:
vim-cmd vmsvc/getallvms
3. 获取虚拟机的当前状态:
vim-cmd vmsvc/power.getstate VMID
4. 使用第2步获取的VMID 来关闭虚拟机:
vim-cmd vmsvc/power.shutdown VMID
Note: 如果虚拟机还是不能关闭,请尝试以下命令:
vim-cmd vmsvc/power.off VMID
在ESXi主机上发送信号来关闭虚拟机
虚拟机能够在命令行模式下停止相关进程从而关闭。
警告:这个操作对ESXi 主机有潜在的危险。 如果你不能正确的辨别进程ID,而误杀了其它进程,这极有可能引起不可预知的结果。如果你不能有把握的执行以下操作,请给VMware 技术支持部门发送支持请求,并在问题描述中说明本知识库的文档编号(1014165)。要获取更多信息,请参考How to Submit a Support Request。
在 ESXi 3.5-5.0主机中, 你可以使用 kill 命令来中止一个虚拟机进程。
1. 在 ESXi 控制台,进入技术支持模式,用root用户登录。 更多信息请参考 Tech Support Mode for Emergency Support (1003677).
2. 要知道ESXi 主机上是否有虚拟机进程在运行,可使用如下命令:
ps | grep vmx
输出如下所示:
7662 7662 vmx /bin/vmx
7667 7662 vmx /bin/vmx
7668 7662 mks:VirtualMachineName /bin/vmx
7669 7662 vcpu-0:VirtualMachineName /bin/vmx
每一个vmx进程都会返回一行。 请仔细辨别目标虚拟机的vmx父进程。第一列为进程ID(PID),第二列即为父进程ID(parent's PID)。 请确保你只中止了父进程。 父进程ID (PID)在每一行的第二列, 在本例中都用粗体标识。请记住这个号码,它将在下面的步骤中用到。
警告: 请确保你已经确认了要修复的虚拟机所在的行。如果你是对除了有问题的虚拟机以外的虚拟机进行这些操作,那么极有可能引起这些机器宕机。
3. 如果 vmx 进程在列表中,使用如下命令即可终止该进程:
kill ProcessID
4. 等待30秒然后重复步骤2来检查进程是否已终止。
5. 如果进程依然没有终止,可使用以下命令:
kill -9 ProcessID
6. 等待30秒然后重复检查进程是否已终止。
在ESXi 4.1-ESXi 5.0主机中,你可以使用 esxtop中的 k 命令来终止一个正在运行中的虚拟机进程。
1. 在 ESXi 控制台,进入技术支持模式,用root用户登录。 更多信息请参考 Tech Support Mode for Emergency Support (1003677).
2. 使用以下命令来运行 esxtop 工具:
esxtop
3. 按 c 选择 CPU 资源利用界面。
4. 按 f 显示信息列表。
5. 按 c 添加 Leader World ID列。
6. 通过虚拟机名称和Leader World ID (LWID)确认我们要修复的虚拟机。
7. 按 k。
8. 在 World to kill 提醒后面,输入第6步确认的Leader World ID,然后按Enter。
9. 等待30秒然后验证进程是否已经结束。
如果使用以上方法均不能关闭虚拟机,则说明问题可能是由于ESXi主机或者它的硬件问题所引起的。
如果怀疑是由于ESXi主机问题引起的虚拟机不能关闭, 请使用vMotion将所有未受影响的虚拟机迁移到其它主机,然后强制关闭主机并使用硬件诊断工具检测问题。 更多信息请参考 Using hardware NMI facilities to troubleshoot unresponsive hosts (1014767).
转载于:https://blog.51cto.com/2790010/1159121
相关文章:

React和Jquery比较
Jquery的工作方式: 假如你需要给一个按扭添加一个点击事件。 首先根据CSS规则找到对应的dom元素,挂上一个匿名事件处理函数,在事件处理函数中,选中那个需要被修改的DOM元素,读取他的文本值,加以修改&#x…

C++的STL栈实现队列
使用内部存储结构为栈的方法实现一个队列,要求实现该队列的如下方法: 1.push(x) : 将元素x压入队列中 2.pop() : 弹出(移除)队列头部元素 3.peek() : 返回队列头部元素(即为front) 4.empty() : 判断队列是否是空 栈的数据结构为先入后出,队列…

如何设置SOLR的高亮 (highlight)?
打开SOLR的核心配置文件: solrconfig.xml找到 standard request handler写入以下XML配置代码:[c-sharp] view plaincopy <requestHandler name"standard" class"solr.SearchHandler" default"true"> <!-- def…

java快排算法解读,java 快排的思路与算法
java 快排的思路与算法有时候面试的时候的会问道Arrays.sort()是怎么实现的,我以前根本不知道是什么东西,最近点进去看了一下。直接吓傻,//看到这个时候还是比较淡定的,可怕的事情来了。public static void sort(int[] a) {DualPi…

SQL:EXISTS的用法理解(转)
摘自:http://www.cnblogs.com/netserver/archive/2008/12/25/1362615.html 比如在Northwind数据库中有一个查询为 SELECT c.CustomerId,CompanyName FROM Customers c WHERE EXISTS( SELECT OrderID FROM Orders o WHERE o.CustomerIDc.CustomerID) 这里面的EXISTS…

002.Heartbeat部署及httpd高可用
一 前期准备 1.1 依赖准备 编译安装需要依赖的包,如gcc等:yum -y install gcc gcc-c make glibc kernel-devel kernel-headers autoconf automake libtool glib2-devel libxml2 libxml2-devel libxslt-devel libtool-ltdl-devel wget asciidoc libuuid-d…

C++的STL栈实现获取栈中最小元素的成员
实现一个获取栈中最小数据成员的函数,该栈支持如下操作: 1.push(x) : 将元素x压入栈中 2.pop() : 弹出(移除)栈顶元素 3.top() : 返回栈顶元素 4.getMin() : 返回栈内最小元素 要求时间复杂度为O(1) 这里关键是如何获取最小值,栈中的元素不断…

java servlet applet,详解Java Servlet与Applet比较
Java Servlet与Applet相似之处:◆它们不是独立的应用程序,没有main()方法。◆它们不是由用户或程序员调用,而是由另外一个应用程序(容器)调用。◆它们都有一个生存周期,包含init()和destroy()方法。Java Servlet与Applet不同之处&…

NTP时间同步服务器搭建
转载:http://blog.s135.com/post/281/ 一、搭建时间同步服务器1、编译安装ntp server tar zxvf ntp-4.2.6.tar.gzcd ntp-4.2.6./configure --prefix/usr/local/ntp --enable-all-clocks --enable-parse-clocksmake && make install注:如以上下载…

OI基础系列之最大子数组问题
OI基础系列之最大子数组问题 ——Edward2414 oi退役了,虽然没取得多少成绩,也算是走过一会的人了。我相信绝大多数oi党都是自学成才,在此,我感谢那些把自己所学写到博客里的前辈们,没有你们,我不可能…

springCloud Zuul网关
1.springboot 仅2.0.x 支持,在此选择 2.0.7 2.新建Module eureka-zuul-client 3.导入依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/…

f-free 查看系统中空闲和使用的内存
文章目录前言语法格式以指定单位显示内存占用情况打印所有内存占用(RAM SWAP)打印间隔以及次数打印所有的列(将buff和cache分开)free各个空间含义swap交换空间cache页高速缓存free 与 available前言 free 支持查看空闲的和已使用…

对比两个同类型的泛型集合并返回差异泛型集合 ——两个List类名的比较
1: /// <summary> 2: /// 对比两个同类型的泛型集合并返回差异泛型集合 3: /// </summary> 4: /// <typeparam name"T">泛型类型</typeparam> 5: /// <param name"newModel">修改后的数据集合</param> 6: /// &…

php insert failed,较大的MySQL INSERT语句导致PHP错误
好吧,我正在编写代码,但是发生了一些奇怪的事情,我不认为我的代码是错误的…但是它仍在垂死,我不知道为什么…有错误:Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use …

js 取得文件大小
document.getElementById("file").files[0].size

Spring Boot thymeleaf模版支持,css,js等静态文件添加
Thymeleaf引入 Thymeleaf是一个Java模板引擎开发库,可以处理和生成HTML、XML、JavaScript、CSS和文本,在Web和非Web环境下都可以正常工作。 1.添加依赖包 <dependency><groupId>org.springframework.boot</groupId><artifactId>…

s-sed(stream editor) 文本填充和编辑 基本使用
文章目录前言语法格式sed 操作地址sed子命令sed正则表达式sed使用实例打印命令 p删除命令 d替换命令 s指定操作地址的范围 逗号 ,多重编辑命令 e下行插入命令 a上行插入命令 i修改命令 c获取下一行命令 n转换命令 y退出命令 q总结前言 sed是一个“非交互”式的字符流编辑器&am…
c语言动态迁移mysql,flask-migrate动态迁移数据库
了解flask_migrate需要先了解flask-script,那么flask-script的作用是什么呢?flask-script的作用是可以通过命令行的形式来操作Flask。例如通过命令跑一个开发版本的服务器、设置数据库,定时任务等。2.执行pip install flask-script来进行安装…

软考之路-网络攻击:主动攻击和被动攻击
被动攻击(针对路上的东西下手) 概念:就是网络窃听,窃取数据包并进行分析,从中窃取重要的敏感信息 措施:防止被动攻击的主要手段是数据加密传输 主动攻击(针对计算机下手) 概念:包括窃取、篡改、假冒和破坏 措施&#x…
edge.js架起node.js和.net互操作桥梁
今天要介绍的是edge.js这个github上刚兴起的开源项目,它可以让node.js和.net之间在in-process下互操作。.net版本在4.5及以上,因为.net4.5带来的Task,asyn,await关键字和node.js的Event模型正好匹配。如果你感兴趣的话,…

connect() failed (111: Connection refused) while connecting to upstream, cli
php-fpm没有运行 执行如下命令查看是否启动了php-fpm,如果没有则启动你的php-fpm即可 netstat -ant | grep 9000没有运行为空,有运行显示 tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 启动方法 sudo /usr/loca…

C++的STL 栈实现 判断栈的出栈顺序是否合理
有这样的题目: 已知从1至n的数字序列,按顺序入栈,每个数字入栈后即可出栈, 也可在栈中停留,等待后面的数字入栈出栈后,该数字再出栈,求该数字序列的出栈序列是否合法? 类似如下: 已…

fire.php,Fire PHP
项目介绍: Fire PHP 是基于 PHP JavaScript开发的跨平台的Firefox 的扩充套件,即PHP调试插件,可以帮你debug 后端PHP 的程式,其使用的技术跟某些IDE 一样,要求你在写程式时加入一些追踪用的代码。通过使用Firephp你可以…

json_encode时中文编码转正常状态
function json_encode_cn($data) {$data json_encode($data);return preg_replace("/\\\u([0-9a-f]{4})/ie", "iconv(UCS-2, UTF-8, pack(H*, $1));", $data); }直接json_encode()函数 ["\u6fb3\u5927\u5229\u4e9e","\u8056\u8a95\u5cf6&q…

验证URL链接和IP有效性的JS代码(正则表达式)
千里之行,始于足下,因之前毕业设计的耽误,没能在博客园记录我的程序猿体会,稍有遗憾,这么多的时间,我竟让他转瞬而过!但没关系,再次出发,勿忘为什么出发! 一下…

[转帖]什么是光纤的波长?看看有哪些是你不知道的!
什么是光纤的波长?看看有哪些是你不知道的! FShttps://www.feisu.com/bbs/e-1640.html2017-07-01 00:00:001084我们平时最熟悉的光当然是我们肉眼所能看见的光。我们的眼睛对波长在400nm的紫光到700nm的红光很敏 感。但对于携带玻璃纤维的光纤࿰…

C++的STL 栈 实现四则运算
使用栈实现四则运算,支持,-,*,/,(,) 输入为字符串,输出为计算好的数值,如不符合四则运算的规定,则异常退出 这个实现借用了栈以及字符处理状态机的思想: 维…

javascript小数相减会出现一长串的小数位数的原因
javascript小数相减会出现一长串的小数位数的原因 <script>var a38.8;var b6.8;alert(parseFloat(a)-parseFloat(b));var a134.22;var b6;alert(a*b);</script>以上代码为什么产生一长串小数位出来,虽然比较精确,可没必要呀。这个和数据结构…

Java孩子父母类,@Output孩子和父母之间的沟通 . 角2(5)
我正在尝试学习角度2,并且我正在尝试使用来自我的子组件的数据在父组件中设置变量 . 基本上我在父视图中有一个子 Headers ,我希望 Headers 和一些HTML根据加载的子项进行更改 .父组件:import { Component, OnInit, ViewEncapsulation } from…

SQL 自学笔记1(W3School)
自学W3Schoolhttp://www.w3school.com.cn/sql/index.asp 简介 SQL是什么? Structured Query Language 结构化的查询语言 SQL能做什么? 面向数据库查询、取出数据、插入新数据、更新数据、删除数据在数据库中建立库、表;创建存储过程及视图可设…