Monday, February 23, 2009

How to change blocksize (file size limit) on VMFS3 filesystem

Under VMware ESX 3.5.x the VMFS3 filesystem has limitations on file size which will result in errors if you try to create a guest virtual machine with a large disk drive, e.g. if you created your VMFS3 filesystem with a 1MB block size and you try to create a guest VM with disk drive size larger than 256 you will get this error :
File is larger than the maximum size supported by datastore.

This happens because by default VMware ESX running VMFS3 uses 1M blocksize with a limitation of 256 GB disk size for the guest virtual machine. However it is possible to change or rather increase the size of disk drive that you can create for the virtual machine. If you can change block size to 2M on VMFS3 filesystem on your ESX server you can create disk drive upto 512GB size for the virtual machine.

The following list indicates the relationship between block sizes and maximum disk drive size for virtual machines :
1M Block Size max VMFS-3 = 256G
2M Block Size max VMFS-3 = 512G
4M Block Size max VMFS-3 = 1024G
8M Block Size max VMFS-3 = 2048G

File sizes larger than 2048 GB are not supported on VMFS3 filesystem. VMFS2 allowed upto 16 M block size but that option is not available on VMFS3 filesystems.

It is possible to change the block size of a VMFS3 filesystem. Use vmkfstools command from the command line to reformat the partition. The vmkfstools command can be run on ESX server:

#vmkfstools –create vmfs3 –blocksize 2M vmhba1:0:0:2

Obviously the previous contents are over-written. This thread on VMware's community pages describes the issue quite well.

So should you opt for a larger block size than 1MB?

Obviously the answer will depend upon your circumstances, but generally I would suggest not. I've only had the issue once. For a single VM. Arguably, that VM could have been re-architected to get around this problem. Probably, should have been! And if I hadn't had the flexibility at the time to make the change to the filesystem, it would have had to have been.

Well that's that.

No comments: