前言
最近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文件与原文件格式一样。
克隆操作
首先创建一个新虚拟机,创建步骤省略,但是这里需要注意的是,创建虚拟机时,不要创建虚拟硬盘,可以在自定义设置中将硬盘删除;
注意:上图的SCSI控制器(Lsi Logic SAS)一般安装vmware ESXI 默认的选项就可以了,不要刻意的选择其他的,除非克隆后的系统再启动过程种有蓝屏或者不能正常启动的情况,再尝试选择其他方式,esxi6.7默认如下模式:
创建完成的虚拟机没有配置虚拟硬盘;
开启主机的SSH服务(默认关闭);
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文件即可。
启动虚拟机,完成克隆。
发现
这次还发现了workstation也能够远程管理ESXi主机或vCenter Server,可以直接将workstation与ESXi中的虚拟机进行相互的上载和下载,不用以前费事的导出ovf再导入了。
还有其他的新发现,新功能,需要近一步研究