I’ve just posted about the SCSI support that enables VAAI features over on my storage blog. Writing that post got me thinking about the wider aspects of VAAI or at least the reasons for why VAAI is needed. This in turn spawned a few random thoughts I feel like sharing.
- VAAI is for SCSI. The current implementation supports SCSI, presumably with NFS support “any day now”. The good thing about the way the VAAI APIs have been implemented is that they use a standard, well known protocol and the accompanying standards organisation in order to ensure correct adoption. But what about for NFS? Is there a standards body? What API communication method will VMware use to talk to the storage device? Who will support NFS out of the box? I suspect the answer to the last question will be Netapp, Netapp and perhaps, Netapp. I’d be worried that this means a proprietary interface will therefore be developed.
- Will VAAI work cross-platform? The Block Copy feature of VAAI is touted as a way to clone VM guests and that’s a useful feature. But, that’s not a task you’re likely to perform many times during the day. What’s more likely is that VAAI will enable improved storage vMotion performance by offloading the bulk data movement to the array. All the examples I’ve seen talk about moving data in-array; that is between LUNs on the same storage device. Big deal. With a well laid out storage array, I shouldn’t need to do that. I’m much more interested in moving data between arrays. How will that work with VAAI? SPC-4 of the SCSI standard enables EXTENDED COPY to copy between SCSI devices, but which vendors will bother to support it? After all, who wants to let their customers more easily move off their storage? Possibly more interesting is how they will support it. EXTENDED COPY between different vendors effectively creates a cross-vendor replication offering that doesn’t just have to be used for VMware. This opens up the possibility of using the same SCSI commands for doing multi-vendor data replication of traditional LUNs.
- Will VAAI work cross-protocol? Here’s an extension to the last train of thought; will VAAI work between NFS and VMFS disk formats? At the moment I doubt it as block and file are like chalk and cheese. There would need to be another layer of format conversion that understood both protocols to make this feature work.
I know VMware/EMC have openly discussed that the current VAAI implementation is only version 1 and we can expect new features coming up. I’d like to know if they address any of the above….