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

Sort:SDS百问 Release time:2019年12月27日
Share:



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


图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操作,同时,二者之间的结合也更加紧密。



Your privacy is important to us

We use cookies to personalize and enhance your browsing experience on our website. By clicking "Accept all cookies", you agree to the use of cookies. You can read our Cookie Policy for more information.

Phone

Service Hotline

400-838-3331

More contact information

Top

Scan code attention