Move SSD out of array and make it a cache drive


Recommended Posts

Up until two days ago I was running unraid on one SSD only, as I didn't yet buy HDD's.

Now I installed the two 4TB HDD's and assigned them to the array / as parity disk. 

I would like to use my SSD as a cache drive and ideally storage for VMs and some larger files I'm working on at the moment.

 

1. How can I move the SSD out of the array without loosing any data? (currently holds everything from VMs to some basic shares)


2. Can I and if yes, how do I have to configure the SSD to be cache drive and storage for VMs and some files?
 

3. How should I feel about the protectedness of the data on the SSD? I'm pretty sure its not protected by parity, is there any way I can more or less be safe to not loose any data, such as backing it up daily or weekly to the array?

It's possible that I could find answers to questions 2 and 3, but I'm not sure if those would match my exact circumstances. With regard to question 1 I couldn't find any answers (only on drives without data on them). If you argue that 2 and 3 are duplicates, feel free to not answer them (or leave me a link), but I'd really like to see answers to Q 1.

Thank you. 

  • Like 1
Link to comment
  • 2 weeks later...

I have a somewhat similar situation, and I suspect the answer will be the same so am posting here as well...

 

I have two 1TB SSDs currently in the array as Data disks  - one SATA and one NVME - and a brand-new 4TB HDD waiting to be installed.

 

For the SATA SSD, the change will be straightforward - unplug it, plug the new HDD in and UNRAID will simply rebuild it. The SATA SSD then gets installed in a different system.

 

But I want to keep the NVME SSD in there as a cache drive. And obviously, I can't just 'unplug it' and replace it because I only have one new HDD.

 

I've seen info on copying stuff between drives in the array - and I did find this which describes consolidating two drives into one (which may be the answer to @jojomatik's question, although it was last updated in 2016, so I do not know if it's still 100% accurate: https://wiki.unraid.net/Replacing_Multiple_Data_Drives_with_a_Single_Larger_Drive)

 

..but I haven't found anything on how to convert the SSD data drive to a cache drive. (Would this be  a newconfig procedure as well?)

 

Thanks!

Link to comment
4 hours ago, JorgeB said:

You just need to assigned as a single cache device.

...which I'm assuming I'd do with NewConfig, right?

 

Also, as part of the re-assigment, is it bad if I have a gap in disk numbering?

 

Right now I have this setup:

 

Disk 1 = HDD (which will receive the data)

Disk 2 = SSD (with data to be transferred to #1)

Disks 3-5 = HDDs not part of this change up

 

Can I leave Disk 2 "empty" after I transfer the data off to Disk 1 and reassign as cache drive, or do I have to close up the gap?

 

 

Link to comment

 

30 minutes ago, trurl said:

yes and yes. You have to rebuild parity of course.

 

 

Wonderful  - thanks for your help.

 

2 hours ago, Jojomatik said:

So, do i need to move data to the HDD beforehand and back to the SSD afterwards or can I just assign it as a cache drive and keep the data on it

 

You're thinking of using this as a cache drive, right? Why would you store stuff "permanently" on it? You've got two beautiful new 4TB HDDs which would do that, after all....

 

See generally: https://wiki.unraid.net/Cache_disk

 

Edited - got rid of section where I was probably wrong about something. Per above it looks like it IS okay to use cache drive for other purposes.

Edited by jkp1187
Link to comment
50 minutes ago, jkp1187 said:

 

Wonderful  - thanks for your help.

 

 

You're thinking of using this as a cache drive, right? Why would you store stuff "permanently" on it? You've got two beautiful new 4TB HDDs which would do that, after all....

 

See generally: https://wiki.unraid.net/Cache_disk

 

Edited - got rid of section where I was probably wrong about something. Per above it looks like it IS okay to use cache drive for other purposes.

I'm not entirely sure if it works out like I want it to. But since I'd like to have fast storage for my VMs and maybe accessing large files over the 10G network my HDDs are (or might be in the future) not sufficiently fast.

 

The caching functionality in Unraid is write only afaik. By moving data to some part (maybe a partition) of the SSD I could in theory use the write cache and at least get close to something one could call "manual read caching".

 

From what I've read this is not a problem with 2 SSDs. One for the conventional caching and one as fast storage as an unassigned drive. I'm not sure why it shouldn't work on one SSD but neither am I sure on how to set it up.

  • Like 1
Link to comment

Using cache as fast storage is often done. I usually recommend keeping appdata, domains, system shares on cache and set to stay on cache so dockers / VMs don't have performance impacted by slower parity, and so dockers / VMs don't keep array disks spunup.

 

As for the risk of having things permanently on cache, you can have btrfs raid1 mirror in cache. And you can backup appdata and libvirt with CA Backup plugin.

 

You can also have multiple pools with 6.9 beta. I have a "fast" pool for appdata, domains, system shares, and raid1 mirror cache pool for caching user share writes and post-processing downloads.

  • Thanks 1
Link to comment
  • 1 year later...

I had a similar use case and managed to get everything working with a bit of extra research.

 

I started with just an NVME hard drive, everything was running on this for a couple of weeks while I waited for hard drives to show up.

I then added a new hard drive, and added it to the array. My array at the time had zero parity, no cache, 1 NVME, and 1 HDD

 

I roughly followed this video for the next steps but I'll explain below: 

 

 

Install the "Fix Common Problems" app.

Then go to Tools -> Docker Safe New Perms.

Check, yes I want to do this. and then hit apply.

 

Install the "Unbalance" app.

Open it from Plugins -> click on the unbalance icon -> enable unbalance server -> open web UI

Select my NVME drive as "from", and the new HDD as the "to"

Hit "Plan". there should be no errors because we did the fix common problems step.

Hit "Move". After this, all the data should be on the new HDD.

 

Stop the array

Go to Tools -> New Config -> Apply

Go to Main and put your drives where you want them (In my case, I set the NVME as a cache drive, and the HDD as the single Array device.

Start up the array

 

At this point everything was working as I expected.

Link to comment
  • 2 months later...

After running the fix common problems docker safe permissions thing (excluding appdata as default selected) I'm still getting errors in the unbalance:

image.png.4f368ba434380242550182b61973ba73.png

 

    There are some permission issues with the folders/files you want to transfer
    4178 file(s)/folder(s) with an owner other than 'nobody'
    4177 file(s)/folder(s) with a group other than 'users'
    2884 folder(s) with a permission other than 'drwxrwxrwx'
    17667 files(s) with a permission other than '-rw-rw-rw-' or '-r--r--r--'
    You can find more details about which files have issues in the log file (/boot/logs/unbalance.log)
    At this point, you can transfer the folders/files if you want, but be advised that it can cause errors in the operation
    You are STRONGLY suggested to install the Fix Common Problems plugin, then run the Docker Safe New Permissions command

Any ideas?

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  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.