Csuper Blog

Csuper Blog

VMware ESXI 虚拟磁盘工具 - vmkfstools 使用实例
2012-11-01

 

一 虚拟磁盘类型 

  1. 使用vSphere Client创建新的虚拟机在选择虚拟磁盘类型时,将会出现以下三个选项: 

  2.  

  3. 厚置备延迟置零 (zeroed thick)//默认选项

  4. 厚置备置零    (eager zeroed thick) 

  5. 精简置备      (thin) 

  6.  

  7. 厚置备延迟置零:以默认的厚格式创建虚拟磁盘。创建过程中为虚拟磁盘分配所需空间。创建时不会擦除物理设备上保留的任何数据,

  8. 但是以后从虚拟机首次执行写操作时会按需要将其置零。 

  9.  

  10. 厚置备置零:创建支持群集功能(如 Fault Tolerance)的厚磁盘。在创建时为虚拟磁盘分配所需的空间。

  11. 与平面格式相反,在创建过程中会将物理设备上保留的数据置零。创建这种格式的磁盘所需的时间可能会比创建其他类型的磁盘长。 

  12.  

  13. 精简置备:使用精简置备格式。最初,精简置备的磁盘只使用该磁盘最初所需要的数据存储空间。如果以后精简磁盘需要更多空间,

  14. 则它可以增长到为其分配的最大容量。 

 

二 vmkfstools 操作实例

