Jump to content
Covecube Inc.
  • 0
AlexDavidson

Read caching with SSDs?

Question

My original plans for a new disk layout involved using tiered storage spaces to get both read and write acceleration out of a pair of SSDs against a larger rust-based store (a la my ZFS fileserver). This plan was scuppered when I discovered that Win8 Does Not Do tiered storage and I'd need to run a pair of Server 2012R2 instances on my dual-boot development and gaming machine instead.

 

I'm currently using DrivePool with the SSD Optimiser plugin to great effect and enjoying the 500MB/sec burst write speeds to a 3TB mirrored pool... but although read striping on rust is nice it doesn't yield the same benefits it would against silicon.

 

Would it be possible to extend the SSD Optimiser plugin to move frequently- or recently-accessed files to the SSDs? It would in fact be sufficient to merely copy them, treating that copy as 'disposable' and not counting towards the duplication requirements.

 

Possibly an easier approach might be to partition the SSDs as write cache and read cache, retaining mirroring for the write cache 'landing pad' and treating the read cache as a sort of RAID0? Based on my understanding of how DP works, this might mean that the read cache needs to be opaque to NTFS, but that's certainly a reasonable tradeoff in my use case (I was expecting to sacrifice the entire storage capacity of the SSDs).

 

I know it's possible to select files to keep on certain disks, which is a very nice feature and one I wish eg. ZFS presented (in a 'yes, I really do know what I want to actually keep in the L2ARC, TYVM' sort of way) but an auto system for reads would be good too. Bonus points for allowing different systems on a multiboot machine to maintain independent persistent read caches, although I suspect checking and invalidating the cache at boot time might be a little expensive...

 

Looking at the plugin API docs, implementing a non-file-duplicate-related read cache does not appear to be currently possible. It seems to be a task entirely outside the balancer's remit, in fact.

 

Is this something considered for the future?

 

Share this post


Link to post
Share on other sites

6 answers to this question

Recommended Posts

  • 0

I second this

 

I'd love to see a RAM caching option as well. You know, would give me a reason to upgrade to 32GB or something. Having the most used files duplicated in 16GB of RAM at startup would just seem... awesome.

Share this post


Link to post
Share on other sites
  • 0

So basically, store frequently used files on the SSD instead?

If so, an automatic version may be very difficult to do so properly. But we'll look into that.

 

 

However, if you want to do this manually, the File Placement Rules feature is perfect for this, in fact. 

http://stablebit.com/Support/DrivePool/2.X/Manual?Section=File%20Placement

Share this post


Link to post
Share on other sites
  • 0

+1

 

This seems to be the same feature which CloudDrive has called Adaptive Local Caching. Could something similar not be ported to DrivePool?

Two entirely different products, that work in very different ways. 

 

Basically, we'd need to implement something in StableBit DrivePool that monitors what files you access frequently (or the like) and implement a way to keep those on the specific drives (or more likely, automatically create File Placement rules to lock the files to the drives). 

 

In the meanwhile, you could do this manually with the file placement rules. 

Share this post


Link to post
Share on other sites
  • 0

Thanks for the prompt reply. I totally appreciate the implementation differences; it was only meant as a functionality comparison  :)

 

The problem with the file placement rules (as I understand them) is that I would have to set up the SSD as a "replacement" for one of my archive drives and not as a proper cache. To explain my use-case in more detail: I have two 3TB "archive" drives with pool-level duplication enabled. I added an SSD to the pool as SSD-type via the SSD Optimizer Balancer plug-in. In order to have a file/folder go to the SSD, I have to uncheck one of the Archive drives so it will use the SSD as the duplication. 

Share this post


Link to post
Share on other sites
  • 0

Ah, yeah.... 

 

The SSD Optimizer is meant to run as a write cache. So very difference. 

 

The problem is still the same, We'd have to implement something to detect the reads, and lock the files to the specific drive.  It's not out of the realm of possibility to do so. And it's something that we've talked about internally. 

 

But it would be rather complicated and take a while to even implement. 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...