2019独角兽企业重金招聘Python工程师标准>>>
esxi使用命令行克隆vmdk文件
前言
最近VMware发布了vsphere6.7,找个机会测试下。自己笔记本的workstation内存太小,只能搞个esxi先试试,等有机会用家里的台式机测试下vCenter Server和VCSA。(因为现在这两个东西安装都要检测内存,达不到要求装不了。。最小内存10GB! 我吃柠檬!!)安装esxi这个就不要说了吧,网上大把傻瓜教程,装好后忽然发现esxi主机没有虚拟机克隆功能。。。可能是原来一直都使用VC,从来没有关注过这个。好吧,既然界面没有,那么就使用命令吧。
vmkfstools介绍
vmkfstools工具esxi主机自带的一个操作vmdk文件和vmfs文件系统的工具,类似于KVM中的qemu-img工具。我们可以通过它来创建、修改、克隆、删除vmdk文件等一系列操作。具体的使用方法参加vmkfstools -H
:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
[root @localhost:~] vmkfstools -H
OPTIONS FOR FILE SYSTEMS:
vmkfstools -C --createfs [vmfs5|vmfs6|vfat]
-S --setfsname fsName
-Y --unmapGranularity #[bBsSkKmMgGtT]
-O --unmapPriority
-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:
|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
|
这里只需要我们只需要使用到vmkfstools -i
注:-d选项不是必须选项,如果不配置,则克隆出来的vmdk文件与原文件格式一样。
克隆操作
首先创建一个新虚拟机,创建步骤省略,但是这里需要注意的是,创建虚拟机时,不要创建虚拟硬盘,可以在自定义设置中将硬盘删除;
创建完成的虚拟机没有配置虚拟硬盘;
开启主机的SSH服务(默认关闭);
SSH登录后,查看需要克隆的现有虚拟机虚拟硬盘;
1
2
3
4
5
6
7
8
9
|
[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虚拟机目录;
1
2
3
4
5
|
[root@localhost:~] vmkfstools -i /vmfs/volumes/datastore1/Windows\ 7/Windows\ 7.vmdk /vmfs/volumes/data
store1/test/test.vmdk
Destination disk format: VMFS zeroedthick
Cloning disk '/vmfs/volumes/datastore1/Windows 7/Windows 7.vmdk'...
Clone: 100% done.
|
提示克隆完成,查看test虚拟机目录下vmdk文件;
1
2
3
4
5
6
|
[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再导入了。