Virtual Server Bottlenecks
by Hu Yoshida on Feb 12, 2013
In my last blog, I talked about the impact of virtual servers on storage systems and the need for a scale up storage architecture to satisfy the demand for storage resources as we add more and more virtual images onto a physical server. There is also a need to look at the server bottlenecks.
Server virtualization with multicore technology is changing the server landscape and is transforming the x86 platform into a mainframe- type platform. Those of us who have worked with mainframe storage can appreciate the challenges that this poses.
While virtualization makes it easy to share physical resources across multiple server images, there is contention for these resources that needs to be managed. In mainframes we do this with logical partitioning or LPARs. In Unix we do this with containers or zones; however, x86 blade servers from most vendors do not support this capability. Hitachi blade servers were originally designed for mainframes before they were converted to the x86 platform, so they provide LPAR capability. I believe they are the only x86 servers that have this capability.
Another challenge for virtual servers is the limited availability of physical memory. In mainframe we solved this with swap files, swapping out the contents of memory for a virtual machine so that another virtual machine could use that memory space. This activity increases and becomes a bottleneck as we add more server images. There are several ways to address this with x86 blade servers. You can add external storage or you can attach internal storage through a PCIe slot, if that is available. Swapping will impact performance, so the preference would be to use flash connected through a PCIe interface. Hitachi blade servers have two PCIe slots on each blade. If these slots are not available on your blade server than you could use Hitachi storage like VSP with a flash acceleration code and our Hitachi Accelerated Flash (HAF) storage module with our purpose built flash controller.
When you use flash for swapping, you need to have consistent performance. Unfortunately SSDs (solid state disks) have several problems that impact performance. One is the “write cliff” where I/O is blocked while house keeping occurs in order to format the pages. Another is the need to refresh pages after so many reads or after some time passes. Although flash is non-volatile, in reality, the electrons are continuously leaking especially when a charge is applied to do a read.
The durability of flash is much lower than HDDs, (104 versus 1015 writes) so you will need to replace SSDs much more frequently.
The controller in the HAF modules eliminates the “write cliff” by doing the housekeeping outside of the I/O path. A larger ECC is used to reduce the need to refresh pages. The durability of the HAF modules is increased by reducing the number of write/formats through the use of buffers, read/modify/write, zero compaction, wear leveling, and over provisioning spares.
The use of Hitachi blade servers with logical partitioning and the use of HAF with VSP flash acceleration could improve the performance of your virtual servers if resource contention is a problem.