May 27th, 2014 by Brian Beeler
SanDisk FlashSoft Caching Software Review (Windows)
SanDisk FlashSoft is a software package designed to leverage small amounts of flash to accelerate hard drive based workloads. Like other caching software packages, the reasoning goes that within most applications, like a database, there is only so much data that is very active at any given time. Rather than place all of that application data on an expensive flash tier, size your flash for the percentage of active data and let smart software decide when to promote hot data to the flash cache. Intuitively the argument makes sense as many enterprises would rather stretch out the life of existing arrays and server hardware or make smaller new hardware investments, and can leverage FlashSoft to do so relatively economically. FlashSoft estimates enterprises can gain 3-5 times the performance of applications like SQL Server thanks to the huge gains in overall latency and responsiveness of the most in demand data.
While FlashSoft is now owned by SanDisk, the solution is by no means a SanDisk lockout in terms of the flash (SATA, SAS and PCIe) supported. FlashSoft has managed to remain quite agnostic, supporting essentially anything the host server will recognize. Most FlashSoft deployments also include some degree of services contract, which not only gets FlashSoft support, but also gets the team pretty integrated with the deployment. Because FlashSoft is so flexible, the software and environment can be tuned based on the flash used, workload to be accelerated or other variables like operating environment. Of course buyers can roll out FlashSoft in the default config and do well, but it's worth noting that there are plenty of levers that FlashSoft would typically help a new customer tune for their specific use case if they so choose.
Part of the configuration process is deciding how to implement caching, FlashSoft supports both write-through and write-back options. Write-back is more suitable for workloads like databases and other high-performance transactional applications where write-though would be more common in applications where data is written then quickly re-read frequently. FlashSoft can also be configured to be read-only, which is beneficial for many workloads like media streaming, web serving and the like.
When using SAS/SATA SSDs, the drives are best configured in RAID10, which provides a combination of performance and reliability in the event of a drive failure. If there are two drives in RAID1 for instance and one fails, the software automatically dumps the cache to disk and goes into a pass-through mode until the cache is re-established. In something like a power loss the cache will pick up where it left off once back online; for more catastrophic events like losing all drives, then a restore from backup would be needed.
The software supports more than one cache; users may configure up to four per machine at 2TB each. Additionally FlashSoft is resource friendly, CPU overhead is sub 5% and the RAM footprint is small at 140MB. The biggest hole in the current Windows implementation is there is no support for clustered environments, though FlashSoft is perpetually working to make the package better and they acknowledge cache replication is a compelling feature.
FlashSoft is available in three flavors including Windows, Linux and VMware; this review centers on the Windows version. FlashSoft is licensed on a per host basis, the Windows license carries an MSRP of $3,000.
FlashSoft System Requirements
- Operating System
- Microsoft Windows Server 2008 R2 (64-bit) or newer
- SSD Hardware
- Any standard SSD or flash
- Minimum cache size: 16GB
- Maximum cache size: 2TB (up to 4 per machine)
- Server Memory & CPU
- Recommended CPU: Dual core or greater, 2GHz or above, 64-bit x86 processor
- Memory utilization: 140MB
- CPU utilization: 3% - 5%
- All server configurations: rack mount, tower, blades or skinless
- Any direct-attached storage (DAS) or storage area network (SAN)
Getting started with FlashSoft for Windows is pretty straightforward. After the software is installed and the licenses added, you add a logical SSD to the group and select the type of caching process desired. In our configuration we created a RAID10 SSD volume in Storage Spaces and presented that volume to FlashSoft for write-back cache.
After the LSSD is added to the software, switch over to the volumes tab and right click the volume to accelerate and click "Start Acceleration". After that just lean back and watch Windows-based applications get fast.
While FlashSoft for Windows Server will happily accelerate any applications, the most obvious use cases are the core family of Microsoft applications like Exchange and SQL. While we could certainly test this with synthetic tools to force data hot spots, that's not real world and our lab prefers to operate in legitimate environments whenever possible. Thankfully StorageReview has a SQL performance benchmark, which we'll leverage for this review.
StorageReview’s Microsoft SQL Server OLTP testing protocol employs the current draft of the Transaction Processing Performance Council’s Benchmark C (TPC-C), an online transaction processing benchmark that simulates the activities found in complex application environments. The TPC-C benchmark comes closer than synthetic performance benchmarks to gauging the performance strengths and bottlenecks of storage infrastructure in database environments. Our SQL Server protocol uses a 685GB (3,000 scale) SQL Server database and measures the transactional performance and latency under a load of 30,000 virtual users.
FlashSoft can be used to accelerate anything, from high capacity 3.5" HDDs in a JBOD, to iSCSI or FC storage shared over a network. For this test we are using sixteen Seagate Enterprise Performance 10K.7 hard drives configured in RAID10 in a JBOD connected to our Lenovo ThinkServer RD630. For caching SSDs we chose four of the SanDisk Optimus SAS SSD and Micron M500DC SATA SSD, as they are the front-runners in their respective groups.
FlashSoft supports both write back and write through modes, we tested with write back only, as the write through mode is not advised for this type of workload. The cache was warmed via backup and restore of the database to give FlashSoft a modest head start in terms of being prepared for the workload. Testing was completed with a default FlashSoft install and version 3.2.0.
Below is a screenshot of the performance view inside FlashSoft, showing data being added into the cache through our warmup process, as well as the beginning of our SQL Server benchmark.
The baseline performance inside SQL Server with our HDD RAID10 array measured 4,179TPS, with native SSD groups as well as cache measuring upwards of 6,300TPS.
Looking at latency we see the dramatic performance difference over the baseline RAID10 group. While the HDDs measured 2,439ms in this test, the results leveraging our Micron M500DC SATA SSDs measured 27ms and the one leveraging the SanDisk Optimus SATA SSD measured 21ms. Those compared very favorably against the results measured with the database sitting entirely on flash, with the Micron SSD actually speeding up slightly.
In our testing we accelerated a JBOD consisting of sixteen 10K hard drives running SQL Server and saw results that were pretty impressive. Setup and configuration couldn't be much easier and for those with more complicated environments, the FlashSoft team will advise on best practices to ensure the cache is sized properly and generally works effectively.
Looking at performance, in terms of TPS (transactions per second) the gains were roughly 50% using either the enterprise SATA or SAS SSDs for acceleration. It was latency though that really saw the boost, nearly 120 times better with the SAS SSDs and 90X with SATA. For high demand applications like SQL Server, the gains are impressive considering we only added four drives to the host and used Storage Spaces, no additional hardware was required in this build. FlashSoft claims database workloads can see a boost of 3-5X by infusing their software and some amount of flash into the environment. We didn't necessarily see a giant jump in TPS with the minimum recommended SSD configuration tested, though 50% is a solid improvement, we did see a gigantic boost in latency which is where SQL Server performance hurts the most. In SQL environments that are slowing down, it's normally the latency that gets felt and complained about by application owners rather than the growth in transactions bogging the system down.
There's not much to complain about with the FlashSoft implementation. At $3k list price per node, the pricing is simple and relatively inexpensive, considering four light enterprise SATA drives did very well without the need for a RAID card. Getting the latency acceleration we experienced for around $5k per server all in is very impressive. FlashSoft does not yet offer clustered cache configurations and some users will be nervous about deploying write-back cache due to data loss fears. That said, for those applications still on physical Windows servers, there's quite a bit of upside with minimal investment.
- Simple deployment model
- Works with any flash against any DAS/SAN storage
- Cost effective
- Max cache size may be limiting as SSD and HDD capacity grows
- No clustered server support yet
SanDisk FlashSoft caching software for Windows is easy to configure and with just four enterprise SATA SSDs in place, posted 90X better SQL Server latency. For those looking to drive more performance out of physical Windows servers, FlashSoft is an easy and cost effective alternative to investing in new hardware.