After spending some time with Frank Denneman (Chief Technologist for PernixData) I started thinking about how you could leverage their product FVP to help deliver solid reliable cloud services.
First lets look at what PernixData FVP actually does. The video below describes how FVP works. I am not going into all the details about PernixData FVP that’s Frank’s job.
Sounds pretty cool right. So how does this solution benefit the cloud? Why would I bring this technology into my stack when I am a Service Provider offering IaaS?
One of the big challenges with cloud is storage performance. Most cloud infrastructures offer multi-tenant environments, which means that multiple customers run on the same hardware. They share that hardware, including the storage array. Yes all your workloads are logically isolated, but it is still shared hardware underneath. You are sharing CPU, RAM and importantly Storage.
Now sharing CPU and Memory is not a big deal. Its what Virtualization has been doing for years, and frankly Hypervizors are extremely good at sharing the resources across multiple machines. The concern however is always around storage.
The IOPS challenge
Customers who want to move workloads to the cloud are always concerned about IOPS. I need X IOPS for this application, I need Y IOPS for that application. This is how most storage environments are designed, to be able to sustain and guarantee the IOPS requirements for those applications. The challenge for cloud environments though, is when your building your cloud you don’t know what people are going to be running. Plus if you are building a shared multi-tenant environment, you don’t know what lots of customers are running. Most typical storage environments can operate efficiently running at around 5000 IOPS, and can tolerate bursts upto 30,000 or 40,000 IOPS. (Yes I know environments are regular sized for more than this, but this is an average). However sustained IOPS at 30k or 40k can be a challenge. Its also extremely expensive to build storage environment to sustain high numbers of IOPS.
The Cloud Challenge
Think about workloads like databases, or even Microsoft Exchange. They have high IOPS requirements. Exchange for example loves eating IOPS when your running backups. As a cloud provider how can you design a suitable environment that can tolerate these IOPS requirements but still stay in budget. Remember as a cloud provider you ultimately need to make money off your infrastructure so buying all flash storage arrays is really expensive. You are still limited to the storage infrastructure too, like your fiber channel switches for example. This is all expensive equipment and the more you spend, the less money you make on your environment.
The Solution – PernixData and the Cloud
While listening to Frank talk through what FVP does, the most impressive part that I noticed was how it leverages Flash Devices in the local ESXi hosts. You can use the local flash devices to improve the performance of your reads and writes. How does this work? Frank has written a great article on how FVP works, and I have taken a snippet from his article explaining how Write Back policies work:
Write back policy accelerates both read and write operations. When an application issues a write I/O operation FVP forwards the command to the flash device. The flash devices acknowledges the write to the application first and completes the write operation to the storage system in the background. This results in the application seeing flash-level latencies while FVP deals with latency and throughput performance levels of the storage system.
Source: FrankDenneman.nl – Write-Back and Write-Through Policies in FVP
As you can see in the diagram above, all your writes are written to Flash first, which greatly increases the speed of your writes. The Acknowledgment back to the Hypervizor occurs when the write to flash has completed. Once that write has been acknowledged it is then copied to the Storage Array, which then gives an acknowledgement back to FVP. Pretty awesome right.
It gets better. Lets go back to what I was talking about previously about the Cloud Challenge. Imagine as a Service Provider, all the workloads you have running in your cloud are served by all Flash Devices, but at the cost of putting local flash in your hosts. The IOPS requirements your customers have can be served without concern, its just all flash. Nice yes! Thats not all, the best part is your IOPS load on your existing Storage Arrays levels out. No more spikes, no more intensive IOPS loads on your array.
What about vCloud Director? Does it work?
As we are talking about clouds, and I work for VMware lets consider how we could leverage this product with VMware vCloud Director. Its actually extremely simple.
You can set FVP acceleration on a data store level in vSphere. Simply add that data store to your Provider VDC in vCloud Director. Then once an Org VDC consumer then provisions a Virtual Machine into that Provider VDC a Virtual Machines will land on that Data Store and it will be automatically accelerated. (No clue what I am talking about? Read this article on vCloud Director concepts).
No dont even need to change your vCloud Director design. You can just add these data stores to a Storage DRS cluster you have already provisioned and away it goes accelerating.
I was extremely impressed with the solution from PernixData when it was demonstrated to me. I have seen a few data acceleration technologies out there, but this one truly impressed me.
In my mind there are three major advantages that I can see with FVP
- You don’t even need to use Flash! You can actually use RAM for the data acceleration! Talk about reducing costs.
- You can leverage multiple ESXi hosts for fault tolerance,
- It is a kernel module rather than a virtual appliance
For me this is truly the best data acceleration product on the market today. The benefits and improvements it provides at such a low cost versus the alternative are really impressive.
Thanks for reading.
Disclaimer: This is purely my thoughts on a meeting I had about how PernixData FVP works. It is a theory on how PernixData and the Cloud could be combined. This article in no way implies that VMware vCloud Air will use this architecture at any time.