‘壹’ esxi6 关机时怎么执行命令
目的:强行关闭通过前端界面无法关闭的ESXI虚拟机
环境:esxi5.1-esxi6.5
背景:如果esxi下面某一台vm死机了,并且esxi的控制台卡死不能用,为了不影响同一个esx下其他的vm正常使用,那么我们只能用命令行来单独重启此vm,保证一定得安全性和效率。下面我会通过四种方法来重启vm
做法:登陆esxi主机
1. SSH登陆esxi
2. 重启/关闭VM
2.1) 通过vim-cmd来重启
# vim-cmd vmsvc/getallvms #获取所有虚拟机的vmid信息
关闭虚拟机:# vim-cmd vmsvc/power.off 3
打开虚拟机:# vim-cmd vmsvc/power.on 3
重启虚拟机:# vim-cmd vmsvc/power.reset 3
获取虚拟机的当前状态:# vim-cmd vmsvc/power.getstate 3
2.2) 使用esxi主机的esxcli命令来关闭vm
# esxcli vm process list #获取正在运行的虚拟机的信息
关闭虚拟机: # vm process kill --type=hard --world-id=245735
注意有三种关闭虚拟机的模式:soft程度最低,hard为立即执行,如果依然不能关机那么就只能用force模式。
查看虚拟机有没有被关闭:esxcli vm process list (这条命令显示,如果没有在列表里面的则表示已经关闭了)
3 在esxi上面发送信号来关闭vm
说明:主要是虚拟机能够在命令行下停止相关的进程从而关闭
警告:这个操作对esxi母机有潜在的危险,如果你不能正确的辨别进程的ID,而误杀了其他的进程,就会导致不可预期的后果,所以一般尽量不要去用这种方法。
1)要知道esxi下面有没有虚拟机在运行可以使用下面的命令:
# ps | grep vmx (分别是pid,父进程,调用的服务)
2)从上面可以看出我的tw08c011s2这台虚拟机的父进程是247107,那么我只要把它kill掉就ok了 。即:
终止虚拟机的父进程:# kill 247107
强制终止:# kill -9 247107
3)用上面的命令进行检测,应该是ok了。
‘贰’ 如何使用VMware ESXi的远程命令行界面
大多数人都认为VMware ESX Server 3i和ESX Server 3.5是极其相似的,除了在3i的调试界面中没有像Red Hat Enterprise Linux界面的命令行程序。甚至很多人认为ESX Server仅仅缺少了命令行接口(CLI command line interface)。但事实上,ESX Server3i是有CLI的,只不过是远程CLI。本文中,我将演示如何下载、安装和使用该命令行程序。
安装ESX Server远程CLI
远程CLI使得用户可以在远程ESX Server3i系统上运行命令行。在ESX 3i系统环境中的VMware可以完全支持这种操作方式,但是在ESX Server 3.5系统中的虚拟机是不支持的。
VMware提供了三种安装远程ESX Server3i CLI的方式
Windows
Linux
作为虚拟应用方式(被加载到VMware ESX Server中并作为虚拟脚本程序运行)
并不是我对Linux有偏见,受篇幅限制我只能演示在Windows系统中如何安装远程ESX Server 3i CLI。
包含RCLI(Remote CLI)的虚拟应用程序看起来是一种非常有趣的安装方式。Windows CLI大约44MB大小,而虚拟应用程序有119MB。因此,对于您来说掌握Windows CLI的方式要比虚拟应用程序的方式更加简单和快捷。
通过使用虚拟应用程序,最终您将获得一个功能性的“脚本应用程序”。和在您的系统中安装一个新的应用程序相比,这种方式避免了可能会跟Perl或其他应用存在冲突的风险。另外,该应用是独立运行在您的系统中的,相比像应用服务器一样的方式,这种方式只有您可以使用该虚拟程序。
首先从VMware下载中心下载RCLI开始我们的安装过程。在那里,找到VMware Infrastructure Remote Client,然后下载。输入VMware用户名和密码后登陆,当然需要选择接受长达9页的软件许可证书(这个阅读量可真够大的!!)
这里有三种不同的RCLI可以下载,同时带有一个PDF文档用以解释如何使用RCLI和介绍Storage VMotion. 在下载完成后,运行并安装Windows RCLI。三次点击后,进入安装程序:
下载和安装是最简单的部分,如何正确地使用RCLI才是问题所在。
如何使用VMware ESX Server 3i远程CLI?
在安装完之后,无论在桌面还是在开始菜单的VMware程序组中都不会看到新图标的出现。您可能会看到一个新出现的ActivePerl 5.8程序组,但是在这个组中没有任何VMware对应的图标。事实上,当我进行到这一步的时候,我需要回头去看一遍文档来学习如何进入RCLI。
为了使RCLI,进入Windows的命令行程序,然后更改文件夹路径到RCLI\bin,输入如下命令:
cd \Program Files\VMware\VMware VI Remote CLI\bin
接下来我运行了DIR命令来查看该文件夹中的文件。下面是我看到的结果:
除非您是命令行程序或者Per 的狂热爱好者,否则这时您一定会说“让我忘记这种管理方式吧,这只适用于CLI程序员,并不是为我设计的”。不过,我仍然建议,在您决定是否使用它们之前,花些时间来了解这些命令的强大功能。和多数脚本程序一样,这是无法通过简单地几篇短文就可以全部掌握的。
在RCLI中提供了很多不同的命令帮助您完整多种不同的功能。为了演示它们能做什么,我需要选择一个简单的命令来举例说明。我选了较为简单的命令,vicfg-nics,通过这个演示我们可以看到怎样通过这个命令来显示远程3i服务器的虚拟网卡列表。请输入以下命令行:
vicfg-nics.pl;server esxserver1;l
这里将提示您输入用户名和密码。请注意在用户名和密码中带有的特殊字符将占用两个字符位,或者在之前会出现反斜杠。
进入该文档后,点击ESX Server 3i Configuration Guide,然后点击Using Remote Command-line Interfaces,您将注意到在文档中,对于每个命令都有多个不同的选项,帮助您定义一些不同的参数,例如设置用户名和密码。
结论
结论是,对于虚拟化系统的管理员来说,VMware ESX Server 3i的RCLI(3.5版不支持),可以作为一个全新的管理工具使用。有了RCLI,管理员可以通过创建脚本程序来管理我们的远端VMware ESX Server系统。通过这些脚本的组合,使得我们可以实现对虚拟架构环境的自动化管理方式。