FusionIO has been so kind to let us use one of their demo Flash cards. It’s a 3.2TB(!) ioScale which should work briliantly when combined with PernixData FVP.
I installed the card in a HP DL360G7 we have in our demo lab. After obtaining the right software getting the card to work in an ESXi server was pretty easy.
Currently we run a series of PernixData FVP demo’s in our lab and the card arrived just on time to use it in our first public PernixData FVP Demo session. Since then I’ve done some more testing and I’m impressed with the performance! In fact this thing is so fast I cannot test its full potential. I’ll explain why in a minute.
The ITQ Lab
First let’s dive into our test setup. We have three DL3x0G6/G7 servers running ESXi 5.1. Those three are the “resource cluster”. Then there is a DL380G6 acting as the management host. This host also runs a Nexenta virtual storage appliance backed by 8x 300GB disks in RAID10. Connectivity is provided by Xsigo VP760 (Now Oracle) so all servers are interconnected over infiniband.
All hosts in the resource cluster are running the PernixData FVP Release Candidate software.
Before we look at the performance gains the ioScale brings us when used as a FVP flash cache device, let me tell you the performance we get out of the nexenta virtual appliance without any help: 1300 IOPS when running iometer with these setttings: 100% random, 20% write, 4k blocks, 4k alignment.
PernixData FVP Configuration
I created a new flash cluster in FVP with only this FusionIO flash device in it. This means that VMs using this flash cluster will only be accelerated when running on the host which has the FusionIO device installed. This won’t be very practical in a production environment but it works perfectly fine for the test.
Now, lets fire up a few machines that are accelerated by PernixData FVP and using the ioScale as the cache device and do some testing.
This is a screenshot of two tests in a row. Both tests are performed using iometer and using the FusionIO card as a flash cache for PernixData FVP. The first test (first peak in the graph) uses the following specs: 4K blocks, 4K alignment, 100% random, 20% write.
The second test (second peak in graph) uses almost the same settings except now we only do reads, no writes.
As you can see in the graph the first test did close to 50000 IOPS. The second test did close to 60000 IOPS. Pretty impressive considering the backing storage only did 1300 IOPS max! This shows what a great job PernixData FVP does accelerating the virtual machines. But the number of IOPS is not the whole story. During this test IOmeter only showed 500us response time! Compared to up to 200000us without acceleration! Btw: response time = latency + processing time. Which means the latency is well below 250us
But this device should be capable of doing a lot more. So what’s holding it back? Take a look at the screenshot below. It shows the CPU activity on the host during different tests. The highlighted purple line shows the total CPU load on the physical machine.
So after solving the storage bottleneck, now we have a CPU bottleneck.
Still… could be worse.