VMware磁盘的三种置备模式:精简置备,厚置备置零,厚置备延迟置零


在部署虚拟化服务器的过程中,有时候我们可能会遇到这样几种现象:虚拟机置备100G,但是平台上却显示虚拟机使用了500G存储?

平台上看到所有虚拟机加起来才3T,存储上5T的空间却没了,严重的还导致所有虚拟机宕机。

为啥?都是"精简置备"惹得货,不,"精简置备"是个好东西,只是你只看到了他的有点,却忘了它的缺点!

下面来了解一下VMware存储置备的几种方式吧。

在VMware vSphere中,不管是以前的5.1版本,或者是现在的7.0版本,创建虚拟机时,在创建磁盘时,都会让选择磁盘的置备类型,分为:

(1)厚置备延迟置零;
(2)厚置备置零;
(3)Thin Provision(精简置备)。

如下图所示

图片

厚置备和精简置备磁盘对比

图片

这三种类型的磁盘,每一种类型的磁盘创建的方式和磁盘性能都有所不同,具体解释如下。

1、厚置备延迟置零

举例,如下图,本次创建的磁盘为200GB大小,如果选择厚置备延迟置零,VMware会在整个磁盘中划分一个200GB的空间专用于此虚拟机,故会创建一个200GB的vmdk文件,但由于是延迟置零,故假如目前只用到了50G空间,VMware会先zero(置零)这50G空间,后面150G空间会等到用到的时候再zero(置零),这种工作机制会对磁盘性能造成一定的影响。

图片

创建完虚拟机后VMware创建的200GB vmdk文件,如下图

图片

示意图:

图片

2、厚置备置零

举例,如下图,本次创建的磁盘为200GB大小,如果选择厚置备置零,VMware会在整个磁盘中划分一个200GB的空间专用于此虚拟机,故会创建一个200GB的vmdk文件,由于是置零模式,故VMware会将这200GB的空间全部进行zero(置零)工作,故创建磁盘时比其它两种模式花的时间都要长,这种机制的磁盘的性能是最好的,因为这就好像是给虚拟机挂载了一块独立的硬盘,硬盘上的空间也全部属于该虚拟机,且提前也都已经格式化好,后期不管随着数据怎么增长,都可以直接使用这200G的空间,没有zero(置零)的操作了。

图片

图片
示意图:

图片

3、Thin Provision(精简置备)

举例,如下图,本次创建的磁盘为200GB大小,如果选择Thin Provision(精简置备),VMware会在整个磁盘中划分一个200GB的置备空间,但此200GB没有从整个磁盘中真正划出来,它的vmdk文件在虚拟机刚创建时可能为0KB,以后随着虚拟机的使用空间越来越大,再给它划分更多的空间,直至200GB全部给这虚拟机。就好像是给虚拟机挂载了一块空间会不断变化的硬盘,开始很小,后期会根据你的使用情况不断的增长空间。

故选择精简置备时,有个好处是,可以创建更多的虚拟机,如创建10个虚拟机,每个虚拟机创建(置备)了200GB空间,那就是2000GB,但整个磁盘可能只有1000GB,但也能成功创建,因为置备的2000G,VMware没有真正给每个虚拟机200G,而是在以后不断的使用中慢慢增长至200G,所以选择精简模式,很容易出现整个磁盘卷空间爆满的情况,导致虚拟机运行不正常。

图片
图片

示意图:

图片

根据这三种类型的磁盘的了解,磁盘的性能排序应该是:厚置备置零>厚置备延迟置零>Thic Provision(精简置备)。

厚置备置零和厚置备延迟置零对磁盘空间的使用最快,Thic Provision(精简置备)最节省磁盘空间,但也容易出现磁盘“爆仓”的危险。

下面来看看我理解中精简置备是怎么运行的,接入磁盘每个扇区区块是1GB,每次虚拟机写入/删除量也是1GB,我们用10个方格表示存储上10GB空间,一台虚拟机置备空间大小为4GB。

系统可见数据量为4G,实际存储使用量为6G

图片

从上边可见,虚拟机系统内部可见使用数据量为4GB,但是存储上使用量为6GB,这一点是由于精简置备的规则决定的。厚置备是给你画了一个圈,只要在圈里面,怎么玩儿,随你。但是精简置备不可能给你画个圈,那样就没有意义了,所以就是你需要写入数据得时候,就给你找多大数据量得空白扇区,而不会主动去覆盖你已经删除数据得扇区,除非你系统内部发送置零清除已删除数据得扇区或者平台主动去统一回收这些扇区。

VMware这样考虑是有原因的,因为像你电脑硬盘,数据删除了还可以恢复,精简置备也要保留这种特性,所以不会主动去回收这些空间。实际上在vSphere 6.7里面,已经慢慢开始加入了回收的功能,只是回收力度很小,只有在存储空间容量快满时才会触发vSphere去回收空间。

所以,当环境存储充足时,比如桌面虚拟化,我这台存储空间就是为桌面设计的容量,这时候可以采用厚置备延迟至零(厚置备置零模式在配置虚拟机时等待置零操作会很久,如果不是数据保密要求很高等特殊场景,不建议选择这个)。如果存储空间不足,或存储需要超容量分配,可以选择精简置备,以达到节省存储空间的目的,但是记得定期去回收存储空间。并不是所有存储都可以回收空间,只是一部分存储支持。

下面是存储空间回收步骤,献给有需要的人:

1、打开ESXI主机SSH服务,flash客户端在安全配置中,HTML5客户端在服务中;

2、CRT或者PUTTY等工具SSH连接ESXI主机;

3、执行命令"ls -l /vmfs/volumes
"查看所有存储卷,复制需要回收空间存储的UUID;

4、执行命令"esxcli storage vmfs unmap -uUUID号"即回收该存储卷上的可用空间;

5、每台主机上的每个卷均需要执行一次,即所需执行次数=主机数*存储卷数量。每次执行大约在几小时左右,视空间大小决定。