Fragmentation is not relevant to VMFS performance for the following reasons:
- Fragmentation causes performance degradation when I/O request from application spans multiple blocks and these blocks are discontiguous. The VMFS block size is so large that most of the I/O requests do not straddle block boundaries. Even if blocks are discontiguous, I/O requests execute to locally contiguous regions.
- Virtual Disks are very large files. When a gap occurs, the gap is also large. Performance latency is most acute when the drive head(s) need to perform multiple seeks to assemble a file. In the case of a single (or very few) gap(s) between large sections, the seek time increase is negligible. This is especially true of preallocated (Thick provisioned) disks.
- Disk arrays have huge caches, and most writes are absorbed there. It is very difficult for fragmentation to have a noticeable impact when it comes to SAN devices. Local storage may see more impact from fragmentation as disk caches are much smaller.
- Sequential virtual machine streams become random on disk arrays as it is servicing I/O requests from multiple virtual machines on different hosts. In other words, a virtual machine workload is highly concurrent due to many virtual machines running on the same datastore from the same host or from multiple hosts. Higher performance can be achieved by localizing the global storage working set (or hot blocks) on a given datastore than by co-locating a particular file’s hot and cold blocks.
- Thin provisioning is not adversely affected either. The major growth of a thin provisioned file usually occurs when the operating system is installed into the virtual machine. Post install, the number of changes that require growth of the virtual disk, on average, decreases. This means that the hot blocks for all virtual machines are typically clustered around the same section of the volume.
The other question you might have now, does NTFS fragmentation affect a Windows virtual machine performances within a VMFS datastore? Waiting your thougths…