Speeding up writes for ScaleIO with DRAM

In my previous post “Automatic storage tiering with ScaleIO” I described how I used Windows Storage Spaces to add ScaleIO SSD write cache and automatic tiering. But sometimes there is no SSDs available. In this case it is possible to use software that can use DRAM as read and/or write cache – Romex PrimoCache (homepage) and SuperSpeed SuperCache (homepage). Adding even a small amount of DRAM write cache will turn random IO to more sequential IO and with this it will increase the performance of a spinning disk.

Introducing a volatile DRAM as write IO destination should include some careful planning as it increases risk of loosing data. As ScaleIO writes data into two fault domains it is important to minimize chances of simultaneous failures in multiple fault domains. Things to consider – dual power supplies, battery backup, different blade enclosures, different racks and even different server rooms.

In my test I used PrimoCache – 1GB of DRAM write only cache with 5 second deferred write. Deferred write is the key option here – it allows data to reside in the memory for 5 seconds before it is flushed to disk. The deferred write time is configurable from 1 second up to infinity.

PrimoCache Write Cache


With DRAM write cache in front of spinning disk random IO performance increases significantly as IO is captured in to DRAM and then flushed to disk as sequential IO. From the screenshot below it is visible how PrimoCache flushes writes every 5 seconds to disk. Device Detail page in ScaleIO show that average write latency is about half what it is for other two tiered SSD based ScaleIO SDS nodes. Additional option is to add DRAM write cache with deferred write also in front of SSD based solutions to speed up write IO and reduce wear on SSD disks.

Disk transfer with PrimoCache


Since ScaleIO is software only it allows many different configurations to be combined into single cluster. I have mixed different hardware vendors, hardware generations and operating systems together into single ScaleIO cluster. I recommend everyone try to ScaleIO who is interested of hyper-converged solutions.

Related posts

Automatic storage tiering with ScaleIO
PrimoCache – Disk caching software for Windows


One thought on “Speeding up writes for ScaleIO with DRAM

  1. Pingback: Deduplication and compression with ScaleIO | Kalle's playground

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s