VMware

vSphere是vmware的虚拟化平台,包括ESXi和vSphere Client.

vSphere Hypervisor(也叫ESXi)是vSphere的免费裸机hypervisor. 把物理机虚拟出多个虚拟机.

vSphere client是vSphere的简单管理工具.只能管理一台ESXi物理机和上面的虚拟机.

vCenter Server是vSphere的高级管理系统.需单独购买.


配置管理

开启虚拟机copy/paste功能:

1
2
3
4
# 通过vsphere client
edit properties -> Options -> Advanced -> General -> configuration Parameters
# isolation.tools.copy.disable    false
# isolation.tools.paste.disable    false

开启虚拟机的虚拟化功能:

1
2
3
# 通过ssh到esxi服务器
$ vim /vmfs/volumes/datastore1/Ubuntu1604/Ubuntu1604.vmx
vhv.enable = "TRUE" # 添加到最后一行

创建的vm命名不能带小数点.


命令

vim-cmd:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
vim-cmd vmsvc/getallvms # 获取所有虚拟机
vim-cmd vmsvc/reload
vim-cmd vmsvc/power.on vmid
vim-cmd vmsvc/power.shutdown vimid
vim-cmd vmsvc/power.off vimid
vim-cmd vmsvc/power.reboot vimid

# power on all vms
for vm in `vim-cmd vmsvc/getallvms | awk '{if (NR>1) {print $1}}'`;
do
    echo "power on ${vm}...";
    vim-cmd vmsvc/power.on ${vm}
done

esxcli:

1
2
esxcli vm process list # 查看所有运行的vm
esxcli vm process kill --type=[force/soft/hard] --world-id=<world-id> # 关机

esxtop:

1
2
# 类似于linux的top命令
esxtop

vscsiStats:

1
vscsiStats -l

python

pyVmomi is the Python SDK for the VMware vSphere API that allows you to manage ESX, ESXi, and vCenter.

https://github.com/vmware/pyvmomi

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
pip install pyvmomi

from pyVmomi import vim
from pyVim import connect
si = connect.SmartConnect(host='hostname', user='username', pwd='password', port='port')

def find_vm(si, name):
    ct = si.content
    ov = ct.viewManager.CreatecontainerView(ct.rootFolder, [vim.VirtualMachine], true)
    vm_list = ov.view
    for vm in vm_list:
        if vm.name == "vmname":
            return vm
    return None