在讨论开始之前,如果是经常光临本站的老朋友会记得我之前写过一篇《Vmware Esxi 磁盘类型应用与详解》的同类文章,但是今天在香港矽谷看到讲述虚拟硬盘格式的文章讲的更胜一筹,更容易理解。借此转载分享。
前言 :
在VMware 虚拟硬盘格式的部份,由于储存格式的不同,用法也不尽相同,近而也会影响到虚拟硬盘在使用上的速度和效能。因此就来简单说明每种格式的差别,也方便日后设定时能选取较为适合的格式。
虚拟硬盘格式介绍 :
首先就来先介绍在设定 VM 虚拟机时最常用到的三种虚拟硬盘格式
Thick Provision Lazy Zeroed
Thick Provision Eager Zeroed
Thin Provision
(转)VMware <wbr>vSphere(ESXi) <wbr>虚拟硬盘三种格式介绍
Thick Provision Lazy Zeroed (zeroed thick)
在建立虚拟硬盘时会一次给足全部的硬盘大小,并产生一个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的关系
(转)VMware <wbr>vSphere(ESXi) <wbr>虚拟硬盘三种格式介绍
Thick Provision Eager Zeroed (eager zeroed thick)
在建立虚拟硬盘时会一次给足全部的硬盘大小,并且会删除所有的资料,产生一个vmdk档,而vmdk的大小等于创建的虚拟硬盘大小。在创建硬盘时,会将所有的数据都初始化(zero),所以会花费较多的时间。也正因为都已经初始化完成了,所以当要使用的时后就不需要再初始化。而不论是第一次写入数据或是整体的性能和效能上都会比较好一些。
举例:
假设实体硬盘为500GB,建立一个400GB的Thick Provision Eager Zeroed 虚拟硬盘,此时会产生一个400GB的vmdk档,然后在这400GB的虚拟硬盘中一开始就会把400GB先行初始化,等到下次要使用时就可直接使用,不过整颗虚拟硬盘的大小还是为400GB。
若登入[VMware vSphere Client]查看,会发现只剩下Size的部份。而PeovisionedSize的部份是不在的。这是因为使用Thick disk的关系
(转)VMware <wbr>vSphere(ESXi) <wbr>虚拟硬盘三种格式介绍
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为该虚拟机能使用的最大值。
(转)VMware <wbr>vSphere(ESXi) <wbr>虚拟硬盘三种格式介绍
接下来就用一个比较简单的例子来说明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都已初始化可直接使用。