VMware vSphere(ESXi) 虛擬硬碟格式介紹

由 Derek 發表於 十月 15, 2012 / 2 則評論

前言 :

在VMware 虛擬硬碟格式的部份,由於儲存格式的不同,用法也不盡相同,近而也會影響到虛擬硬碟在使用上的速度和效能。因此就來簡單說明每種格式的差別,也方便日後設定時能選取較為適合的格式。

 

虛擬硬碟格式介紹 :

首先就來先介紹在設定 VM 虛擬機時最常用到的三種虛擬硬碟格式

Thick Provision Lazy Zeroed

Thick Provision Eager Zeroed

Thin Provision

 

Thick Provision Lazy Zeroed (zeroedthick)

在建立虛擬硬碟時會一次給足全部的硬碟大小,並產生一個vmdk檔,而vmdk的大小等於創建的虛擬硬碟大小。然後這虛擬硬碟在一開始會先將所需要使用到的部份先行初始化(zero)。至於其他空閒沒使用到的部份,則是等到有需要使用的時後再初始化(zero),不過由於一開始就扣除10G所以在沒使用到的部份也就算在整體硬碟大小裡。因此整顆虛擬硬碟是固定大小,不會變動的。

 

在之後若有資料要做寫入的動作時,凡是第一次寫入到空閒空間時都必須要zero。此類型的硬碟空間在第一次的硬碟寫入時會有輕微的I/O性能的損失。

 

舉例 :

假設實體硬碟為500GB,建立一個400GB的Thick Provision Lazy Zeroed 虛擬硬碟,此時會產生一個400GB的vmdk檔,然後在這400GB的虛擬硬碟中一開始只使用100GB,所以在這使用的100GB會先行初始化(zero),而剩下的300GB會等到有需要使用的時後再初始化(zero)。不過整顆虛擬硬碟的大小還是為400GB。

 

若登入[VMware vSphere Client]查看,會發現只剩下Size的部份。而PeovisionedSize的部份是不在的。這是因為使用Thick disk的關係

 

 

Thick Provision Eager Zeroed (eagerzeroedthick)

在建立虛擬硬碟時會一次給足全部的硬碟大小,並且會刪除所有的資料,產生一個vmdk檔,而vmdk的大小等於創建的虛擬硬碟大小。在創建硬碟時,會將所有的數據都初始化(zero),所以會花費較多的時間。也正因為都已經初始化完成了,所以當要使用的時後就不需要再初始化。而不論是第一次寫入數據或是整體的性能和效能上都會比較好一些。

 

舉例:

假設實體硬碟為500GB,建立一個400GB的Thick Provision Eager Zeroed 虛擬硬碟,此時會產生一個400GB的vmdk檔,然後在這400GB的虛擬硬碟中一開始就會把400GB先行初始化,等到下次要使用時就可直接使用,不過整顆虛擬硬碟的大小還是為400GB。

 

若登入[VMware vSphere Client]查看,會發現只剩下Size的部份。而PeovisionedSize的部份是不在的。這是因為使用Thick disk的關係

 

Thin Provision

隨著使用量而增加硬碟大小,達到上限時就不會在增加了。而產生的vmdk會隨著使用的情況增加並一邊初始化(zero),一邊使用新空間。所以vmdk的大小不等於創建虛擬硬碟的大小,只會等於實際使用的大小。

簡單來說,就是依照使用的大小來給硬碟的空間。但不會超過最大值。

 

缺點: Thin disk隨著使用的增加,在效能上會比較差一點點。

 

舉例 :

假設實體硬碟為500GB,建立一個400GB的Thin Provision虛擬硬碟,在安裝完成後使用了100GB,因此vmdk就會等於100GB。而整個虛擬硬碟的大小就會是100GB,此時會有人問說,那剩下的300GB呢? 剩下的300GB就會留在實體硬碟內,等有使用到再逐漸增加。直到400GB空間都用滿後就不會在增加了。

 

若要查看目前使用的大小可以登入[VMware vSphere Client]查看。

[Configuration] → [Storage] → [datastore1點右鍵] → [Browse Datastore]

在Size的部份就是當前所使用到的大小,PeovisionedSize為該虛擬機能使用的最大值。

 

 

接下來就用一個比較簡單的例子來說明Thin disk 和Thick disk的vmdk關係

假設新增一個虛擬機,在虛擬硬碟的部份設定為400G。其中100G已經使用,而剩下的300G則屬於未使用空間。

Thin Provision 格式vmdk大小為100G,剩下未使用的300G等有需要時才初使化使用。

Thick Provision Lazy Zeroed 格式vmdk大小為400G,剩下未使用的300G等有需要時才初使化使用。

Thick Provision Eager Zeroed格式vmdk大小為400G,剩下未使用的300G都已初始化可直接使用。

 

 

最後說明一個比較特殊的格式

2GBsparse(特殊格式)

2GBsparse 為特殊格式,可將硬碟分割成多個 2G 的硬碟。每個分割出來的硬碟空間最大為 2G 。 VMware Workstation 和 VMware Server 可以使用這種格式,不過除非第一次輸入 thick 或 thin disk 格式,否則不能在 ESX 或 ESXi 主機上用此種格式啟動虛擬機。這種格式有時用於將較大的 VMware ESXi 虛擬硬碟分解成較小的虛擬硬碟,方便於復製到其他 ESXi 主機或其他地方,因此這樣的虛擬硬碟能搬移到任何地方。

 

例如,有一虛擬機硬碟空間有 30G,使用了 2GBsparse 此特殊格式後,可分割為15個 2G 大小的硬碟空間。

 

 

  

關於作者

一個半路殺出來的傻小子,憑著一股傻勁努力的學習、嘗試、分享。希望能用自己微薄之力,替IT界和資訊界盡一點心力。單憑一己之力始終還是有限,歡迎和我有相同理念的夥伴一同加入一同努力。

評論

  1. KRIS KOU 說: 2015/06/22

    感謝你

  2. wangshiok 說: 2014/09/26

    不错,写得不错,很清楚

發表評論至 wangshiok

*