注意事项:
操作前请先关闭虚拟机
操作前需要打开ESXI ssh 服务,并需要登陆到ESXI
用户名:root
密码:使用vSphere Client登录ESX/ESXi的密码

  1. 1 虚拟磁盘类型转换,thick to thin 

  2.  

  3. vmkfstools 命令格式 

  4. # vmkfstools -i<source-disk-name.vmdk>-d {thin|thick}<destination-disk-name.vmdk> 

  5. 参数解释: 

  6. -i <source-disk-name.vmdk>参数:原vmdk磁盘名 

  7. -d {thin|thick}<destination-disk-name.vmdk> :目标磁盘的格式,thin或thick; <destination-disk-name.vmdk>为要生成的目标vmdk磁盘名; 

  8.  

  9. 1.1 进入虚拟机所在的datastore目录,每个目录为一个虚拟机 

  10. ~ # cd /vmfs/volumes/datastore1 

  11. /vmfs/volumes/4f3cedd3-1b48e924-3d7d-0022195a4404 # ls 

  12. cobbler-5.85          converter-two-57.72   datanode2-57.78 

  13. converter-four-57.74  converter-win-xp      ovf-cos-5.7 

  14.  

  15. 1.2 此次转换的虚拟机为converter-two-57.72,进入该虚拟机目录 

  16. /vmfs/volumes/4f3cedd3-1b48e924-3d7d-0022195a4404 # cd converter-two-57.72/ 

  17. /vmfs/volumes/4f3cedd3-1b48e924-3d7d-0022195a4404/converter-two-57.72 # du -sh * 

  18. 20.0G   converter-two-flat.vmdk 

  19. 64.0k   converter-two.nvram 

  20. 64.0k   converter-two.vmdk 

  21. 0   converter-two.vmsd 

  22. 64.0k   converter-two.vmx 

  23. 64.0k   converter-two.vmxf 

  24. 64.0k   vmware-4.log 

  25. 1.0M    vmware-5.log 

  26. 1.0M    vmware-6.log 

  27. 1.0M    vmware-7.log 

  28. 1.0M    vmware-8.log 

  29. 64.0k   vmware-9.log 

  30. 64.0k   vmware.log 

  31.  

  32.  

  33. 1.3 需要注意:转换过程中需要用到的文件是vmdk磁盘文件,vmdk有两种,一种是”虚拟机名.vmdk”,另一种是”虚拟机名-flat.vmdk”,vmdk文件很小,

  34. 存放了虚拟磁盘的一些配置信息(如虚拟磁盘数据文件等),实际数据都存放在flat.vmdk文件中,转换时需要使用vmdk文件而不是flat.vmdk文件 

  35.  

  36. 1.4 开始转换 

  37. 1.4.1 使用vmkfstools将厚模式的vmdk文件克隆为精简的vmdk磁盘文件,转换磁盘完成后将生成两个新的vmdk和flat.vmdk文件 

  38. /vmfs/..../converter-two-57.72 # vmkfstools -i converter-two.vmdk  -d thin converter-two_new.vmdk   

  39. Destination disk format: VMFS thin-provisioned 

  40. Cloning disk 'converter-two.vmdk'... 

  41. Clone: 100% done. 

  42.  

  43. /vmfs/..../converter-two-57.72 # du -sh * 

  44. 20.0G   converter-two-flat.vmdk 

  45. 64.0k   converter-two.nvram 

  46. 64.0k   converter-two.vmdk 

  47. 0   converter-two.vmsd 

  48. 64.0k   converter-two.vmx 

  49. 64.0k   converter-two.vmxf 

  50. 7.9G    converter-two_new-flat.vmdk 

  51. 64.0k   converter-two_new.vmdk 

  52. 64.0k   vmware-4.log 

  53. 1.0M    vmware-5.log 

  54. 1.0M    vmware-6.log 

  55. 1.0M    vmware-7.log 

  56. 1.0M    vmware-8.log 

  57. 64.0k   vmware-9.log 

  58. 64.0k   vmware.log 

  59.  

  60. 1.4.2 将原来的厚模式磁盘文件vmdk和flat.vmdk文件备份 

  61. /vmfs/..../converter-two-57.72 # mv converter-two.vmdk converter-two_old.vmdk  

  62. /vmfs/..../converter-two-57.72 # mv converter-two-flat.vmdk converter-two-flat_old.vmdk  

  63.  

  64. 1.4.3 将新生成的vmdk和flat.vmdk磁盘文件分别重命名为原有磁盘名称 

  65. /vmfs/..../converter-two-57.72 # mv converter-two_new.vmdk converter-two.vmdk      

  66. /vmfs/..../converter-two-57.72 # mv converter-two_new-flat.vmdk converter-two-flat.vmdk 

  67.  

  68. 1.4.4 编辑 vmdk 文件,确保 # Extent description "converter-two-flat.vmdk" 为原有磁盘名称 

  69. /vmfs/..../converter-two-57.72 # cat converter-two.vmdk  

  70. # Disk DescriptorFile 

  71. version=1 

  72. encoding="UTF-8" 

  73. CID=9cad19cd 

  74. parentCID=ffffffff 

  75. isNativeSnapshot="no" 

  76. createType="vmfs" 

  77.  

  78. # Extent description 

  79. RW 41932416 VMFS "converter-two_new-flat.vmdk" 

  80.  

  81. # The Disk Data Base  

  82. #DDB 

  83.  

  84. ddb.deletable = "true" 

  85. ddb.toolsVersion = "0" 

  86. ddb.geometry.biosHeads = "255" 

  87. ddb.geometry.biosSectors = "63" 

  88. ddb.geometry.biosCylinders = "2610" 

  89. ddb.virtualHWVersion = "7" 

  90. ddb.longContentID = "364b422b2ceb3f6f0a4e88d09cad19cd" 

  91. ddb.uuid = "60 00 C2 94 89 93 59 2c-d9 22 d3 e4 e6 b3 a4 22" 

  92. ddb.geometry.cylinders = "2610" 

  93. ddb.geometry.heads = "255" 

  94. ddb.geometry.sectors = "63" 

  95. ddb.thinProvisioned = "1" 

  96. ddb.adapterType = "lsilogic" 

  97.  

  98. 1.4.5 启动虚拟机检查是否工作正常,对比精简置备与厚置备大小 

  99. /vmfs/..../converter-two-57.72 # du -sh *500.0M converter-two-326dc793.vswp 

  100. 7.9G    converter-two-flat.vmdk 

  101. 20.0G   converter-two-flat_old.vmdk 

  102. 64.0k   converter-two.nvram 

  103. 64.0k   converter-two.vmdk 

  104. 0   converter-two.vmsd 

  105. 64.0k   converter-two.vmx 

  106. 64.0k   converter-two.vmxf 

  107. 64.0k   converter-two_old.vmdk 

  108. 64.0k   vmware-10.log 

  109. 64.0k   vmware-11.log 

  110. 1.0M    vmware-6.log 

  111. 1.0M    vmware-7.log 

  112. 1.0M    vmware-8.log 

  113. 64.0k   vmware-9.log 

  114. 64.0k   vmware.log 

  115.  

  116. 1.5 其它方式 

  117. 精简置备转换至厚置备置零: 

  118. vmkfstools --inflatedisk /vmfs/volumes/DatastoreName/VMName/VMName.vmdk 

  119. 厚置备延迟置零转换至厚置备置零: 

  120. vmkfstools --eagerzero /vmfs/volumes/DatastoreName/VMName/VMName.vmdk 

  121.  

  122.  

  123. 2 更改虚拟磁盘(vmdk)大小 

  124. 要特別注意的是,如果此虚拟机已有快照,请先删除所有快照在执行以下操作,否则这个VMDK将出错,內部的资料丢失!!!! 

  125.  

  126. 2.1 vmkfstools 命令格式 

  127. vmkfstools -X [新的大小] [目的vmdk文件] 

  128. 2.2 当前虚拟机虚拟磁盘大小 

  129. [root@bz-cl2 ~]# fdisk -l /dev/sda 

  130.  

  131. Disk /dev/sda: 21.4 GB, 21469396992 bytes 

  132. 255 heads, 63 sectors/track, 2610 cylinders 

  133. Units = cylinders of 16065 * 512 = 8225280 bytes 

  134.  

  135. 2.3 关闭虚拟机,登陆ESXI 调整虚拟磁盘大小 

  136. /vmfs/..../converter-two-57.72 # vmkfstools -X 40g converter-two.vmdk

  137.  

  138. 2.4 开启虚拟机,验证虚拟磁盘大小 

  139. [root@bz-cl2 ~]# fdisk -l /dev/sda 

  140.  

  141. Disk /dev/sda: 42.9 GB, 42949672960 bytes 

  142. 255 heads, 63 sectors/track, 5221 cylinders 

  143. Units = cylinders of 16065 * 512 = 8225280 bytes 

 

