VMFS-5: Block Size Me

The up and coming release of VMware vSphere 5 comes with an upgraded versjon of the VMware vStorage VMFS volume file system. One of the problems with VMFS-3 an earlier is that the block size you define when you format the datastore, determines the maximum size of the VMDK files stored on it. This means that when planning your datastore infrastructure you must have an idea on how large your VMDK files will potentially be during the lifecycle of the datastore.

For VMFS-2 and VMFS-3 the block sizes  and their impact on VMDK files looks as follows:

Block Size
Largest virtual disk on VMFS-2
Largest virtual disk on VMFS-3
2TB minus 512B
Invalid block size
Invalid block size
Invalid block size

In other words, if you format your datastore with a 1MB block size, with VMFS-3, you are limited to a maximum VMDK file size of 256GB. Of course, you can work around this by adding more VMDK files to your VM, and then extending the disks inside the installed OS in the VM, but over time that might get a bit messy. The only way to change the block size, is to migrate all the VMs stored on that particular datastore to a different one, and reformat your original datastore with a new block size. For environments with limited storage space, this can be a real headache.

Thankfully VMware has made this a thing of the past in VMware vSphere 5, and VMFS-5. VMFS-5 has a  new unified block size of 1MB, and which no longer limits you to 256GB VMDK files.  In fact, the block size no longer really matters, as the limits are removed completely.

The table for vSphere 5 and VMFS-5 looks a bit simpler:

Block Size
Largest virtual disk on VMFS-5
2TB minus 512B

Upgrading from VMFS-3 to VMFS-5 is an online & non-disruptive upgrade operation, meaning your can do it while your VMs are running on the datastore.

Thankfully you can also extend VMDK files, to the new limits, on an upgraded VMFS-3 datastore, given that it has been upgraded to VMFS-5.

Note: Remember to update all your hosts to vSphere 5 before upgrading your datastores, since vSphere 4 (and earlier) can’t read the new VMFS-5 filesystem.

This is great news for vAdmins, since we no longer have to worry about the block size as a limiting factor for our VMs. Simplification is always welcome!

Of course, there are other improvements in VMFS-5 as well, but we’ll save those for a later post or two.


  1. Hey Christian,

    One thing to make not of though. Even though you can upgrade your VMFS3 datastores to VMFS5 it will retain the existing blocksize of the VMFS3 datastore. This becomes a problem if you want to do Storage vMotions across datastores with different block sizes as you’ll see a performance hit. Also this really becomes a problem if you mix datastores with different block sizes inside of a Storage DRS Cluster. Just something to keep in mind. It might be a good idea once the upgrade of VMFS3 to VMFS5 is complete to create a new VMFS5 datastore and migrate all your VMs off of the upgraded VMFS datastore. Thanks for the great article!!

  2. Hi
    please advise how to change datastore block size, i need it urgently to vmotion a VM with large unused space to a another datastore with different block size.

    1. In newer ESXi environments there is no block size difference anymore. In older environments you need to reformat in order to change the block size.

      In your case I guess the problem is empty space in the VM, not the vmfs block size. Just vmotion it to another datastore, and change it from full to thin as part of the process. If that’s not the case, you need to check out how to unmap inside the VM’s is to free up the capacity.

Leave a Reply