iT邦幫忙

DAY 20
7

VMware vSphere Hypervisor (ESXi) 30天基礎速成班系列 第 21

(VMesxi 備份篇-Day20) VMware vSphere(ESXi) 虛擬硬碟工具-vmkfstools(上)

由於在發怖文章的部份 還是有限制程式碼
所以就將此篇文章分為上中下三部份
(VMesxi 備份篇-Day20) VMware vSphere(ESXi) 虛擬硬碟工具 - vmkfstools(中)
(VMesxi 備份篇-Day20) VMware vSphere(ESXi) 虛擬硬碟工具 - vmkfstools(下)

什麼是 vmkfstools ?
vmkfstools 在VMware vSphere(ESXi) Server 中是一個很好用的文件系統管理工具。可用來創建虛擬硬碟、轉換虛擬硬碟格式。或是針對file systems (VMFS)、logical volumes、和 physical storage devices來作相關的操作。只要和VMDK檔案有關的都能處理。

目錄 : (一般比較常用到的設定)
參數說明
虛擬機設定檔說明
實作範例

  1. 虛擬硬碟格式轉換
    (1) Thick 轉換成 Thin
    (2) Thin 轉換成 Thick Provision Eager Zeroed (eager zeroed thick) 初始化歸零
    (3) Thin 轉換成Thick Provision Lazy Zeroed (zeroed thick) 不會初始化歸零
  2. 清除虛擬硬碟所有數據
  3. 增加虛擬硬跌(vmdk)大小
  4. 創建一個虛擬硬碟
  5. 刪儲虛擬硬跌(vmdk)
  6. 虛擬硬碟重新命名
  7. 查詢虛擬硬碟的訊息 (柱面、磁頭和扇區)

上一篇 (VMesxi 備份篇-Day19) VMware vSphere(ESXi) 虛擬硬碟格式介紹
下一篇 (VMesxi 備份篇-Day21) VMware ESXi 備份 ghettoVCB.sh 基本設定
VMware vSphere Hypervisor (ESXi) 30天基礎速成班(文章彙整)
文章同步 FAQ BOOK
參數說明
以下針對幾個比較常用到的參數來說明一下

~ # vmkfstools
OPTIONS FOR FILE SYSTEMS:

vmkfstools -C --createfs [vmfs3|vmfs5]
               -b --blocksize #[mMkK]  
               (設定文件大小,預設的為1MB,可設定的為1MB、2MB、4MB和8MB)
               -S --setfsname fsName  
               (設定VMFS的標簽,此選項只能和-C一起使用,標簽最大為128字元,頭尾不能有空格)
           -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|
                                 lsisas|pvscsi]
           -w --writezeros   (虛擬硬碟歸0,會將原硬碟內資料清除)
           -j --inflatedisk  (使thin disk增加到最大值 轉換為會初始化歸零的Thick 虛擬硬碟.原來的資料會受到保護)
           -k --eagerzero  (轉換為不會初始化歸零的Thick虛擬硬碟)
           -K --punchzero  
           -U --deletevirtualdisk  (刪除指定的虛擬硬碟或相關文件)
           -E --renamevirtualdisk srcDisk  (重新命名虛擬硬碟)
           -i --clonevirtualdisk srcDisk  (建立或複製虛擬硬碟)
               -d --diskformat [zeroedthick|
                    硬碟格式    thin|
                                eagerzeroedthick|
                                rdm:<device>|rdmp:<device>|
                                2gbsparse]
           -X --extendvirtualdisk #[gGmMkK]  (擴展虛擬硬碟VMFS的大小)
               [-d --diskformat eagerzeroedthick]
           -M --migratevirtualdisk  (搬移虛擬硬碟 可從ESXI5之前的版本轉換過來)
           -r --createrdm /vmfs/devices/disks/...  (創建RDM)
           -q --queryrdm  (查詢RDM 可列出相關資訊)
           -z --createrdmpassthru /vmfs/devices/disks/...  (在VMFS文件系統上影射一個passthrougn raw 硬碟到一個文件.這允許虛擬機器跳過VMKernel SCSI命令過濾沒用的VMFS虛擬硬碟)
           -v --verbose #
           -g --geometry  (獲取虛擬硬碟相關資料)
           -x --fix [check|repair]
           -e --chainConsistent
   vmfsPath