三 vmkfstools 命令参数

  1. /bin # vmkfstools  

  2. No valid command specified 

  3.  

  4.  

  5. OPTIONS FOR FILE SYSTEMS:  

  6.  

  7. vmkfstools -C --createfs vmfs3 

  8.                -b --blocksize #[mMkK] 

  9.                -S --setfsname fsName 

  10.            -Z --spanfs span-partition 

  11.            -G --growfs grown-partition 

  12.    deviceName 

  13.  

  14.            -P --queryfs -h --humanreadable 

  15.            -T --upgradevmfs 

  16.    vmfsPath 

  17.  

  18. OPTIONS FOR VIRTUAL DISKS:  

  19.  

  20. vmkfstools -c --createvirtualdisk #[gGmMkK] 

  21.                -d --diskformat [zeroedthick| 

  22.                                 thin| 

  23.                                 eagerzeroedthick] 

  24.                -a --adaptertype [buslogic|lsilogic|ide] 

  25.            -w --writezeros 

  26.            -j --inflatedisk 

  27.            -k --eagerzero 

  28.            -K --punchzero 

  29.            -U --deletevirtualdisk 

  30.            -E --renamevirtualdisk srcDisk 

  31.            -i --clonevirtualdisk srcDisk 

  32.                -d --diskformat [zeroedthick| 

  33.                                 thin| 

  34.                                 eagerzeroedthick| 

  35.                                 rdm:<device>|rdmp:<device>

  36.                                 2gbsparse] 

  37.            -X --extendvirtualdisk #[gGmMkK

  38.                [-d --diskformat eagerzeroedthick] 

  39.            -r --createrdm /vmfs/devices/disks/... 

  40.            -q --queryrdm 

  41.            -z --createrdmpassthru /vmfs/devices/disks/... 

  42.            -v --verbose # 

  43.            -g --geometry 

  44.            -x --fix [check|repair] 

  45.    vmfsPath 

  46.  

  47. OPTIONS FOR DEVICES:  

  48.  

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

  50.            -B --breaklock /vmfs/devices/disks/... 

 

发表评论: