I promised myself for a long time to learn more and test about this product. I discovered for the first time FlashSoft during Storage Field Day 3 event in Denver: FlashSoft was acquired by SanDisk on February 2012, and it was honestly a surprise for me to find out the behemoth of Flash memories had also an Enterprise division, comprising solutions like FlashSoft and others. Just like me, probably many of you have always thought about SanDisk only in regards to their portable memories or some USB keys…
During that meeting, I also enjoyed the presentation made by Serge Shats, FlashSoft CTO and now named “Engineering Fellow” inside SanDisk.
After another meeting at VMworld US 2013, and another joyful conversation with Serge, I had finally the opportunity to reconfigure my lab with a couple of Fusion-IO cards, so I decided to learn something more about this solution. This is a first article about FlashSoft, how it works and what features it has. In a second article I will show you the results of some tests I realized.
FlashSoft 3.1 for VMware vSphere
FlashSoft is a server-side caching solution, and is available for physical Windows and Linux servers, and for VMware vSphere. This is a first difference between this software and some competitors specifically designed for VMware hypervisor.
In a ESXi server, FlashSoft can use a fast local device, like a SSD or a Flash card, and make it a cache device for accelerating virtual machines disks stored in a backend storage. It’s a pure software solution, and is completely transparent to virtual machines: the software is installed at the hypervisor’s kernel level, and it does not require any change to the gust operating system or the virtual hardware.
Also, even if SanDisk sells its own flash memories, this software can be used with any flash memory, and not only with their products.
Serge made an awesome presentation at Storage Field Day, going really deep into FlashSoft technology and its usage into VMware. It was nice to see that, even if this software can be compared to other server-side caching solutions, it has its own characteristics.
I’m not able to explain those ideas as good as Serge did, so you should really have a look at the recorded presentation before we move on. In this first video, Serge explains in fine details how FlashSoft caching works:
and in the second one, he describes how it works in a vSphere environment:
Inside vSphere
Thanks to the design choices made by FlashSoft, and the idea to accelerate virtual machines at the VMDK level (or even better, at disk extent), the software supports any kind of storage you are using, being it block (FC, iSCSI, FCoE), NFS, or even local disks inside any given ESXi server. Also, because it works at the VMDK level, you can accelerate only some VMDKs of a single VM, for example only the data disk of a database machine.
Cache is write-through, this means it can accelerate reads, but not writes at the moment, at least on vSphere (on Windows and Linux it’s able to accelerate also writes). Since it is transparent to VMs and ESXi servers, FlashSoft is compatible with every clustering feature of VMware, like vMotion, HA, DRS, Storage vMotion, Storage DRS, and because it’s cache is only for reads it does not interfere with storage snapshots or backups. Cache content is not replicated among ESXi servers, so after a vmotion or an HA event the cache itself is empty on the destination host and needs to be recreated.
Installation and configuration
After I received the software from FlashSoft (the latest 3.1.3 version, release on 19 November 2013), my first goal was to verify the ease of use. So, I kindly declined any offer for help or guided installation, and I only relied on the installation guide. The software is really small, there are two files using 407KB for the host module and 2,7 MB for the vCenter plugin. In comparison, the administration guide is 3 MB…
Installation is really easy and completely transparent. The host module is installed in few seconds and it does not require Maintenance Mode or reboot of ESXi. There is only one problem: VMs needs to b powered off and on before they can be accelerated. You can do this activity way after you installed FlashSoft, and choose the best maintenance window to complete the reboots. This is only needed if you are accelerating a local storage, otherwise you can simply vmotion a VM out of the accelerated ESXi, and get it back again. Client module is only available for the Windows version of vCenter, and there is no support at the moment for the Web Client. Once everything is installed, this is the starting page of the plugin inside vClient:
the first thing you need to do is activate the license. If the client can reach internet, you can register the license directly online, otherwise you can ask for a license file for offline activation. During the activation, you need to select the device for caching:
reading the guide, I discovered you can use a raw device, or even a VMDK disk saved on a SSD. This latter solution is not so “clean” as the former, but can be used if you need to share a given SSD between FlashSoft and another software. I’m not a fan of this solution, because performances of one of the two solution could be impacted by an excessive I/O of the other one, but if you need to do such a design, this software can help you. To complete this configuration, you have to select an existing datastore, and in the following screen you will be able to choose the entire volume or a VMDK file:
Once the configuration is done, the main window is like this:
From here, you can start the acceleration of any virtual machine, both at the host level or at the VM level:
Once you started acceleration, FlashSoft immediately start to cache virtual machines data, and as you can see below, even if in my very first test I only powered on my “I/O Test Virtual Machine”, the caching software was already optimizing my I/O:
Final notes
FlashSoft is a really powerful yet simple software, as it hides to the final user all its complexity. With it, you can quickly create an effective server-side caching solution. As of today it only accelerate reads, but I’m sure they are going to support writes on vSphere, as it is already available on Windows and Linux; another feature we should expect is the support for vSphere 5.5 and its web client.
The ability to accelerate any kind of datastore you can find on a ESXi server (block, NFS or even local) is for sure interesting, and a big differentiator from its competitors, since many of them focused their solution on some specific use cases.
If you want to see the performance results I obtained with some tests in my lab, go to this article.