With vSphere 5.0, VMware also introduced a new version of its vSphere Virtual Machine File System, known as VMFS-5. For a complete list of the new features, see the “What’s New in VMware vSphere 5.0 – Storage” whitepaper. Since vSphere 5.5, the maximum supported VMDK size on a VMFS-5 datastore has been increased from 2 TB to 62 TB. More information on this in KB 2058287 “Support for virtual machine disks larger than 2 TB in VMware ESXi 5.5”.
Although vSphere 5.x fully supports predecessor VMFS-3, it’s also possible to upgrade an existing VMFS-3 to VMFS-5. See also this whitepaper “VMware vSphere VMFS-5 Upgrade Considerations”
But beware; an upgraded VMFS-5 does not support all of the new features. Most noticeable are:
- An upgrade VMFS-5 continues to use the previous file-block size, which may be larger than the unified 1MB file-block size. This can lead to stranded/unused disk space when there are lots of small files on the datastore. It is also stated that this can affect the performance of subsequent Storage vMotions.
- An upgraded VMFS-5 datastore doesn’t have new features like; the new Sub-Block Size, Increased maximum number of files per datastore, no GPT.
- Also, VMFS-5 upgraded from VMFS-3 continues to have its partition starting on sector 128. Newly created VMFS-5 partitions will have their partition starting at sector 2048.
So, by deploying newly created VMFS-5 and upgraded VMFS-5 datastores, chances are that inconsistencies across your datastores are introduced.
So instead of upgrading existing datastores, another approach is rebuilding datastores (fresh formatted VMFS-5) and relocating your VM’s. Of course this takes some planning and you will need a spare LUN.
One question remains, how to recognize a new or an upgraded VMFS-5 datastore? OK, you can have a look in the vSphere Client or Web Client. If the Block Size is not 1 MB, it is an upgraded one. But now the block Size is 1 MB, can you be sure it is a newly created one?
The vmkfstools as installed on ESXi 5.x can help you. The Max number of Sub Blocks provide the answer we’re looking for.
N.B. The vmkfstools as installed on the vSphere Management Assistant 5.1 (vMA) is a different version and does not reveal the information we need.
I have created a sample script (check_vmfs.sh) that connects to an ESXi hosts and makes an inventory of the available file systems.
How it works:
- Download the script check_vmfs.sh.doc and rename to check_vmfs.sh, without the .doc extension (WordPress.com does not like .txt or .sh files).
- Copy and paste the script in the vMA. It should also be possible to run the script directly on an ESXi host, but the vMA is designed for this job.
- Enable the SSH daemon on the ESXi host of your choice (Configuration \ Software \ Security profile \ Services \ SSH and let it run).
- SSH provides a nice option to run a script on a remote host. So start the script with the following syntax:
> ssh root@<ESXi host management> ‘ash -s’ < ./check_vmfs.sh
> ssh firstname.lastname@example.org ‘ash -s’ < ./check_vmfs.sh
- When asked, provide the password.
- After a few moments, you will receive an output like the example below. In the output; the identification of the Datastore, the type and version of the file system and the number of Sub Blocks. If Sub Blocks = 3968 then it’s an upgraded VMFS-5.
The script can be adapted to write output to a text file etc.
I have run this script on ESXi 5.1 and 5.5 hosts with a variety of Datastores with different block sizes and volume sizes, ranging from 40 to 400 GB.
At this time, I prefer the vCSA as my vCenter Server of choice. If you’re interested in this subject and PowerShell, read this post by Christopher Kusek.
As always, I thank you for reading and I welcome your comments.