ssd caching..

AryaX

Junior Member
Aug 13, 2017
2
0
1
Hi, I am building a new computer and I am getting two 960 evo ssd's for the setup. The plan was to set one drive as system/boot drive and use the other for programs and games and such.. and in addition I am also going to have one or two larger hdd's (from my old computer) and I was thinking about using ssd caching for those...

1. Is it possible to create ssd cache for hdd if the hdd isn't empty or does it need to be formatted first.. ?

2. I read somewhere that the ssd used caching the hdd can't be bigger than 60 or 64gb or something like that... but the ssd I was thinking of using as cache is the old vertex 3 240gb boot drive from my old computer.. is it useable ??

3. Alternatively I though about using a partition from the new 960 evo drives for the cache.. but can partition be used as cache like that, or do I need to commit a whole drive for it ??

4. If I setup the ssd cache, will the data on the hdd become dependent on it somehow ? (ie. what happens if I setup the cache and then shutdown the computer and remove the ssd and then restart my computer.. will the hdd and showup ? will the data be there and useable as normal.. or will the setup become corrupted in the absence of the ssd ??)
 

Ichinisan

Lifer
Oct 9, 2002
28,298
1,234
136
2. I read somewhere that the ssd used caching the hdd can't be bigger than 60 or 64gb or something like that... but the ssd I was thinking of using as cache is the old vertex 3 240gb boot drive from my old computer.. is it useable ??
I’m pretty sure that’s referring to the arbitrary SSD cache drive size limit of Intel SRT. HDD can be any size, but it only supports like 64GB on the SSD cache drive. I don’t understand why it has that restriction. Yes, even 16GB would be enough to get most of the “hot” data sectors cached, but having greater SSD size means more effective wear leveling between SSD storage cells. I’d love to have an 8TB HDD paired with a 500GB cache drive. I hear PrimoCache is a software solution that can do it.
 

BonzaiDuck

Lifer
Jun 30, 2004
15,727
1,456
126
Hi, I am building a new computer and I am getting two 960 evo ssd's for the setup. The plan was to set one drive as system/boot drive and use the other for programs and games and such.. and in addition I am also going to have one or two larger hdd's (from my old computer) and I was thinking about using ssd caching for those...

1. Is it possible to create ssd cache for hdd if the hdd isn't empty or does it need to be formatted first.. ?

2. I read somewhere that the ssd used caching the hdd can't be bigger than 60 or 64gb or something like that... but the ssd I was thinking of using as cache is the old vertex 3 240gb boot drive from my old computer.. is it useable ??

3. Alternatively I though about using a partition from the new 960 evo drives for the cache.. but can partition be used as cache like that, or do I need to commit a whole drive for it ??

4. If I setup the ssd cache, will the data on the hdd become dependent on it somehow ? (ie. what happens if I setup the cache and then shutdown the computer and remove the ssd and then restart my computer.. will the hdd and showup ? will the data be there and useable as normal.. or will the setup become corrupted in the absence of the ssd ??)

I should be able to answer most of these questions, although likely there will be nods and smiles from our colleagues, since I became a "caching hot-dawg."

The source-disk -- the accelerated or "cached" disk -- shouldn't need any special preparation, and can already hold data. This would be true for either ISRT through the Intel controller, or other proprietary possibilities, such as Marvell's. So that would answer #1.

For earlier chipsets of which I have firsthand knowledge, the limit for the caching SSD in terms of maximum cache size was 64GB for ISRT.

ISRT, like Samsung's "RAPID" for RAM-caching their SSD products, is faux-proprietary. It's proprietary because that's the way Intel and Samsung want it. No less would that be the case for Marvell's Hyper-Duo. I have had the opportunity to try Hyper-Duo for several years, but haven't, so have no "firsthand" experience.

That leaves us with a limited choice of software utilities which do the same thing(s) as the others. When I first started looking for such software, there were about four or five possible options, but one of them didn't work properly with OSes later than Win 7, and there were other drawbacks with a second one. This narrowed the choice down to: Superspeed's SuperCache, and Romex's Primo-Cache. It also became slowly apparent that hardware companies were buying the rights to some of these software products as soon, but these two are independent. Superspeed's headquarters are in in Massachusetts; Romex in Shanghai. For features and versatility, Romex Primo-Cache wins hands down.

