ESX命令提示符:vmware-cmd

近日我所管理的一台vmware esx 4.0服务器出了点状况,一开始是服务器的物理硬盘无响应引发黄色警告,我多次用VC连接esx服务器均已失败告终。我把esx的SSH服务打开,准备在shell下将esx的服务重新启动,但是担心出现esx上的所有VM都挂了,那么正在运行的业务将影响很大,因为没有做虚拟机对等HA,所以只能等夜里没有业务量的时候再停机维护。而等到了晚上当我再次登陆ssh发现系统在我输入root用户回车之后就停止了响应。因为VM都活着,为了不让esx强制重启导致VM出问题,我便登陆到所有的VM中进行关机操作,然后对esx进行强制关机并重启,最后逐个启动VM。

本次案例中VM不死的原因是VM的存储都是在EMC存储中的……

下面介绍一下如果可以登录到esx服务器中,在shell下可以对VM进行的操作。vmware提供了一个vmware-cmd的工具,位于/usr/bin/下,在任意目录直接执行即可。vmware-cmd是VMWARE管理虚拟机的工具,包括启动、停止、注册、快照、配置等。我们可以在VMware vSphere Client或其他第三方管理软件无法使用的时候管理我们的ESX或ESXi主机上的虚拟机设备。

 

[root@pcs zjsrueducn-web]# vmware-cmd

Invalid operation specified.

usage: vmware-cmd [options]

options:

  -h, --help         show this help message and exit

  -v                 Verbose.

  -q                 Quiet. Minimal output.

  Connection Options:

    -H <host>        specifies an alternative host (if set, -U and -P must

                     also be set)

    -O <port>        specifies an alternative port

    -U <username>    specifies a user

    -P <password>    specifies a password

  Server Operations:

    /usr/bin/vmware-cmd -l

    /usr/bin/vmware-cmd -s listvms

    /usr/bin/vmware-cmd -s register <config_file_path>

    /usr/bin/vmware-cmd -s unregister <config_file_path>

  VM Operations:

    /usr/bin/vmware-cmd <cfg> getstate

    /usr/bin/vmware-cmd <cfg> start <powerOpMode='soft'>

    /usr/bin/vmware-cmd <cfg> stop <powerOpMode='soft'>

    /usr/bin/vmware-cmd <cfg> reset <powerOpMode='soft'>

    /usr/bin/vmware-cmd <cfg> suspend <powerOpMode='soft'>

    /usr/bin/vmware-cmd <cfg> getconfig <variable>

    /usr/bin/vmware-cmd <cfg> setguestinfo <variable> <value>

    /usr/bin/vmware-cmd <cfg> getguestinfo <variable>

    /usr/bin/vmware-cmd <cfg> getproductinfo <product_info>

    /usr/bin/vmware-cmd <cfg> connectdevice <device_name>

    /usr/bin/vmware-cmd <cfg> disconnectdevice <device_name>

    /usr/bin/vmware-cmd <cfg> getid

    /usr/bin/vmware-cmd <cfg> getconfigfile

    /usr/bin/vmware-cmd <cfg> getheartbeat

    /usr/bin/vmware-cmd <cfg> getuptime

    /usr/bin/vmware-cmd <cfg> gettoolslastactive

    /usr/bin/vmware-cmd <cfg> hassnapshot

    /usr/bin/vmware-cmd <cfg> createsnapshot <name> <description> <quiesce> <memory>

    /usr/bin/vmware-cmd <cfg> revertsnapshot

    /usr/bin/vmware-cmd <cfg> removesnapshots

    /usr/bin/vmware-cmd <cfg> answer

Invalid operation specified.

下面介绍下主要的几个参数,其他自行测试。

vmware下的存储卷都是放在/vmfs/volumes/下,换言之,所有的虚拟机都是在这下面的。本例中约定一台red hat 5的虚拟机存储目录为/vmfs/volumes/cx4-240/rhel5-server/,rhel5-server.vmx是虚拟机的“配置文件”,配置信息都在里面,可以用编辑器打开。而我们对虚拟机的操作其实就是对配置文件的操作,配置文件如同一个“入口”。

约定:下方的xx代表rhel5-server.vmx

  • vmware-cmd -l 显示注册的计算机
  • vmware-cmd xx getstate 获得虚拟机的状态
  • vmware-cmd xx start  启动或从暂停状态恢复
  • vmware-cmd xx suspend 暂停虚拟机
  • vmware-cmd xx reset trysoft 重置虚拟机
  • vmware-cmd xx stop trysoft 关闭虚拟机
  • vmware-cmd xx hassnapshot 查询虚拟机快照
  • vmware-cmd xx creatsnapshot 创建虚拟机快照
  • vmware-cmd xx revertsnapshot 恢复快照
  • vmware-cmd -s register xx 注册虚拟机(添加到清单)
  • vmware-cmd -s unregister xx 反注册虚拟机 (从清单中移除)
  • vmware-cmd xx answer 回答提示

注意:在进行reset以及stop操作时候可选trysoft、soft以及hard方式,个人建议选择trysoft,这个可以先软性操作,如果不成功才会使用“暴力”操作,对保护VM是有好处的。

以上操作必须是在VM所在的ESX上进行,不然是无法成功执行的(除了将VM注册到当前ESX中)。因为执行权永远是在VM跑的宿主主机上的。

Tags: vmware, esx

上一篇: [视频]腾讯vs360之QQ用户pk腾讯客服
下一篇: [转]VMware下ESX常见命令

相关文章

发表评论