Many people recommend block-level cloning over file-level cloning - besides various reasons - mainly because of its superior speed advantage. And true: Data transfer rates are about 50-75% percent faster using block-level cloning from my observations. But after some testing I figured out that it is still slow as hell because there is one big fat difference that heavily falls into account: The amount of data copied...
While file-level cloning only copies the occupied space (which is usually a fraction of the complete disk in our setups), block-level cloning copies every and each sector - may it be empty or not. This also defeats the purpose of thin disk provisioning as the resulting disk image does not seem to be sparse but instead eagerly filled with zeros where the original disk image had empty space.
So my questions are: How do you skip empty space during block-level cloning? And how do you make the converter not write empty space into the thin provisioned disk?
The cloning operation was P2V, with the source being Windows Server 2003 Web Edition and the destination being ESXi 4.
PS: The question is not about why the performance drawbacks are (this is a question of metadata vs payload, eg cloning many small files should usually still benefit from block-level cloning).
With ESXi 4.0 patched to a current version and using the most current Convert Standalone 4.0.1 this seems to be fixed for block-level disk cloning. Only occupied disk blocks are copied and a destination thin-provisioned disk only is as big as the actual occupied space.