歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> VMware ESXI 虛擬磁盤工具 - vmkfstools 使用

VMware ESXI 虛擬磁盤工具 - vmkfstools 使用

日期:2017/2/28 14:37:18   编辑:Linux教程

一 虛擬磁盤類型

1.厚置備延遲置零 (zeroed thick)//默認選項

創建過程中為虛擬磁盤分配所需空間。創建時不會擦除物理設備上保留的任何數據,但是以後從虛擬機首次執行寫操作時會按需要將其置零

2.厚置備置零 (eager zeroed thick)

創建支持群集功能的厚磁盤。在創建時為虛擬磁盤分配所需的空間。創建中會將物理設備上保留數據置零。創建所需的時間可能會比創建其他類型的磁盤長。

3.精簡置備 (thin)

使用該磁盤最初所需要的數據存儲空間。如果以後精簡磁盤需要更多空間,則它可以增長到為其分配的最大容量。

二 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

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

1.3 轉換過程中需要用到的文件是vmdk磁盤文件,vmdk有兩種,一種是“虛擬機名.vmdk”,vmdk文件很小,存放了虛擬磁盤的一些配置信息(如虛擬磁盤數據文件等);另一種是“虛擬機名-flat.vmdk”,實際數據都存放在flat.vmdk文件中,轉換時需要使用vmdk文件而不是flat.vmdk文件。

1.4 開始轉換過程

A:使用vmkfstools將厚模式的vmdk文件克隆為精簡的vmdk磁盤文件,轉換後將生成兩個新的vmdk和flat.vmdk文件

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

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

20.0G converter-two-flat.vmdk

64.0k converter-two.vmdk

64.0k converter-two.vmx

64.0k converter-two.vmxf

7.9G converter-two_new-flat.vmdk

64.0k converter-two_new.vmdk

B:將原來的厚模式磁盤文件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

C:將新生成的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

D:編輯 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"

E:啟動虛擬機檢查是否工作正常,對比精簡置備與厚置備大小

/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

1.5其它方式

  1. 精簡置備轉換至厚置備置零:

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

  1. 厚置備延遲置零轉換至厚置備置零:

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 調整虛擬磁盤大小

/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

vmkfstools -C --createfs vmfs3

-b --blocksize #[mMkK]

-S --setfsname fsName

-Z --spanfs span-partition

-G --growfs grown-partition

Copyright © Linux教程網 All Rights Reserved