提示

《杉岩两语》:基于分布式存储的VAAI分析与实现

发布于2019-09-10

  • 分布式存储



虚拟机迁移、克隆、备份都是虚拟化平台需要频繁进行的操作,这些操作都涉及了虚拟机文件的数据传输。这一传输的大致过程如下图所示: 


图1 基于主机的数据操作



即首先通过源服务器从存储读取,然后跨网络传输到目标服务器,最后通过目标服务器写回存储。


由于受制于这样的数据操作机制,当超过一定数量的虚拟机同时进行诸如迁移、克隆、备份、zeroing等操作的时候,往往会导致出现网络带宽资源消耗严重、CPU和内存资源被大量占用的问题。


针对上述虚拟机迁移及克隆问题,VMware推出了VAAI (Vstorage APIs for Array Integration也被称为硬件加速或硬件减负API),VAAI的目的是将传统虚拟机文件搬移过程(从主机侧)下沉到共享存储阵列(通过减少冗余的IO路径,使得据移动将消耗更少的CPU资源,更少的storage fabric带宽),这样不仅可以大大减轻主机侧CPU和内存的压力,同时还极大的降低了对网络资源的要求。


VMware VAAI的主要功能包括:


1、Full COPY,针对虚拟机文件复制场景,把数据复制工作下沉(卸载)到共享存储阵列中。


2、BLOCK ZERO,针对创建虚拟磁盘格式化清零场景,避免了大量的写零操作。


3、Hardware-Assisted Locking(ATS),VMFS作为多主机共享的集群文件系统,需要通过加锁来避免冲突。VMware通过ATS锁细化了锁的粒度,提高了VMFS的IO并发能力。


4、Thin Provisioning UNMAP,针对存储精简配置场景进行空间回收以减少存储空间使用。


下面,我们对以上这四项功能做简要叙述:


VMware VAAI Full COPY的主要原理是当VMware需要做虚拟机文件的复制的时候,把指令给存储,让存储在底层完成复制的功能。


图2 VAAI Full COPY示意图


如图2所示,Full COPY复制操作会在下发的SCSI XCOPY 命令中直接携带了待复制数据的源、目的地址,底层存储系统直接基于SCSI XCOPY中的信息进行数据复制,这样避免了在ESXI主机侧进行无效的数据拷贝,减少了IO路径,大大提高了数据复制的效率。


传统方式对虚拟磁盘格式化是通过SCSI WRITE命令来实现,这样VMware就需要通过WRITE命令下发整个虚拟磁盘大小的零数据。


图3 VAAI Block ZERO示意图


如图3所示,支持VMware VAAI Block ZERO特性的存储系统,VMware通过下发一个WRITE SAME的SCSI命令来进行虚拟磁盘格式化,该命令携带待格式化的数据范围和格式化数据模板,这样避免了下发大量置零数据。


VMFS作为一个集群文件系统,在多个虚拟机进行共享访问时,需要通过锁机制来避免写冲突。传统的方式,通过下发SCSI磁盘锁命令,把这个虚拟磁盘(LUN)锁住,这样别的虚拟机就不能写,只能等待,因此会存在并发的瓶颈。


图4 VAAI ATS示意图


如图4所示,VMware ATS在每次一个虚拟机写虚拟磁盘的时候,不是对整个VMFS LUN都加锁,而是只针对写的单个数据块进行加锁。这样大大缩小了锁的粒度,提高了VMFS系统的并发I/O,性能自然也得到了提高。


Thin Provisioning UNMAP 则主要是针对瘦分配的LUN做空间回收,提高存储空间使用效率。一般应用在删除一个虚拟机文件的场合,VMware向存储发送一个UNMAP的SCSI命令,存储就可以释放相应的空间。在vSphere 5.0以前,只能通过写零的方式,由后端的存储看到全零的写操作而回收相应的空间。现在可以通过UNMAP命令直接知会存储回收空间,不用写零了。


基于ServerSAN的分布式存储相比较传统存储阵列,通常会使用较大容量的SSD作为数据缓存,并且服务器的数量也比较多。因此结合ServerSAN的特点来优化VAAI的实现能取得更好的效果。


例如,在支持Full COPY特性时,可以结合存储硬件的配置情况,调整SCSI XCOPY每次拷贝的数据块大,通过配置多路径,让多个服务器并发执行数据拷贝。在执行SCSI XCOPY时,由于磁盘的顺序写性能通常不低于SSD的顺序写,所以可以直接让大块数据透写磁盘,避免占用SSD写缓存。在支持BLOCK ZERO特性时,可以考虑只修改对应元数据,不做具体的写零操作。



图5 SandStone对VAAI的支持情况


杉岩的SandStone统一存储软件能够良好的支持VMware VAAI的多种特性。通过实际测试对比来看,基于VAAI特性的虚拟机克隆速度能提高2倍以上,创建厚置备置零的虚拟机磁盘速度能提高近10倍。


随着VAAI的广泛应用,存储厂商可以通过硬件协使得硬件上更高效完成的虚拟化应用的I/O操作,同时,二者之间的结合也更加紧密。



分享至:

联系

我们

400-838-3331

在线

客服