Archive: Posts

Infinio’s Read Caching versus Virtunet’s Read+Write Caching Software

The biggest differences are:

  1. We accelerate both reads and writes, Infinio accelerates only reads.

  2. Infinio doesn’t support Linked Clones or Non Persistent VDI. We support all VDI features.

  3. With us you can apply caching policy at the datastore and/or VM level versus only at the VM level with Infinio.

  4. We accelerate IO originating in VMware kernel and VMs, versus only VM generated IO is accelerated by Infinio.

More details on VirtuCache vs. Infinio in the table below.

Virtunet Systems

Infinio

Accelerates both reads and writes.1

Accelerates only reads.

By not caching writes, not only are writes not accelerated but reads that are behind writes on the same thread are not accelerated, and so reads are slowed down as well. 1

Supports all VDI features in XenDesktop and Horizon, including Linked Clones, Instant Clones, AppVolumes/ AppDisks, vGPU etc.

Starting in ESXi 6.7 Infinio doesn’t support Linked Clones and non persistent VDI.

Caching policy can be applied at the VM and/or Datastore level. Since the number of Datastores is typically much less than VMs, its quicker to configure caching for all the VMs in the cluster by assigning caching policy at the Datastore level than at the VM level. All VMs within the Datastore inherit the Datastore wide caching policy by default. You can of course apply a different caching policy at the VM level.2 When new VMs are created, these VMs automatically inherit the Datastore caching policy. This is especially useful in non persistent VDI where new VMs are automatically created as users login.

Caching policy can be applied only at the VM level. So if you have large number of VMs, the process of configuring caching for all the VMs in the cluster becomes onerous.

All storage IO, whether it originates within VMs or VMware kernel, is accelerated.

Storage IO originating in the VMware kernel is not accelerated. So creation/deletion of VMs, snapshots (and any backup processes that use snapshots) are not accelerated, since these operations are initiated from within the VMware kernel and not from within any VM.

  1. Why caching writes is necessary?

    The main arguments from read caching vendors for why read caching suffices is that most traditional IT workloads are read dominated and secondly they contend that by caching only reads, the storage appliance is freed up to better service writes. Both these statements are true, but they are not strong enough arguments to not cache writes. In fact not caching writes also slows down reads. Here is the reason. In all real world applications, reads and writes are interspersed on the same thread. Since Infinio does not cache writes, pending writes in the queue will back up even the read requests behind them that are on the same thread. So even if these reads by themselves could be accelerated by Infinio, because reads and writes are interspersed on the same thread the reads too are slowed down. Now keep in mind that if you run a synthetic testing tool like IOmeter you can configure reads and writes to be on separate threads, which will result in reads being accelerated independently of writes, but this is not a real life use case.

    Secondly, many storage appliances, even the older ones, do OK on reads but not on writes, so accelerating even small amount of writes disproportionately improves VM performance.

    Thirdly, write intensive applications are also those that are of the higher value to the customer, as is the case with transaction processing, ERP, healthcare EMR, order processing, and such other applications. For instance, entering purchase orders (write intensive job) is possibly higher value than running a report on historical purchase orders (read intensive job).

    Hence both reads and writes need to be accelerated.

  2. Screenshots in VirtuCache GUI to assign caching policy at the Datastore level and then have the option to selectively assign VMs a different policy than what they inherited from their Datastores.

  3. Virtunet Screenshot 1: In VirtuCache, assign caching policy at the Datastore levelVirtunet Screenshot 1: In VirtuCache, assign caching policy at the Datastore level.

    Virtunet Screenshot 2: In VirtuCache, ability to override Datastore level caching policy at the VM levelVirtunet Screenshot 2: In VirtuCache, ability to override Datastore level caching policy at the VM level.