找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 1003|回复: 1

[NAS/Server] VMware ESXI 虚拟磁盘工具 - vmkfstools 使用实例

[复制链接]
发表于 2013-10-16 15:28 | 显示全部楼层 |阅读模式
在介绍 vmkfstools 如何使用之前,需要先了解下 vmware 虚拟磁盘的类型:

一 虚拟磁盘类型
  • 使用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<source-disk-name.vmdk>-d {thin|thick}<destination-disk-name.vmdk>
  • 参数解释:
  • -i <source-disk-name.vmdk>参数:原vmdk磁盘名
  • -d {thin|thick}<destination-disk-name.vmdk> :目标磁盘的格式,thin或thick; <destination-disk-name.vmdk>为要生成的目标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:<device>|rdmp:<device>|
  •                                 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/...

参考
http://vaemon.com/article/910.html
http://hi.baidu.com/googleu/blog ... 2b8ae61a4cffc1.html

http://dngood.blog.51cto.com/446195/785770

回复

使用道具 举报

发表于 2013-10-19 17:14 | 显示全部楼层
what
                        comment_from_sina_user:wingpan007
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

QQ|Archiver|手机版|小黑屋|吹友吧 ( 京ICP备05078561号 )

GMT+8, 2024-12-28 16:23 , Processed in 0.279126 second(s), 15 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表