If you are looking to upgrade your storage appliance or network to improve storage performance, it will be a lot cheaper to use VirtuCache with an in-host NVME Flash drive, and it will be higher performing as well. And even if you do decide to upgrade your SAN, you don’t need to buy expensive higher-end Flash arrays. With VirtuCache installed in your ESXi hosts, even for the most IO intensive or latency-sensitive workloads, mid-range arrays like Dell ME4, HP MSA, Seagate Exos, will suffice. For that matter, even lower-end storage like QNAP, Synology, Windows iSCSI will work just fine1. This is because with VirtuCache in the storage IO path, the backend storage array and the storage network are completely removed from servicing performance aspects of storage. All performance aspects of storage are now serviced by VirtuCache.
COMPARING COSTS – VIRTUCACHE VERSUS HYBRID AND ALL-FLASH ARRAYS
To deploy VirtuCache, all you need is an enterprise SSD (or host RAM). An enterprise-grade NVME SSD costs 30 US Cents/GB and does 900,000 IOPS random reads & 200,000 IOPS random writes. Add to it VirtuCache license fees of $3000 per host. On the other hand, for a SAN upgrade, even if you didn’t go with the most expensive option of replacing the array and network, at the very least, you’d need to add SSDs to your storage appliance. SSDs from storage vendors cost more than if the same SSDs were bought retail (to be installed in the VMware host for use with VirtuCache), so just augmenting your existing array with SSDs might be more expensive than using VirtuCache.
Also, with us, you can start small by deploying VirtuCache on only one host as a first step. If you like the experience, you can buy more licenses and additional SSDs for your other hosts over time.
The below table compares the cost of VirtuCache and storage array upgrade for a VMware environment that has 8 hosts and 100TB usable storage. Prices are from 2020
100TB HDD storage with 4 controllers, each controller with 4TB caching SSDs.
|ALL FLASH ARRAY
100TB All-SSD storage.
100TB Seagate EXOS iSCSI HDD storage array + VirtuCache with 3.2TB Samsung PM1735 NVME SSD in each of the 8 ESXi hosts.
|$/GB of storage capacity||$1.5/GB||$2.5/GB||$0.6/GB|
[each NVME SSD does 300K IOPS, there are 8 SSDs spread across 8 hosts. So 8x300K IOPS = 2.4M IOPS.]
The table above shows that if you pair VirtuCache (caching to NVME SSD) with a mid-market Hard Drive based array, like Dell ME4, HP MSA, or Seagate EXOS, you will get the cheapest $/GB capacity and cheapest $/IOPS performance.
COMPARING PERFORMANCE – VIRTUCACHE VERSUS HYBRID AND ALL-FLASH ARRAYS
Deploying VirtuCache with an in-host SSD (or RAM) is a higher-performing alternative than a SAN upgrade. This is because of the below reasons:
- In a storage appliance, the SSD is behind the network and storage controller. With VirtuCache, the SSD is on the host motherboard, hence closer to the CPU that will consume the storage IO. Also, it is connected to the CPU over a dedicated PCIe bus (in the case of NVME SSDs) that is a higher throughput link to the CPU than a shared network in the case of an SSD storage appliance. Hence the same SSD will work better with VirtuCache than in the backend array.
- VirtuCache has access to more CPU. VirtuCache uses ESXi host CPUs. A storage appliance uses storage controller CPUs for caching, and there are typically only two storage controller CPUs, one on each controller. Not only are more CPUs involved in caching in the case of VirtuCache, but each ESXi host CPU is higher powered than the storage appliance controller CPU. This results in a higher cache hit percentage with VirtuCache versus Storage appliance caching/tiering. Even with All-Flash arrays, a common problem is that their lower-powered storage controller CPUs can’t keep up with high throughput small block write IO.
- If VirtuCache uses host RAM, your storage will be much faster than any All-Flash array, since All-Flash arrays do not and cannot use large amounts of RAM in the storage IO path, and RAM is the fastest media there is.
HOW VIRTUCACHE COMPETES WITH ALL-FLASH ARRAYS, AND TIERING / CACHING IN HYBRID ARRAYS
|Parameter||Tiering in Hybrid Array e.g. HP 3PAR, HP VSA||Caching in Hybrid Array e.g. HP Nimble Storage, EMC VNX||All-Flash Array||VirtuCache|
|RAM.||RAM is not used in storage arrays. Only SSDs are used in arrays.||If VirtuCache is configured to use host RAM, VirtuCache will be the highest performing storage solution on the market, since RAM is higher performing than any SSD.|
|SSD Latencies.||SSDs are behind the storage controller and network, so SSD latencies will be higher in the case of storage arrays, than if the same SSD was in the host, as is the case with VirtuCache.||SSD is in each ESXi host, connected to the host CPU via a dedicated (not shared) SATA/SAS/PCIe bus. PCIe/NVME bus is especially low latency, with bus speeds of 128gbps.|
|Accelerates Writes.||No.||Depends on the array. Even if the appliance caches writes, it does so to only small amounts of NVRAM (4GB/8GB).||Yes.||Yes. Larger volumes of writes can be cached with VirtuCache than with a hybrid storage array.|
|Accelerates Reads.||Yes. Though tiering is not real-time. Frequently accessed data is moved to the SSD tier over time. Tiering is good for predictable, repetitive workload patterns, but not for random, bursty workloads.||Depends on the array, some cache in real-time, others don’t.||Yes.||Yes. If a block is accessed once, we move it to cache immediately (real-time), because we assume that it’s more likely to be accessed again versus other blocks.|
|Support for bursty, high volume, random workload, that’s typical in VMware.||Tiering is not real-time. So for workloads where data (blocks) is suddenly read by VMs in millisecond bursts, data might still be on HDDs while these bursty reads come and go, since in tiering, blocks need to be accessed repeatedly over a longer period of time (days) for tiering algorithms to move those to SSDs.||Yes. Though lower end hybrid and all-flash appliances might get CPU constrained. In this type of workload, the storage controller CPUs need to churn through data in the SSDs at a fast clip, and if your storage appliance has only two low core count CPUs for instance, storage controllers might get CPU bound.||VirtuCache distributes cache processing across hosts, and it uses CPUs on the ESXi hosts. As a result, it has access to lot more CPU than storage appliance CPUs, and so VirtuCache is not CPU constrained.|
|Administrator Overhead.||Admin needs to set tiering schedule and aggressiveness. Some understanding of workload patterns is required.||No.||No.||No.|