VAAI consideration with View Composer

In keeping with this year’s theme of View being a big part of my work I spent some time with a customer this week, looking at a view implementation. In emails with the customer an odd thing had come up, the View Composer Replica disks were being provisioned fully allocated, i.e. 30GB rather than the 10GB size of the data inside the VM.

The issue my customer had was that their Master VM (the one that is copied to the replica) was on a VAAI enabled array. The same array holds the SSD backed datastore where the replica’s are held. Since the two datastores both have a block size of 8MB the hardware offload datamover is used. This datamover does not reclaim zeroed blocks in the copy, so the replica is the same size as the master, 30GB. This was not desirable as a lot of expensive SSD was holding empty blocks.

The quick fix was to move the master to a datastore not on the VAAI array, in this case the local datastore in the host. Since this has proved that the datamover was the cause of the issue (and that neither I nor the client was going mad) we will have to reformat one of the datastores with a different block size. This will force the use of the zero reclaiming datamover.

I’d like to stress that VAAI is great for View Composer, hardware offload of locking makes VMFS perform better for the growing delta disks. Do not disable VAAI to resolve this issue. Also VAAI is great for storage copies and clones, but it behaves differently to non-VAAI when it comes to zero reclaim. The solution is to have the Master VMs on datastores with different block size to the datastores that contain replicas.

My customer was using tiered storage, so only one replica per pool. Without tiered storage there is one replica per datastore which makes fully allocated replicas far more painful.

Another side note is that the SSD backed datastore must have enough free space for the full size master VM in order to provision the replica, despite the fact that the replica is smaller than the master. This is because before the clone we don’t know how much space will be saved by thin provisioning the replica.

2 Responses to VAAI consideration with View Composer

The storage is a VMax. Duncan’s post suggests that this is expected behaviour for all VAAI arrays.
I hope to be able to test on another array but don’t have a lot of options with VAAI since I don’t work for a storage vendor.