I saw a tweet today (shown below) that reminded me of 27th August, 2012. This was the day that VMware published this article, which demonstrates how VMware vSphere (5.1 at that point) could achieve 1 million IOPS in a single VM. Things have undoubtedly gotten better in vSphere 5.5, and even more so with vSphere 6.0, which was recently released. Even though the test setup at the time (3 years ago) required two dedicated all flash arrays for this one VM, it demonstrated clearly that the hypervisor is not a bottleneck to storage. It also clearly demonstrated that even using VMFS and going through multiple layers to the storage and back, isn’t a bottleneck to high performance. vSphere itself adds so little overhead that it’s a great platform for running any workload. This is important, because 3 years on from this test we have all sorts of things running on top of vSphere in the ever increasing capabilities of the platform. Even high performance storage controllers and not just the variety in the hyper-converged platforms, but also in mainline storage vendor arrays. But this article is more about demonstrating that vSphere is a great place to run databases, and I’ve used some results that I produced in my spare time last weekend.
Here is the tweet from Duncan Epping, Office of the CTO at VMware. It shows the path an IO operation might take through a virtual storage appliance. The appliance being just another form of high performance virtual machine, which as we’ve already covered, is quite at home running on VMware vSphere.
a wise man once said… pic.twitter.com/tMTdGLnTdc
— Duncan Epping (@DuncanYB) March 27, 2015
For my test environment I had a SQL Server 2012 template configured with 2 vCPU’s and 32GB RAM and a few hundred GB of disk (4 VMDK’s, OS, Data, TempDB, TLog). I decided to use the freely available Dell DVDStore to generate a workload on the databases, which simulates an online DVD stores transactions and is an OLTP type workload. One of the developers of the Dell DVDStore Benchmark is Todd Muirhead from the VMware Performance Engineering Team, and I recommend you review his work, especially on databases such as SQL Server and Oracle. Dell DVDStore can be used to test many different types of databases and works with Windows and Linux. Although this is a benchmark and the results aren’t necessarily real word, the goal was the demonstrate the scalability aspects of vSphere as a hypervisor.
In this case it was also running on a Nutanix NX3450 Platform (which is what I have available as I work for Nutanix), but the same would be true on any suitable enterprise hardware that is supported on the VMware HCL. This platform includes 4 vSphere 5.5 U2 Hosts (Nodes), each with 256GB RAM, 2 x Intel E5-2650 CPU’s, 2 x 400GB SSD’s and 4 x 1TB HDD’s. This system was 80+% full at the time, and I was using inline compression on all of the datastores as I was running short on space. Compression ratio at the time on my SQL Server Datastore was 2:1 (saving approx 60%), but values vary widely based on workload. Here is an image of the datastore containing my SQL DB’s, this is from the Nutanix PRISM UI.
I used the 100GB Dell DVDStore Database Size, and tested the scale up performance of a single VM and also the scale out performance of multiple VM’s. I was time limited, so there are many more combinations and configurations that could have been tested, but I thought these were good enough. For each test all VM’s used in the test were provisioned fresh from template and upon the test completing they were deleted. Each time fresh VM’s were created so that a previous test didn’t impact the results of the next test. This also allowed the use of VAAI-NAS, which is another great feature of VMware vSphere.
All output is measured in terms of Orders Per Minute, how many online DVD Orders, based on the DVDStore workload, are completed per minute.
Firstly lets look at the results of a single VM per Host (4 VM’s Total).
From the graph you can see that in order to achieve more orders per minute you can add vCPU’s to the VM and it scales almost completely linearly.
Let’s look at the test with multiple VM’s per host. In this case from 1 to 4 VM’s per host, each VM configured with 2 vCPU.
From this graph you can see that when you add VM’s you get almost the same performance as if you scaled up a single VM. This shows the efficiency of the VMware vSphere scheduler to give fair access to resources to multiple VM’s.
You can see from the above that VMware vSphere is a great place to run enterprise database applications. In this case the tests were done on a Nutanix platform, and that means there was a virtual storage controller running on each vSphere Host. The Controller VM, which creates a distributed file system, during the testing was using up to 4 vCPU’s (although configured with 8) and was configured with 32GB RAM. The Controller VM uses VMDirectPathIO to bypass the normal hypervisor IO path and directly access the physical storage controller and disks, and uses the native storage controller drivers. The resources assigned to the Controller VM were not being wasted, they were being used to produce the performance required to service the SQL Database VM’s, and were also being used to save 60% of the storage capacity by using inline compression (cluster was 80+% full, so I needed to use compression to save space). All from a single 2U appliance that included all of the highly available and high performance storage, CPU and RAM, required to run VMware vSphere and execute the tests. Only other components that were needed were a couple of standard 10G Ethernet switches. All in all, not bad. VMware customers can have confidence that they can run demanding enterprise databases on their virtualized platforms, so long as the underlying hardware is sufficient to meet their requirements. The hypervisor is not the bottleneck.
This post first appeared on the Long White Virtual Clouds blog at longwhiteclouds.com. By Michael Webster +. Copyright © 2012 – 2015 – IT Solutions 2000 Ltd and Michael Webster +. All rights reserved. Not to be reproduced for commercial purposes without written permission.