Primo is a swiss-army knife of caching features. It will cache either SSD or HDD to RAM; it will cache SATA SSD to NVME SSD or SATA HDD to SSD of either SATA or NVME flavors. It will cache disks across different proprietary controller hardware. It will cache either AHCI or RAID, and it will cache BOTH AHCI and RAID in the same system. You could cache several SSDs and HDDs under one caching task and cache device, or create more than one caching task using different cache options. So I can cache my NVME to RAM, and a 5,400 Seagate Barracuda spinner to NVME or SATA SSD.

The larger the SSD cache size, the greater the overhead requirements in RAM. So having a 16GB RAM-kit, you might find that 80GB to 150GB is a comfortable limit for SSD-caching.

The license is lifetime, and probably costs about $30 with a generous trial-period under full-functionality. You could-- of course -- be reticent over speculations that the Chinese PLA hacker-battalion has a "hook" in your computer, but that's no different than current anxieties for Kaspersky users since it's a Russian company. After hearing the CEO of Kaspersky explain the impossibility for such things, and after having worked with Primo for some three years now on some three desktops and one laptop, I have no such worries.

To answer #3, I'll describe my current Skylake-system status-quo. It is dual-boot Win7/10, and both boot-system partitions are on a 1TB 960 Pro NVMe. I left about 150GB of unallocated space on the 960 Pro for a caching volume. They all co-exist. However, there was one problem or difficulty with defining separate cache volumes for each different OS, so the Win 7 installation is only cached to RAM. Win 10 has a RAM cache for the NVMe (not including the caching volume), and the NVMe volume caches either a spinner or an SATA SSD. It is used for the latter now, because I replaced the Barracuda with a Crucial MX300.

For #4, dependency only works in one direction. As the Primo "manual" explains, you must avoid situations with "off-line writes" to the source drive -- the one that is being cached. This will lead to automatic CHKDSK repairs of the source disk -- not a bad thing, but a time-waster and annoyance. So you define your caching strategy (especially for dual-boot situations) to avoid writing to an SSD-cached disk under one OS if the cache is defined on the other OS. You don't need to cache things like "media" drives.

If you have more RAM, and it is FLAWLESS and flawlessly configured RAM, it can be a better choice and you could conceivably avoid using an SSD-cache altogether. But you could easily use both, and I would personally recommend isolating the configurations. I had some troubles when I was caching an SSD volume to RAM while simultaneously caching an HDD to BOTH SSD and RAM. The difficulties don't cause data-loss, but they will cause on-the-fly drive repair episodes as I mentioned.

I guess this is the latest version of my prolix dissertation on the subject. Hope it serves you well. Currently, I'm planning a RAM upgrade to a 16GB 2x8 kit to a 4x8=32GB. It would've been easier and more likely successful to replace the 2x8 with a 2x16. But I've already cut the RMA ticket for the second 2x8 kit so that it will be a "replacement" RMA for a 2x16. If I don't like the outcome after testing during a 14-day period, I can execute the RMA. And if I don't -- I won't. Frankly, I'll be happier than a pig in s*** if I can make the 4x8 run at 3000 instead of 3200, as G.SKILL has pronounced their own best guess about two identical but unmatched kits.

PS I had previously left a smidgeon of unallocated space on my 960 Pro after defining the caching volume, thinking that I needed to "over-provision." This may not be at all necessary for the Pro drive, but I would advise over-provisioning an EVO, given the hardware features of the two models.

Post-PS -- The risk to data emerges when you choose the "maximum performance" option of deferred writes. This can be turned on and off within the same computer session to minimize risk. The risk arises with any possibility of BSOD or unstable behavior on your system. ISRT (for SSD-caching) has the same deferred write option, and therefore the same risk if you choose to use it.

