7

Slightly related to a previous question about thick vs thin provisioning, why does eager zeroing the to-be-cloned VM take longer than lazy zeroing?

For example, in a recent test we ran, an eager-zeroed clone took ~85 minutes to complete, whereas changing to lazy zeroing made it complete in ~50 minutes.

How much overhead is incurred when eager zeroing vs lazy?

When would 'eager' be the right mode to use?

3
  • Is this on a shared volume of some sort? Like a LUN on a SAN? – Basil Aug 30 '12 at 15:17
  • @Basil - it's on a Lab SAN, why do you ask? – warren Aug 30 '12 at 15:21
  • Zeroing can sometimes be recognized by the SAN and offloaded to it, depending on the model. – Basil Aug 30 '12 at 16:40
9

Eager Zeroing writes 0s to all empty blocks. This slightly increases performance later on when those blocks need to be written to for the first time.

Lazy Zeroing does nothing to the unallocated blocks. If you have an 80GB VMDK and only 10GB worth of data, only 10GB worth of blocks are used and the rest is left as-is until needed. If this example were eager zeroed, at the time of creation all 80GB would be written to, with zeroes filling the remaining 70GB.

If you're using thin provisioning at the storage level, you want to avoid eager zeros, as that will completely defeat the purpose of thin provisioning.

When would 'eager' be the right mode to use?

Eager is the right mode to use when you're not thin provisioning LUNs and you don't mind waiting a bit longer for the VMDK to be created.

8
  • 1
    I always eager zero where possible to avoid the .vmdk's being fragmented, and to be confident I won't run out of space on the host if the drives in the vm's are filled. – Robin Gill Aug 30 '12 at 14:55
  • 1
    How would writing 0s to a volume increase its performance...? – Basil Aug 30 '12 at 15:15
  • @RobinGill - how can you run out of space in a thick-provisioned drive? – warren Aug 30 '12 at 15:21
  • 1
    @ warren - oops got mixed up (I'm still getting to grips with ESXi). – Robin Gill Aug 30 '12 at 15:44
  • 1
    So it's not like another file system that can simply write over the garbage data in uninitialized sectors? – Basil Aug 30 '12 at 16:39
0

Im rephrasing and reducing this to be a bit to be less confusing:

When would 'eager' be the right mode to use?

When you are Using Deduplication, Compression, or Thin Luns, on your SAN underlying the VMFS Store, instead of or in addition to, using Thin Provisioned VMs.

Usually you would only use this when reclaiming all of the free space in a vmfs volume by creating an extra Disk deployed this way.

Eager Zero is used for zeroing the space used by the VMDK on the VMFS store, and isn't really useful on a deployment of a new VM.

The classic example on why else you might use it was always pretty extreme/niche, and even more so today.

That is:

To pre-zero the sectors that will be written to by the VM, so that when the VM is running, it reduces VCPU load and disk write latency when writing 0s to the disk.

However this benefit is only while the VM writes to unused sections of disk, and so applications that were write-once read many would see the largest benefit.

3
  • This adds nothing to the accepted answer – warren Feb 19 '19 at 17:19
  • Well I could see how it was a bit confusing, I cleaned up the answer a bit to make it more clear as to what scenarios would be when the option should be used. :) – Ben Personick Feb 19 '19 at 20:14
  • @warren Well I could see how it was a bit confusing, I cleaned up the answer a bit to make it more clear as to what scenarios would be when the option should be used. :) – Ben Personick Feb 20 '19 at 0:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.