Fast and mean virtual machines

InovaWave DXtreme's predictive I/O widgets soup up VMs on Windows

One question mark always hanging over virtual servers is I/O performance. Unless the underlying OS and file system are specifically designed to handle a virtualization load, disk I/O can be problematic. With products like VMware ESX 3, the I/O subsystem drivers are tuned to a virtualization load, handling the widely disparate requests faster and more fluidly than the stock subsystem found in Windows Server and most Linux distributions. This isn’t a fault of these operating systems or their file systems, it’s simply a facet of the virtualization picture: A VM load is far different than a standard server load.

I/O performance for virtual machines is where InovaWave is focused. DXtreme is a shim that sits in the Windows I/O subsystem, speeding up I/O requests with intelligent caching and predictive block retrieval. Essentially, DXtreme gives a standard I/O device some logic specific to virtualization loads.

Today DXtreme is limited to 32-bit Windows hosts and virtualization platforms that run on Windows. But although the initial market is small and the product very new, hopefully the coming months and years will bring InovaWave's innovations into the broader market of VMware ESX, Xen, and other Linux-based VM solutions, because if my testing is any indication the company has made significant strides in improving I/O subsystem performance for virtualization workloads.

Virtual servers, real results
I prepared my test bed by building an HP ProLiant DL585 with Windows Server 2003, and installing VMware Server 1.0.2. The ProLiant had four dual-core Opteron 885 CPUs, 16GB of RAM, and the HP SmartArray 5i SCSI RAID controller, driving four local 36GB 15K RPM U320 SCSI drives, and a link to an iSCSI target running on a Network Appliance StoreVault S500. I used VMware due to its prevalence, although InovaWave also promises compatibility with Microsoft Virtual Server and other Windows-based hypervisors.

The VMs under test were running Windows Server 2003 and Fedora Core 5. The fact that InovaWave only supports 32-bit Windows hosts and guests is somewhat troubling, as production virtualization deployments are increasingly likely to be built on 64-bit OSes, and the numbers favor Linux rather than Windows as the host platform of choice. InovaWave’s path to supporting 64-bit host OSes is clear, and they claim to be moving a 64-bit version into the beta stage in May. Linux and Xen support are also on the road map, but functional code isn’t likely this year, which isn’t surprising, because support for Linux means rebuilding DXtreme from scratch. Last but not least, InovaWave says a beta that will support VMware ESX Server 3.0.1 is right around the corner.

I began the testing by running IOMeter on both VMs, measuring file system performance across a range of file sizes, from 4K to 256K, and three I/O conditions: streaming read, streaming write, and random read/write. These numbers were gathered with the guests running on the local RAID5 array, and also on the iSCSI LUN mounted from the StoreVault. In addition to raw I/O testing, I ran the MySQL sql-bench benchmark against MySQL 5.0.27 running on the Fedora Core 5 VM, measuring the time taken to run through the full suite of tests. Following this, I installed DXtreme, and re-ran all the tests. Enabling DXtreme on the VM disks resulted in massive performance gains on several iterations of the raw I/O tests, and it produced a 20 percent speed boost to the database. Color me impressed.

Click for larger view.

The IOMeter results for the Windows guest on local disk showed speed boosts of nearly 5x for 32K streaming reads, nearly 7x for 32K streaming writes, and nearly 25x for 32K random reads/writes. The results for the Linux guest on local disk fell just short of these, and the results for both guests took only a slight dip on the iSCSI LUN. In the MySQL sql-bench test, DXtreme cut the time needed to complete the test suite from 3,281 seconds down to 2,598.

Views and SKUs
I did note, however, that DXtreme doesn’t like volumes added to the system after boot. Thus, iSCSI LUNs mounted after DXtreme is loaded can cause problems. These volumes should be connected at boot and before DXtreme is started.

At several file sizes, the performance gains were not as remarkable, but these are file sizes that don’t generally correspond with a virtualization workload. Any way you look at it, DXtreme produced far better numbers in the synthetic and real-world tests than the raw hardware.

The obvious downside to DXtreme is the limited host platform support. InovaWave plans to release a 64-bit version of DXtreme soon, but again, only on the Windows platform. Because Windows I/O performance under virtualization workloads is generally worse than Linux, the company's initial focus on Windows stands to reason. Of course, this same performance penalty has caused many shops to standardize on Linux hosts for virtualization, and three out of the four leading virtualization platforms are based on Linux, with Microsoft Virtual Server the only dissenter. Linux support will surely broaden the market for DXtreme. Meanwhile, the current product may make it viable for Windows shops to virtualize heavier workloads on the host they know and love. 

InovaWave has broken DXtreme into a few different products: DXtreme Lite, DXtreme Standard, DXtreme Enterprise, and DXtreme Datacenter. Each has a list of dependencies, with DXtreme Lite functioning only on Windows XP Pro hosts with up to 2GB RAM, while DXtreme Standard has an upper limit of two sockets and 4GB of RAM. The Enterprise and Datacenter versions scale up from there, supporting four sockets and 16GB RAM, and eight sockets and 64GB of RAM, respectively.

It’s interesting to note that InovaWave recommends reducing the amount of RAM assigned to each VM, allowing more VMs to be placed on a single host. In most scenarios, this would significantly increase disk I/O and drag down performance, because VMs running low on physical RAM will head straight for swap. With DXtreme speeding up the process, however, the price of swapping memory to disk isn’t as high. The write caching performed by DXtreme is extremely valuable, but make sure that the system is properly shut down in the event of a power outage, or problems can occur.

Click for larger view.

InovaWave has done more with DXtreme than deliver a speed boost for VMware Server on Windows -- it has shown us what file systems of the future will need to do to successfully handle large-scale virtualization deployments. Luckily, we won’t have to wait long for this future to arrive.

InfoWorld Scorecard
Scalability (20.0%)
Compatibility (20.0%)
Setup (10.0%)
Performance (40.0%)
Value (10.0%)
Overall Score (100%)
InovaWave DXtreme for Windows 2.0 9.0 7.0 9.0 10.0 7.0 8.8