You should have a regular backup configuration for your system as further insurance, no less nor more than you'd apply with or without any caching. I use Macrium Reflect for my Skylake and Home Server for the other systems using Win 7. Apparently, an active caching arrangement doesn't interfere with daily backups.

Post-PPS -- Pertaining to your question about "removal" of devices. Infer what you wish with this -- my personal experience (and delight when I discovered it). Don't bother "backing up" a caching volume on an SSD with PrimoCache -- only back up the regular Windows partitions including the Win 7 100MB "System Reserved" and/or win 10 500MB recovery stub. If Primo is configured to recognize its own caching volume, and if you remove the caching volume for some reason, you can then boot the system with Primo running and still won't miss a lick. If it doesn't find the caching volume that was previously available, it automatically disables the caching task that uses it until you fix things. I would think this works in the opposite direction: with an active caching volume, you could probably remove the source/accelerated disk and replace it, and Primo would see that it's "not the same disk" and disable the caching task.

Over the three years of usage, I've had all sorts of ideas about how things could get f***ed up by making hardware changes without thinking to disable caching, and I was surprised when things don't go wrong at all.
 
Last edited:

AryaX

Junior Member
Aug 13, 2017
2
0
1
I think I am going to be using the PrimoCache and cache both 960 evo drives to ram (read only cache) and the HDD to a partition in on one of the 960 evo drives (also read only cache).

But, about the cache sizes.. is a bigger cache always better or is there some disadvantage to using too big cache (read only caches) ??

I am currently using 16gb of ram to cache both the 960 evo drives but since I have rather excessive amount of ram I could use more if it makes any positive difference..

I am currently using a 120gb partition from the system 960 drive to cache the HDD..
 

BonzaiDuck

Lifer
Jun 30, 2004
15,727
1,456
126
There is an opinion to which I might -- might -- mildly ascribe: that RAM-caching is always the better alternative.

But RAM-caching isn't persistent caching, as you would have with SSD-caching, except for the possibility that the RAM-cache can be saved to disk and then restored upon reboot or restart.

However, this would not be the case with a Hibernation cycle, because in order to hibernate, Primo must be configured to unload a RAM-cache. Further, if one uses this method, I would think you are writing to the disk -- probably your boot-SSD -- just as you would with hibernation and pagefile.

As to the size of an L2 (SSD-caching) volume, I'm still attempting to get a better idea about that.

I've set up a 200GB cache on an EVO Samsung 960 250GB for an SATA SSD. Obviously this wouldn't be as fast if you could measure SSD-caching through benchmarks (let's return to that in a bit). For my Crucial MX300, it only means that sequential read performance would increase from ~500MB/s to something between 2,000 and 3,000+ MB/s. But that could be a five-fold increase, anyway.

It seems that PRimo auto-selects the block size depending on the overall cache-size -- unless you change it manually. So a smaller cache might have a default block-size setting of 16 KB, and a larger cache would have a block-size of 32 KB. The smaller the block size, the more efficient or higher in performance the cache. But in such a case, there will be higher RAM overhead for it. It could even put a bigger load on the CPU, but I've yet to experiment and I'm skeptical about that because of how my quad-core i7-6700K performs.

Currently, you cannot measure performance on a persistent SSD-cache (for slower SSDs and HDDs) with benchmarks. That is, you can't measure it directly. This is because Primo waits until the system is idle to start putting data in an SSD-cache, so a benchmark will completely miss filling the cache, and performance benchies will only show the raw performance of the original source SSD or HDD. The best you can do as an "estimate" is to do a preliminary assessment of the SSD cache drive as a normal volume (caching volumes are not "normal" Windows volumes) or accept the sequential read spec for the device. Then, as the cache fills up, watch the monitored value of the hit-rate for that particular cache.

It's only my opinion that SPEC_SEQ_READ_RATE X HIT_RATE ~ = PERFORMANCE in MB/s. That at least seems logical to me . . .

Now -- the ability to see persistent-cache performance in a benchmark like Anvil or Crystal Disk Mark is supposedly to be available in version 3.0 of Primo, and -- at your risk -- you can try the Beta version right now. I think I'd just as soon wait for the release, if it's only a matter of seeing performance in real-time.