*-==================================-*
* vSPHERE4 命令行管理(单机管理)
*-==================================-*

+ VM管理
; 检查VMWARE ESX版本

  1. $ vmware -v 

; 列出系统中的虚拟机

  1. $ vmware-cmd -l 
  2. $ vmware-cmd -s listvms 

; 启动,挂起,重启,关闭系统中的虚拟机

  1. $ cd $vmPATH 
  2. $ vmware-cmd WindowsXP.vmx start 
  3. $ vmware-cmd WindowsXP.vmx stop [soft|hard|trysoft] 
  4. $ vmware-cmd WindowsXP.vmx reset [soft|hard|trysoft] 
  5. $ vmware-cmd WindowsXP.vmx suspend 

; 注意:对虚拟机的重置与关闭均有软(SOFT),硬(HARD)两种,软重置代表VMWARE将调用客户操作系统中的重启命令,而硬重置则表示系统不调用客户操作系统中的重启指令,直接清除内存状态并重新启动,在生产环境中,这是不可取的
; 获取虚拟机Id

  1. $ vmware-cmd WindowsXP.vmx getid 

; 取得系统虚拟机的状态

  1. $ vmware-cmd WindowsXP.vmx getstate 
  2. $ vmware-cmd WindowsXP.vmx getuptime 

; 连接虚拟机光驱

  1. $ vmware-cmd WindowsXP.vmx connectdevice ide1:0 

+ 快照管理<SSM>
; 快照是虚拟机在某个时间的磁盘文件<vmdk>副本
; 一般情况下,进行快照后,如果操作系统与应用运行正常,通常需要将快照移除,如果进行升级后,操作系统或者应用系统运行出现异常,通常需要进行快照恢复,从而丢弃对系统的升级操作,注意:快照会消耗巨大的磁盘空间,一般只在对系统进行重大操作时使用
; 检查虚拟机是否存在快照

  1. $ cd $vmPATH 
  2. $ vmware-cmd WindowsXP.vmx hassnapshot 

; 创建一个快照

  1. $ vmware-cmd WindowsXP.vmx createsnapshot 'SnapName' 'Description' <quiesce> <memory> 
  2. $ vmware-cmd WindowsXP.vmx createsnapshot 'ICE' 'VirusTest_LoveBUG' 1 1 


; 系统升级后运行正常,删除快照,注意,命令行只能移除全部快照,否则应该使用VI客户端,快照移除后,快照中的变更会合并到父级快照,如果没有父级快照,变更会写入到基础磁盘。
; 在VI的快照管理器中,系统的运行状态会用标签"YOU ARE HERE"进行标识
; BTW, VMWARE的快照与存储设备的快照不同,VMWARE的快照没有进行空间的限制,另外,VMWARE的快照也不适合用于作为数据安全的手段

  1. $ vmware-cmd WindowsXP.vmx removesnapshots 

; 系统升级后出现异常,恢复快照

  1. $ vmware-cmd WindowsXP.vmx revertsnapshots 



+ 虚拟机主机(ESX)管理
- 网络管理
* 物理网卡
; 查看与设定ESX物理网卡

  1. $ esxcfg-nics -l 

; 自动双工与速度

  1. $ esxcfg-nics -a 
  2. $ esxcfg-nics -d 'full' 
  3. $ esxcfg-nics -s '1000' 

; 恢复默认

  1. $ esxcfg-nics -r 

* 控制台,VMK,虚拟交换机管理
; 查看虚拟交换机

  1. $ esxcfg-vswitch -l 

; 添加一台虚拟交换机

  1. $ esxcfg-vswitch -a default 

; 将物理端口连接到虚拟交换机

  1. $ esxcfg-vswitch -L vmnic# vSw 

; 添加一个虚拟端口组,注意,在VMWARE中,一个VLANID是基于一个端口组,而不是虚拟交换机,如果使用VMK,每个交换机至少有3个端口组:<SC>,<VMK>,<VMN>, 其中VMN表示提供组虚拟机访问的网络

  1. $ esxcfg-vswitch -A defaultSC default 

; 为端口组指定VLANID

  1. $ esxcfg-vswitch -p $PG $SW -v#Id 

; 创建控制台端口,此举一般用于网络迁移,执行之前,需要先分配用于控制台的端口组名称

  1. $ esxcfg-vswif -a vswif# -p "PORTGROUP" -i $IPADDR -n $MASK 

; 创建VMK端口,同上,用于VMWARE底层通信

  1. $ esxcfg-vmknic -a vmk# -p "PORTGROUP" -i $IPADD -n $MASK 
  2. $ esxcfg-route -a x.x.x.x ;添加VMK默认网关 

; 删除vswif#,vmk#,vswitch, 注意,在新的SC连通之前,不要轻易删除以前的SC,否则将会使得连接中断

  1. $ esxcfg-vswif -d vswif# 
  2. $ esxcfg-vmknic -d PORTGROUP_OF_VMKNIC 
  3. $ esxcfg-vswitch -d vswitch 

; 删除端口组

  1. $ esxcfg-vswitch -D PORTGROUP_NAME VSWITCH_NAME 


- 系统管理
; 重新启用虚拟机管理服务,如果无法启动,注意观察"/var/core"以及磁盘空间使用情况,适时清除此目录并重新启动管理服务

  1. $ cd /var/core 
  2. $ du -sh 
  3. $ service mgmt-vmware restart 

; 修改ROOT密码
$ passwd root
; 查看ESX主机服务

  1. $ esxcfg-firewall -s 
  2. $ esxcfg-firewall -q webAccess 
  3. $ service --status-all 


; 注意,ESX基于LINUX REDHAT5,除了使用VMWARE特有的命令以外,还可以按照一般的LINUX管理方式对系统进行管理,比如,同样可以在ESX服务器上安装SYSSTAT软件采集系统性能数据,也

说明: 尽管VMWARE ESX提供了一大套的命令,但是我觉得搞清楚把它用在什么地方才是最为重要的,就我个人而言,不太赞成使用命令行进行操作,使用命令行最恰当的地方应该是使用脚本进行自动化数据采集与调错两个方面,在其它时候,最好采用VMWARE VSPHERE CLIENT进行操作。