前言

最近VMware发布了vsphere6.7,(似乎跟6.5不同)找个机会测试下。自己笔记本的workstation内存太小,只能搞个esxi先试试,等有机会用家里的台式机测试下vCenter Server和VCSA。(因为现在这两个东西安装都要检测内存,达不到要求装不了。。最小内存10GB! 我吃柠檬!!)安装esxi这个就不要说了吧,网上大把傻瓜教程,装好后忽然发现esxi主机没有虚拟机克隆功能。。。可能是原来一直都使用VC,从来没有关注过这个。好吧,既然界面没有,那么就使用命令吧。

vmkfstools介绍
vmkfstools工具esxi主机自带的一个操作vmdk文件和vmfs文件系统的工具,类似于KVM中的qemu-img工具。我们可以通过它来创建、修改、克隆、删除vmdk文件等一系列操作。
具体的使用方法参加:

vmkfstools -H
 [root@localhost:~] vmkfstools -HOPTIONS FOR FILE SYSTEMS:
vmkfstools -C --createfs [vmfs5|vmfs6|vfat]
 -S --setfsname fsName
 -Y --unmapGranularity #[bBsSkKmMgGtT]
 -O --unmapPriority <none|low|medium|high>
 -Z --spanfs span-partition
 -G --growfs grown-partition
 deviceName
-P --queryfs -h --humanreadable
       -T --upgradevmfs
vmfsPath
 -y --reclaimBlocks vmfsPath [–reclaimBlocksUnit #blocks]OPTIONS FOR VIRTUAL DISKS:
vmkfstools -c --createvirtualdisk #[bBsSkKmMgGtT]
 -d --diskformat [zeroedthick
 |thin
 |eagerzeroedthick
 ]
 -a --adaptertype [deprecated]
 -W --objecttype [file|vsan|vvol|pmem|upit]
 –policyFile 
 -w --writezeros
 -j --inflatedisk
 -k --eagerzero
 -K --punchzero
 -U --deletevirtualdisk
 -E --renamevirtualdisk srcDisk
 -i --clonevirtualdisk srcDisk
 -d --diskformat [zeroedthick
 |thin
 |eagerzeroedthick
 |rdm:|rdmp:
 |2gbsparse]
 -W --object [file|vsan|vvol]
 –policyFile 
 -N --avoidnativeclone
 -X --extendvirtualdisk #[bBsSkKmMgGtT]
 [-d --diskformat eagerzeroedthick]
 -M --migratevirtualdisk
 -r --createrdm /vmfs/devices/disks/…
 -q --queryrdm
 -z --createrdmpassthru /vmfs/devices/disks/…
 -v --verbose #
 -g --geometry
 -x --fix [check|repair]
 -e --chainConsistent
 -Q --objecttype name/value pair
 –uniqueblocks childDisk
 –dry-run [-K]
 vmfsPath

OPTIONS FOR DEVICES:

-L --lock [reserve|release|lunreset|targetreset|busreset|readkeys|readresv
                 ] /vmfs/devices/disks/...
       -B --breaklock /vmfs/devices/disks/...

OPTIONS FOR VMFS MODULE:

--traceConfig [0|1]
       --dataTracing [0|1]
       --traceSize <x> (MB)

这里我们需要使用到:
vmkfstools -i <source-disk-name.vmdk> -d [zeroedthick |thin |eagerzeroedthick | rdm:|rdmp: |2gbsparse] <destination-disk-name.vmdk>

注:-d选项不是必须选项,如果不配置,则克隆出来的vmdk文件与原文件格式一样。

克隆操作

首先创建一个新虚拟机,创建步骤省略,但是这里需要注意的是,创建虚拟机时,不要创建虚拟硬盘,可以在自定义设置中将硬盘删除;

esxi ssh 删除虚拟机 esxi删除文件命令_Windows


注意:上图的SCSI控制器(Lsi Logic SAS)一般安装vmware ESXI 默认的选项就可以了,不要刻意的选择其他的,除非克隆后的系统再启动过程种有蓝屏或者不能正常启动的情况,再尝试选择其他方式,esxi6.7默认如下模式:

esxi ssh 删除虚拟机 esxi删除文件命令_esxi ssh 删除虚拟机_02

创建完成的虚拟机没有配置虚拟硬盘;

esxi ssh 删除虚拟机 esxi删除文件命令_Server_03

开启主机的SSH服务(默认关闭);

esxi ssh 删除虚拟机 esxi删除文件命令_Server_04

SSH登录后,查看需要克隆的现有虚拟机虚拟硬盘;

[root@localhost:~] ls -l /vmfs/volumes/datastore1/Windows\ 7/
 total 31458368
 -rw------- 1 root root 32212254720 May 14 07:05 Windows 7-flat.vmdk
 -rw------- 1 root root 8684 May 14 07:05 Windows 7.nvram
 -rw------- 1 root root 503 May 14 07:01 Windows 7.vmdk
 -rw-r–r-- 1 root root 0 May 14 06:48 Windows 7.vmsd
 -rwxr-xr-x 1 root root 3204 May 14 07:05 Windows 7.vmx
 -rw------- 1 root root 47 May 14 07:01 Windows 7.vmxf
 -rw-r–r-- 1 root root 296408 May 14 07:05 vmware.log

这里我们克隆Windows 7.vmdk文件至虚拟机test虚拟机目录;

[root@localhost:~] vmkfstools -i /vmfs/volumes/datastore1/Windows\ 7/Windows\ 7.vmdk /vmfs/volumes/datastore1/test/test.vmdk
 正在进行
 [root@ESX4:/vmfs/volumes/4de63107-225ccf0c-cef2-002219559a2a/gsis] vmkfstools -i gsis-disk1.vmdk /vmfs/volumes/datastore1
 /gsis-1/gsis-disk2.vmdk
 Destination disk format: VMFS zeroedthick
 Cloning disk ‘gsis-disk1.vmdk’…
 Clone: 38% done. VMFS zeroedthick
 Clone: 74% done.

提示克隆完成,查看test虚拟机目录下vmdk文件;

[root@localhost:~] ls -l /vmfs/volumes/datastore1/test/
 total 31457280
 -rw------- 1 root root 32212254720 May 14 09:02 test-flat.vmdk
 -rw------- 1 root root 521 May 14 09:03 test.vmdk
 -rw-r–r-- 1 root root 0 May 14 08:29 test.vmsd
 -rwxr-xr-x 1 root root 1831 May 14 08:29 test.vmx

下面只要将新虚拟机添加一块虚拟硬盘,将路径指向这个vmdk文件即可。

esxi ssh 删除虚拟机 esxi删除文件命令_ci_05

esxi ssh 删除虚拟机 esxi删除文件命令_esxi ssh 删除虚拟机_06

esxi ssh 删除虚拟机 esxi删除文件命令_ci_07

启动虚拟机,完成克隆。

esxi ssh 删除虚拟机 esxi删除文件命令_Server_08

发现

这次还发现了workstation也能够远程管理ESXi主机或vCenter Server,可以直接将workstation与ESXi中的虚拟机进行相互的上载和下载,不用以前费事的导出ovf再导入了。

esxi ssh 删除虚拟机 esxi删除文件命令_esxi ssh 删除虚拟机_09

esxi ssh 删除虚拟机 esxi删除文件命令_Server_10

还有其他的新发现,新功能,需要近一步研究