OPTIONS FOR DEVICES:

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

vmkfstools -H --help

實作範例
在開始操作設定之前,要先記得把 VMware vSphere(ESXi) Server 的 SSH 開啟。並且關閉要設定的 VM 虛擬機。

虛擬機設定檔說明
1. VM 虛擬機存放路徑
虛擬機的設定檔,基本上都是存放在datastore1,在這裡面就會看到所有安裝的虛擬機。每個資料夾就是一台虛擬機。

~ # cd /vmfs/volumes/datastore1/
~ # ls
VM1          proftpd2     windows2008
Linux        proftpd      windows 8

2. 設定檔說明
這次要設定的是VM1這台虛擬機,所以就進入VM1的資料夾來查看設定。
在這邊看到 vmdk 會有兩隻檔案,xxx-flat.vmdk和xxx.vmdk。整個虛擬機也就是主要靠這兩隻檔案在設定

~ # cd /vmfs/volumes/datastore1/VM1
~ # du -sh *
5.0G    VM1-flat.vmdk
1.0M    VM1.nvram
0       VM1.vmdk
0       VM1.vmsd
8.0K    VM1.vmx
0       VM1.vmxf
1.0M    vmware.log

3. xxx.vmdk和xxx-flat.vmdk
xxx.vmdk主要是放一些設定檔,所以整個檔案不會太大。至於實際數據都是放xxx-flat.vmdk。而在 vmkfstools 操作時也都是使用xxx.vmdk這隻檔案。

~ # cd /vmfs/volumes/datastore1/VM1
~ # vi /vmfs/volumes/datastore1/VM1/VM1.vmdk
# Disk DescriptorFile
version=1
encoding="UTF-8"
CID=7ed94c44
parentCID=ffffffff
isNativeSnapshot="no"
createType="vmfs"

# Extent description
RW 10485760 VMFS "VM1-flat.vmdk"

# The Disk Data Base
#DDB

ddb.adapterType = "lsilogic"
ddb.geometry.sectors = "63"
ddb.geometry.heads = "255"
ddb.geometry.cylinders = "652"
ddb.uuid = "60 00 C2 9b 78 99 92 1b-47 9d 4f 86 2e 59 c7 6c"
ddb.longContentID = "c7dda467f1eba072d4457dc77ed94c44"
ddb.virtualHWVersion = "8"

虛擬硬碟格式轉換
Thick 轉換成 Thin

  1. 指令說明

    ~ # vmkfstools -i [來源vmdk檔案] -d [檔案格式] [目的vmdk檔案]

    -i : 建立或複製虛擬硬碟
    [來源vmdk檔案] : 要轉換的vmdk檔案存放路徑,如 /vmfs/volumes/datastore1/VM1/VM1.vmdk
    -d [檔案格式] : -d 後面接要轉換的硬碟格式,如thin 或thick
    [目的vmdk檔案] : 轉換完成後vmdk要存放的路徑。如 /vmfs/volumes/datastore1/VM1/VM1-thin.vmdk

  2. 設定開始
    2.1 由硬碟格式 Thick 轉換為 Thin

    ~ # vmkfstools -i /vmfs/volumes/datastore1/VM1/VM1.vmdk -d thin /vmfs/volumes/datastore1/VM1/VM1-thin.vmdk
    Destination disk format: VMFS thin-provisioned
    Cloning disk '/vmfs/volumes/datastore1/VM1/VM1.vmdk'...
    Clone: 100% done.

2.2 轉換完成後會看到,兩個新產生的xxx.vmdk和xxx-flat.vmdk
VM1-thin-flat.vmdk 和 VM1-thin.vmdk 就是新產生的檔,而原本的檔案部份還是存在的。
仔細查看會發現 VM1-flat.vmdk 和 VM1-thin-flat.vmdk 的大小不同了。因為在 VM1-flat.vmdk 使用的是 Thick (固定大小) 的硬碟格式,而 VM1-thin-flat.vmdk 已經變成 Thin (動態大小)的硬碟格式

