The reason for zeroing is a security one. VMware wants to assure that a guest OS does not read stale data that might be left on a device from a previous VM or external host, so before any reads or writes to a new sector of the virtual disk the ESXi kernel first writes zeroes (or uses WRITE SAME) then reads or writes the data.  There is more information on using different types of virtual disks with VMAX virtual provisioning in this one paper I wrote and maintain:  [URL]
Hi,  I am looking a bit into thin, thick (eager and lazy) and trying to understand how VAAI benefits it. Today someone explained to me that regardless of thin or thick, before writing to a block, it has to be zeroed. That means that for example, when using thin, first VMAX allocates the space, then zeroes it, and finally it writes the data. Is this true? If so, why does it do that? Should not it be more efficient just allocating and writing? Eventually it is the same output if it was zeroed or not, the new data will remove what was before (zeroes or anything else). What is the purpose of the zeroing?  Thanks
thin and zeroing