天天看點

VMware ESXI 虛拟磁盤工具 - vmkfstools

一 虛拟磁盤類型

使用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 * 

7.9G    converter-two_new-flat.vmdk 

64.0k   converter-two_new.vmdk 

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_old.vmdk 

64.0k   vmware-10.log 

64.0k   vmware-11.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 開啟虛拟機,驗證虛拟磁盤大小 

Disk /dev/sda: 42.9 GB, 42949672960 bytes 

255 heads, 63 sectors/track, 5221 cylinders 

三 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 

                                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] 

OPTIONS FOR DEVICES:  

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

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

本文轉自問道部落格51CTO部落格,原文連結http://blog.51cto.com/450236/1901977如需轉載請自行聯系原作者

crackernet