An interesting piece, “Increasing Storage vMotion Performance with Unified VMFS Block Size” by Chris Wahl, illustrates why having a unified block size on VMFS volumes is important for Storage vMotion performance. One of the statements in his blog struck me as needing some additional comments.
“With VMFS5 there is no longer a choice in block size. All newly created VMFS5 datastores are formatted with a 1 MB block size. I’m quite happy this was done, as I really saw no solid advantage to having a choice and it often confused many administrators (myself included!).”
The primary reason for the variable block size in VMFS3 was to overcome the design limitations for virtual disk size imposed by the smaller block sizes. When an administrator chose a small block size in VMFS3, they were limited to smaller virtual disk sizes. With a 1MB block size, administrators were limited to a 256GB virtual disk. With an 8MB block size, administrators were able to get to a 2TB virtual disk. However, the limitation went further and administrators were also limited to a 2TB datastore. This forced the use of extents if expansion was needed and extents allowed spanned VMFS datastores.
At the time, this was a good workaround for the limitations in the VMFS file system. There was very little downside to using the larger block size when creating and using thick provisioned virtual disks. However, with the adoption of thin provisioned disks, there were issues with performance (initial writes were most impacted) and wasted space, defeating the purpose of thin provisioning with the larger block sizes.
The solution was VMFS5. There were major changes to the base VMFS file system including a new allocation type was added that allowed for the creation of large files. Administrators are able to create large virtual disks using the smaller block size to keep the performance benefits. In VMFS 5.5 the max virtual disk size is 62TB. VMFS 5.5 also allowed for the creation of up to 64TB datastores without requiring extents.
So what, right? How does this help me in my day-to-day virtual environment management? Well, like Chris points out, the choice was not only confusing, but also had an impact on performance and scaling the environment. Looking at this from a file system perspective, having a unified block size at the base-level of the VMFS file system, allows administrators to create large virtual disks, maintain performance, control wasted space, and avoid snapshot/backup issues.