Sunday, 11 September 2011

VMware, NFS, and Thin Provisioning

*UPDATE: The argument below is now obsolete with the advent of vSphere 5

After an entertaining debate with my colleague Alfredo - which Alfredo won – I have put down a few answers to questions raised by the debate.

1: Are all virtual machines thin provisioned on NFS by default? YES

NFS is a file-level storage system, and not a block-level storage system. When a VMDK is created, or moved to an NFS volume, the size of the VMDK file on the NFS volume is just the size of whatever is inside that VMDK, even if the file was originally thick. NFS does not see blocks, it just sees contents or data.

This is why when creating a new VMDK disk on NFS via the vSphere client, the check boxes to specify 'Disk Provisioning' policy are greyed out with the text underneath “Actual allocation policy will be determined by the NFS server.”


2: Can you create a thick provisioned VMDK on NFS? NO

Again, this comes down to the architecture of NFS being what it is, a file-level storage system, blocks cannot be allocated to make it thick. In theory, if you had a VMDK and completely filled it with data, it might look thick in size, but still not thick provisioned, once data gets removed from inside that VMDK, the file will shrink back down again.

3: Is it VMware Thin Provisioning? NO

VMware has no control over thick or thin provisioning on an NFS datastore.
On a VMFS datastore, thin and thick provisioning is controlled by the VMFS 3 driver, this driver does not apply to NFS.

See:
VMware vStorage Thin Provisioning … virtual machines gain access to a large amount of
storage than actual footprint. It is allocated and expanded on-demand by the VMFS 3 driver when the guest OS requests.”

Under 'Virtual Machine Properties' in the vSphere client, a disk file on NFS will have a provisioning type of 'Thin' – this is not VMware Thin Provisioning, just that it cannot possibly be any other way on NFS (try storage migrating a thick disk from VMFS to NFS, choosing the option to keep it thick – it will become thin!)


4: Is NFS storage thin provisioned? Depends on the storage

At a storage level, depending on storage provider, it is possible to create either a thick-provisioned volume or a thin-provisioned volume, and present that as NFS storage.


Possible exception to questions 1 & 2 above: if you create an NFS datastore on an NTFS (Windows) volume...

4 comments:

  1. One thing. If a VM is copied with other mechanism (touch etc.) into the NFS server it will be displayed as thick when re-registering the VM in vSphere :)

    ReplyDelete
  2. Hi Christian, thank you for the comment. Cheers!

    ReplyDelete
  3. Hello, Thank you for the post. I tested 10 times to do a thick disk this morning into a NFS "datastore".

    ReplyDelete
  4. hey there! Did you fulfill all the settings of your portal on your own or you needed some extra help?

    ReplyDelete