VMware ESXI 虛擬磁碟工具vmkfstools

Michael_DD發表於2014-11-20
VMware ESXI 虛擬磁碟工具vmkfstools


1 虛擬磁碟型別
使用vSphere Client建立新的虛擬機器在選擇虛擬磁碟型別時,將會出現以下三個選項:
 
厚置備延遲置零 (zeroed thick) //預設選項
厚置備置零    (eager zeroed thick)
精簡置備      (thin)
 
厚置備延遲置零:以預設的厚格式建立虛擬磁碟。建立過程中為虛擬磁碟分配所需空間。建立時不會擦除物理裝置上保留的任何資料,
但是以後從虛擬機器首次執行寫操作時會按需要將其置零。
 
厚置備置零:建立支援群集功能(如 Fault Tolerance)的厚磁碟。在建立時為虛擬磁碟分配所需的空間。
與平面格式相反,在建立過程中會將物理裝置上保留的資料置零。建立這種格式的磁碟所需的時間可能會比建立其他型別的磁碟長。
 
精簡置備:使用精簡置備格式。最初,精簡置備的磁碟只使用該磁碟最初所需要的資料儲存空間。如果以後精簡磁碟需要更多空間,
則它可以增長到為其分配的最大容量。
 
2 vmkfstools 操作例項
注意事項:
操作前請先關閉虛擬機器
操作前需要開啟ESXI ssh 服務,並需要登陸到ESXI
使用者名稱:root
密碼:使用vSphere Client登入ESX/ESXi的密碼

2.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/...

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29500582/viewspace-1340135/,如需轉載,請註明出處,否則將追究法律責任。

相關文章