~ # cd /vmfs/volumes/datastore1/VM1
~ #  du -sh *
5.0G    VM1-flat.vmdk
1.6G    VM1-thin-flat.vmdk
0       VM1-thin.vmdk
1.0M    VM1.nvram
0       VM1.vmdk
0       VM1.vmsd
8.0K    VM1.vmx
0       VM1.vmxf
1.0M    vmware.log
  1. 修改檔名
    由於原本虛擬機設定就是抓取 VM1.vmdk 和 VM1-flat.vmdk 這兩個檔案,因此要修改一下檔名。
    3.1 修改原本 Thick 格式的 VM1.vmdk 和 VM1-flat.vmdk 檔案名稱

    ~ # mv /vmfs/volumes/datastore1/VM1/VM1.vmdk /vmfs/volumes/datastore1/VM1/VM1-thick.vmdk
    ~ # mv /vmfs/volumes/datastore1/VM1/VM1-flat.vmdk /vmfs/volumes/datastore1/VM1/VM1-thick-flat.vmdk

3.2 再來修改轉換後 Thin格式的 VM1-thin-flat.vmdk 和 VM1-thin.vmdk 檔案名稱

~ # mv /vmfs/volumes/datastore1/VM1/VM1-thin.vmdk /vmfs/volumes/datastore1/VM1/VM1.vmdk
~ # mv /vmfs/volumes/datastore1/VM1/VM1-thin-flat.vmdk /vmfs/volumes/datastore1/VM1/VM1-flat.vmdk
  1. 修改設定檔
    編輯 VM1.vmdk ,確定是使用 VM1-flat.vmdk 為硬碟
    請將 Extent description 的設定修改為對應的檔案名稱

    ~ # vi /vmfs/volumes/datastore1/VM1/VM1-thin.vmdk

    修改前

    Extent description

    RW 10485760 VMFS "VM1-thin-flat.vmdk"

    修改後

    Extent description

    RW 10485760 VMFS "VM1-flat.vmdk"

最後在開啟虛擬機測試,看是否有問題。沒問題的話就可自行決定是否還要保留舊的檔案

上一篇 (VMesxi 備份篇-Day19) VMware vSphere(ESXi) 虛擬硬碟格式介紹
下一篇 (VMesxi 備份篇-Day21) VMware ESXi 備份 ghettoVCB.sh 基本設定
VMware vSphere Hypervisor (ESXi) 30天基礎速成班(文章彙整)


http://blog.faq-book.com/


上一篇
(VMesxi 備份篇-Day19) VMware vSphere(ESXi) 虛擬硬碟格式介紹
下一篇
(VMesxi 備份篇-Day20) VMware vSphere(ESXi) 虛擬硬碟工具-vmkfstools(中)
系列文
VMware vSphere Hypervisor (ESXi) 30天基礎速成班39
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
鐵殼心
iT邦高手 1 級 ‧ 2012-10-16 09:56:10

一次有三張沙發可以坐耶開心
沙發

willion0736 iT邦研究生 3 級 ‧ 2012-10-16 10:03:26 檢舉

哈哈
不知道是不是我發文的操作錯誤
只要文章內容有程式碼的部份過多
就會出現同樣內容或是亂數
所以只好拆成三篇.....哭

0
Ken(Bigcandy)
iT邦大師 1 級 ‧ 2012-11-26 14:59:08

熱情觀眾+1

謝謝啦

0
shinyyork
iT邦新手 4 級 ‧ 2018-10-18 14:37:30

4
修改設定檔
編輯 VM1.vmdk ,確定是使用 VM1-flat.vmdk 為硬碟
請將 Extent description 的設定修改為對應的檔案名稱

~ # vi /vmfs/volumes/datastore1/VM1/VM1-thin.vmdk

上面 " ~# ...... " 應該是
~ # vi /vmfs/volumes/datastore1/VM1/VM1.vmdk

對吧!?因為在步驟3.2 已改檔名!

我要留言

立即登入留言