The multilayer storage
Virtualization increases the complexity in troubleshooting storage performance. Just like memory, where we have more than one level, we have three levels for storage. At the highest level we have VMs. A VM typically has two to three virtual disks (or RDMs), such as OS drive, paging file drive, and data drive. A large database VM will have even more. We are interested in data both at the VM level and individual virtual disk level. If you are running a VM with a large data drive (for example, a Oracle database), the performance of the data drive is what the VM owner cares about the most. At the VM level, you get the average of all drives, so the performance issue can be masked. Below the VM level we have the datastore. Multiple VMs share a datastore, so it is common to have an I/O blender effect, where sequential writes on individual vmdk files become random writes at the datastore level. This can occur in either VMFS or NFS. The datastore is normally backed one to one...