VMware为客户提供了三种虚拟磁盘格式,分别是精简置备(Thin),后置备立即置零(Eager Zeroed Thick)以及后置备延迟置零(Lazy Zeroed Thick)。
那么这三种虚拟磁盘格式有什么区别呢?我们来看VMware对这三种磁盘格式的定义:
如上所述,三种虚拟磁盘的区别主要就在于是否分配空间以及什么时候分配空间,以及是否写零以及什么时候写零的区别,对于精简置备格式的虚拟磁盘每次在写入数据的时候会有两个额外的动作,分别是分配空间和写零,对于后置备延迟置零格式的虚拟磁盘会有一个额外的动作就是写入数据前会先对对应的区域写零,而对于后置备立即置零格式的虚拟磁盘来说由于在创建的时候就已经做了这些额外的操作,所以在创建完成以后对磁盘的写入不会带来额外的开销。因此对于虚拟机的IO性能来说,后置备立即置零的虚拟磁盘>后置备延迟置零的虚拟磁盘>精简置备的虚拟磁盘。也正是由于这三种磁盘格式的原理不同,在创建虚拟磁盘的时候,创建速度也是不同的,精简置备>后置备延迟置零>后置备立即置零。
根据华为经验和测试结果,不同格式的虚拟磁盘在创建完成后对于新写入的数据性能有一定的差异,但是当所有LBA都被写过一次之后,对于覆盖写的场景,这三种磁盘格式的性能是一致的,基于以上事实,华为对于虚拟磁盘的推荐为:
华为的推荐适用于一般场景,对于具体的客户的需求,客户需要从性能,数据保护,容量以及vsphere的版本等多方面来考虑以及权衡,比如vsphere 6.7版本,VMware新增加了对unmap自动空间回收指定速率功能,但是指定速率这个功能只对精简置备的虚拟磁盘生效,对于后置备立即置零以及后置备延迟置零格式的虚拟磁盘格式都无法生效,从而导致ESXi主机以最大的速率向阵列下发unmap命令,带宽高达数GB每秒,给阵列带来很大的压力,从而影响虚拟机业务。
摘录自:华为OceanStor Dorado 面向VMware场景最佳实践