VMware ESXI 虚拟磁盘工具 - vmkfstools 2019-10-14 虚拟化 暂无评论 3669 次阅读 一 虚拟磁盘类型 使用vSphere Client创建新的虚拟机在选择虚拟磁盘类型时,将会出现以下三个选项: 厚置备延迟置零 (zeroed thick) //默认选项 厚置备置零 (eager zeroed thick) 精简置备 (thin) 厚置备延迟置零:以默认的厚格式创建虚拟磁盘。创建过程中为虚拟磁盘分配所需空间。创建时不会擦除物理设备上保留的任何数据,但是以后从虚拟机首次执行写操作时会按需要将其置零。 厚置备置零:创建支持群集功能(如 Fault Tolerance)的厚磁盘。在创建时为虚拟磁盘分配所需的空间。与平面格式相反,在创建过程中会将物理设备上保留的数据置零。创建这种格式的磁盘所需的时间可能会比创建其他类型的磁盘长。 精简置备:使用精简置备格式。最初,精简置备的磁盘只使用该磁盘最初所需要的数据存储空间。如果以后精简磁盘需要更多空间,则它可以增长到为其分配的最大容量。 二 vmkfstools 操作实例 注意事项: 操作前请先关闭虚拟机 操作前需要打开ESXI ssh 服务,并需要登陆到ESXI 用户名:root 密码:使用vSphere Client登录ESX/ESXi的密码 1 虚拟磁盘类型转换,thick to thin vmkfstools 命令格式 `# vmkfstools -i-d {thin|thick}` 参数解释: `-i `参数:原vmdk磁盘名 `-d {thin|thick}` :目标磁盘的格式,thin或thick; ``为要生成的目标vmdk磁盘名; 1.1 进入虚拟机所在的datastore目录,每个目录为一个虚拟机 ``` ~ # cd /vmfs/volumes/datastore1 /vmfs/volumes/4f3cedd3-1b48e924-3d7d-0022195a4404 # ls cobbler-5.85 converter-two-57.72 datanode2-57.78 converter-four-57.74 converter-win-xp ovf-cos-5.7 ``` 1.2 此次转换的虚拟机为converter-two-57.72,进入该虚拟机目录 ``` /vmfs/volumes/4f3cedd3-1b48e924-3d7d-0022195a4404 # cd converter-two-57.72/ /vmfs/volumes/4f3cedd3-1b48e924-3d7d-0022195a4404/converter-two-57.72 # du -sh * 20.0G converter-two-flat.vmdk 64.0k converter-two.nvram 64.0k converter-two.vmdk 0 converter-two.vmsd 64.0k converter-two.vmx 64.0k converter-two.vmxf 64.0k vmware-4.log 1.0M vmware-5.log 1.0M vmware-6.log 1.0M vmware-7.log 1.0M vmware-8.log 64.0k vmware-9.log 64.0k vmware.log ``` 1.3 需要注意:转换过程中需要用到的文件是vmdk磁盘文件,vmdk有两种,一种是“虚拟机名.vmdk”,另一种是“虚拟机名-flat.vmdk”,vmdk文件很小,存放了虚拟磁盘的一些配置信息(如虚拟磁盘数据文件等),实际数据都存放在flat.vmdk文件中,转换时需要使用vmdk文件而不是flat.vmdk文件 1.4 开始转换 1.4.1 使用vmkfstools将厚模式的vmdk文件克隆为精简的vmdk磁盘文件,转换磁盘完成后将生成两个新的vmdk和flat.vmdk文件 ``` /vmfs/..../converter-two-57.72 # vmkfstools -i converter-two.vmdk -d thin converter-two_new.vmdk Destination disk format: VMFS thin-provisioned Cloning disk 'converter-two.vmdk'... Clone: 100% done. ``` ``` /vmfs/..../converter-two-57.72 # du -sh * 20.0G converter-two-flat.vmdk 64.0k converter-two.nvram 64.0k converter-two.vmdk 0 converter-two.vmsd 64.0k converter-two.vmx 64.0k converter-two.vmxf 7.9G converter-two_new-flat.vmdk 64.0k converter-two_new.vmdk 64.0k vmware-4.log 1.0M vmware-5.log 1.0M vmware-6.log 1.0M vmware-7.log 1.0M vmware-8.log 64.0k vmware-9.log 64.0k vmware.log ``` 1.4.2 将原来的厚模式磁盘文件vmdk和flat.vmdk文件备份 ``` /vmfs/..../converter-two-57.72 # mv converter-two.vmdk converter-two_old.vmdk /vmfs/..../converter-two-57.72 # mv converter-two-flat.vmdk converter-two-flat_old.vmdk ``` 1.4.3 将新生成的vmdk和flat.vmdk磁盘文件分别重命名为原有磁盘名称 ``` /vmfs/..../converter-two-57.72 # mv converter-two_new.vmdk converter-two.vmdk /vmfs/..../converter-two-57.72 # mv converter-two_new-flat.vmdk converter-two-flat.vmdk ``` 1.4.4 编辑 vmdk 文件,确保` # Extent description "converter-two-flat.vmdk" `为原有磁盘名称 ``` /vmfs/..../converter-two-57.72 # cat converter-two.vmdk # Disk DescriptorFile version=1 encoding="UTF-8" CID=9cad19cd parentCID=ffffffff isNativeSnapshot="no" createType="vmfs" # Extent description RW 41932416 VMFS "converter-two_new-flat.vmdk" # The Disk Data Base #DDB ddb.deletable = "true" ddb.toolsVersion = "0" ddb.geometry.biosHeads = "255" ddb.geometry.biosSectors = "63" ddb.geometry.biosCylinders = "2610" ddb.virtualHWVersion = "7" ddb.longContentID = "364b422b2ceb3f6f0a4e88d09cad19cd" ddb.uuid = "60 00 C2 94 89 93 59 2c-d9 22 d3 e4 e6 b3 a4 22" ddb.geometry.cylinders = "2610" ddb.geometry.heads = "255" ddb.geometry.sectors = "63" ddb.thinProvisioned = "1" ddb.adapterType = "lsilogic" ``` 1.4.5 启动虚拟机检查是否工作正常,对比精简置备与厚置备大小 ``` /vmfs/..../converter-two-57.72 # du -sh *500.0M converter-two-326dc793.vswp 7.9G converter-two-flat.vmdk 20.0G converter-two-flat_old.vmdk 64.0k converter-two.nvram 64.0k converter-two.vmdk 0 converter-two.vmsd 64.0k converter-two.vmx 64.0k converter-two.vmxf 64.0k converter-two_old.vmdk 64.0k vmware-10.log 64.0k vmware-11.log 1.0M vmware-6.log 1.0M vmware-7.log 1.0M vmware-8.log 64.0k vmware-9.log 64.0k vmware.log ``` 1.5 其它方式 精简置备转换至厚置备置零: `vmkfstools --inflatedisk /vmfs/volumes/DatastoreName/VMName/VMName.vmdk` 厚置备延迟置零转换至厚置备置零: `vmkfstools --eagerzero /vmfs/volumes/DatastoreName/VMName/VMName.vmdk` 2 更改虚拟磁盘(vmdk)大小 要特別注意的是,如果此虚拟机已有快照,请先删除所有快照在执行以下操作,否则这个VMDK将出错,內部的资料丢失!!!! 2.1 vmkfstools 命令格式 `vmkfstools -X [新的大小] [目的vmdk文件]` 2.2 当前虚拟机虚拟磁盘大小 ``` [root@bz-cl2 ~]# fdisk -l /dev/sda Disk /dev/sda: 21.4 GB, 21469396992 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes ``` 2.3 关闭虚拟机,登陆ESXI 调整虚拟磁盘大小 `/vmfs/..../converter-two-57.72 # vmkfstools -X 40g converter-two.vmdk` 2.4 开启虚拟机,验证虚拟磁盘大小 ``` [root@bz-cl2 ~]# fdisk -l /dev/sda Disk /dev/sda: 42.9 GB, 42949672960 bytes 255 heads, 63 sectors/track, 5221 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes ``` 三 vmkfstools 命令参数 ``` /bin # vmkfstools No valid command specified OPTIONS FOR FILE SYSTEMS: vmkfstools -C --createfs vmfs3 -b --blocksize #[mMkK] -S --setfsname fsName -Z --spanfs span-partition -G --growfs grown-partition deviceName -P --queryfs -h --humanreadable -T --upgradevmfs vmfsPath OPTIONS FOR VIRTUAL DISKS: vmkfstools -c --createvirtualdisk #[gGmMkK] -d --diskformat [zeroedthick|thin|eagerzeroedthick] -a --adaptertype [buslogic|lsilogic|ide] -w --writezeros -j --inflatedisk -k --eagerzero -K --punchzero -U --deletevirtualdisk -E --renamevirtualdisk srcDisk -i --clonevirtualdisk srcDisk -d --diskformat [zeroedthick|thin|eagerzeroedthick| rdm:|rdmp:| 2gbsparse] -X --extendvirtualdisk #[gGmMkK] [-d --diskformat eagerzeroedthick] -r --createrdm /vmfs/devices/disks/... -q --queryrdm -z --createrdmpassthru /vmfs/devices/disks/... -v --verbose # -g --geometry -x --fix [check|repair] vmfsPath OPTIONS FOR DEVICES: -L --lock [reserve|release|lunreset|targetreset|busreset|readkeys|readresv] /vmfs/devices/disks/... -B --breaklock /vmfs/devices/disks/... ``` 转自https://blog.51cto.com/450236/1901977 标签: vmware, 磁盘, esxi 本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。