Jump to content
  • 0

SSD for original files, HDD for dupes. Give it to me straight and simple.


Question

Posted

I've done so much digging about this topic and I still can't figure out how to do it right. So please explain to me as simply as possible if what I'm asking is feasible:

I have an exactly equal amount of SSD space and HDD space. All my data is on the SSDs. How do I make it so that DrivePool maintains an EXACT copy on the HDDs, but only ever reads from the SSDs?

  • With the SSD Optimizer:
    • It tries to move ALL my data to the HDDs.
    • I tried checking "prioritize the placement of duplicated files on archive disks" but then it started sending my files everywhere without any real pattern to it.
  • With the Drive Usage Limiter:
    • I set my SSDs to "unduplicated" and HDDs to "duplicated", but that doesn't tell me where the duplicates are going vs the originals, or where files are being read from when I'm using them. It just shows that both drives have duplicated data.

Would appreciate any and all ELI5 advice!

4 answers to this question

Recommended Posts

  • 1
Posted

Hi! To have your data duplicated between two sets of disks, you'll need to create two pools (one containing each set) and then add each of those pools to a third (which has duplication enabled) and put your data in the third pool. DrivePool should then read that data from the fast set but write to both sets.

Step by step:

  • Create a pool, we'll call it S for slow. Add your HDDs to it.
  • Create another pool, we'll call it F for fast. Add your SSDs to it.
  • Create a third pool, we'll call it D for data. Enable x2 duplication on it. Add the S and F pools to it.
  • Put your data in the D pool. DrivePool should duplicate each file to one SSD and one HDD, and will try to read from the fastest (which should be the SSD).

To see what drives are being accessed, you can use DrivePool's Performance section (main GUI, select the pool to observe, click on the "Performance" drop-down) or also the Windows Task Manager (Performance tab) or Windows Resource Monitor (Disk tab).

 

  • 0
Posted
On 11/26/2025 at 9:13 PM, Shane said:

Hi! To have your data duplicated between two sets of disks, you'll need to create two pools (one containing each set) and then add each of those pools to a third (which has duplication enabled) and put your data in the third pool. DrivePool should then read that data from the fast set but write to both sets.

Step by step:

  • Create a pool, we'll call it S for slow. Add your HDDs to it.
  • Create another pool, we'll call it F for fast. Add your SSDs to it.
  • Create a third pool, we'll call it D for data. Enable x2 duplication on it. Add the S and F pools to it.
  • Put your data in the D pool. DrivePool should duplicate each file to one SSD and one HDD, and will try to read from the fastest (which should be the SSD).

To see what drives are being accessed, you can use DrivePool's Performance section (main GUI, select the pool to observe, click on the "Performance" drop-down) or also the Windows Task Manager (Performance tab) or Windows Resource Monitor (Disk tab).

 

I made a fresh account just to say (although I'll probably have some use for it later anyway) that this is a neat idea and I wish I had seen this earlier because it would have helped solve something I was kind of wishing DrivePool would let me do. I've only got HDDs but I would have liked to split up my HDDs into groups that align with the SAS port they're connected to on the HBA so it's more easy for me to recognize where a problem might live if one were to arise (and I'd have a better comprehension of where data is living with respect to each).

Is it possible to do this in-place or would I have to destroy the pool and remake it to facilitate this? Also is there a performance hit that would come from this method if I'm not using a fast/slow storage hierarchy (like if I were to use striped reading would it get tangled up by trying to pass through two layers of storage pooling)?

EDIT: Actually I came up with a method for doing this that doesn't necessarily need me to move data out of the pool to accomplish it, since the amount of data I'm currently tending is less than any one drive in the array. What I can do is yank two drives out of the pool by emptying them into the rest of the existing pool, one from each SAS chain, then use those as the basis for the new configuration and set up the pools for the A and B sides as well as the merged meta-pool. Then I would move the data from the old pool into the new configuration and once it's there and properly duped I would break up the original pool and move its drives into the reconfigured environment and rebalance each side.

  • 0
Posted

I actually thought of another way to do this that would only take two pools. Thinking of doing something like this for an idea I have for my Nextcloud server.

Not sure how viable this is in terms of how data replication takes place but:

  • Create one pool and put all your SSDs into it, no replication enabled.
  • Create another pool and put your HDDs and the SSD pool and enable replication here.
  • Don't assign a drive letter to the pool with all the drives in it so only the SSD pool is accessible at the UI level, meaning that is where you read and write to.

This at least would be perfectly viable if you had just one SSD and one HDD you want to replicate to (plus it gets around DrivePool showing the entire capacity of a given pool even if you're duplicating the data across it), although I suppose DrivePool's storage prioritization function would do this anyway. I'm pretty sure it would also work for JBOD'd SSDs as well (since the data is only being duplicated when it gets down the level with the hard drives in it, meaning DrivePool should only be replicating data as it comes into the pool with every drive in it and the only place data is generated and read from is the level with the SSDs, and then replicating the data would push the data back from the HDDs in the event of an SSD needing to be replaced). Not sure if DrivePool would take what it sees in a pool and try to write the entire pool to a single storage unit if you're not replicating data at the level you wrote it initially or if it splits up data on the pool you're not directly writing to just as well as if you were directly writing to it (in other words can DrivePool "see past" a nested pool to the storage devices contained in it and send the data over to the unpooled drives in the "lower" pool in a similarly-organized way as it is in the unreplicated pool it's reading from).

  • 0
Posted
On 2/25/2026 at 2:20 AM, SolidSonicTH said:

Not sure how viable this is in terms of how data replication takes place but:

  • Create one pool and put all your SSDs into it, no replication enabled.
  • Create another pool and put your HDDs and the SSD pool and enable replication here.
  • Don't assign a drive letter to the pool with all the drives in it so only the SSD pool is accessible at the UI level, meaning that is where you read and write to.

Wouldn't work. For example, say our SSD drives are D and E and our HDD drives are F and G, so we pool D and E as S and then S and F and G as T and enable duplication on T.

This effectively gets us D:\poolpart.SD and E:\poolpart.SE and S:\poolpart.TS (and thus D:\poolpart.SD\poolpart.TS and E:\poolpart.SE\poolpart.TS) and F:\poolpart.TF and G:\poolpart.TG - which means any data placed on S never goes on the HDDs (regardless of whether duplication is enabled).

If you did it the other way (so the pool of HDDs is being added to the pool of SSDs) you'd at least get data placed on the SSD pool going on the HDDs sometimes but you wouldn't be able to guarantee that every file would end up on both a HDD and a SSD unless you started manually controlling it via (I suspect) a quantity of placement rules at least equal to the quantity of SSDs - which rapidly defeats the purpose of automating things simply.

On 1/30/2026 at 3:21 AM, SolidSonicTH said:

I've only got HDDs but I would have liked to split up my HDDs into groups that align with the SAS port they're connected to on the HBA so it's more easy for me to recognize where a problem might live if one were to arise (and I'd have a better comprehension of where data is living with respect to each).

FWIW, I use the volume labels of the drives to indicate their position and serial. E.g. a drive's label might be cardC-portP-bayB-diskD. That way if I saw that all the drives whose labels began with card1 suddenly showed in the GUI as missing from my pool I'd have good reason to suspect there was a problem with that particular card.

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...