How I fell in love with unRAID by Grumpy Reviewer


DesertSweeper

Recommended Posts

My ancient but trusty NAS4FREE server finally expired and I decided to build a new NAS for my home use. UNRAID is a compelling option - it has paid support and is an absolute breeze to set up. But it has one massive failing for me - that cache methodology is just plain horrible. Why on earth does it rely on a scheduled "mover"? Why not just update the storage array in idle time - or when it nears full? You go to copy a chunk of files and it all falls apart when it hits the SSD's capacity. And yes I get that you can turn it off, but do I really want to have to go and log in to the GUI and try to remember where that setting is each time I decide to dump the contents of my external drive or something? No I want what NAS4FREE gave me - a seamless box that lives in the depths of my store-room which I occasionally have to power down if there is going to be an extended power-outage. Like once a year. Damn but it is so close to being a perfect solution...back to NAS4FREE for me. Thanks for the trial version.

EDIT: After some patience and fine lovin' from forum members I have come to understand things differently

Edited by DesertSweeper
Changed my mind
Link to comment

Why is this your first post to our forum? There are solutions to the "dealbreaker" you mention, and probably solutions to any other problem you might encounter. There are a lot of friendly and helpful people here on this forum that give FREE support. Why haven't you taken advantage of it?

 

There is a plugin that will run mover based on how full cache is here:

 

https://forums.unraid.net/topic/70783-plugin-mover-tuning/

 

Another solution to your problem is more careful consideration of what you cache. Mover can't move to the slower array as fast as you can fill the faster cache, regardless of how frequently mover runs. So not caching some user shares or not caching very large transfers, for example are ways to deal with that.

 

I don't get why you haven't taken advantage of our forum. This user community is one of the very best on the internet, and one of the very best features of Unraid.

  • Upvote 3
Link to comment

If you are running into problems when the cache fills up, then that means you do not have things set up properly!    There are two easy things to do that will stop this happening:

  • Set the Minimum Free Space under Settings->Global Share settings to the value at which you want the system to start by-passing the cache.   This should as large (or larger) than the biggest file you expect to copy.    When the free space on the cache drops below this value then Unraid will start automatically by-passing the cache for new files.
  • install the Mover Tuning plugin that allows for finer-grain control of when mover should run than the built-in simple schedule option.

With those setup to your preferences everything becomes automatic with no manual intervention needed.

Link to comment
2 hours ago, DesertSweeper said:

My ancient but trusty NAS4FREE server finally expired and I decided to build a new NAS for my home use. UNRAID is a compelling option - it has paid support and is an absolute breeze to set up. But it has one massive failing for me - that cache methodology is just plain horrible. Why on earth does it rely on a scheduled "mover"? Why not just update the storage array in idle time - or when it nears full? You go to copy a chunk of files and it all falls apart when it hits the SSD's capacity. And yes I get that you can turn it off, but do I really want to have to go and log in to the GUI and try to remember where that setting is each time I decide to dump the contents of my external drive or something? No I want what NAS4FREE gave me - a seamless box that lives in the depths of my store-room which I occasionally have to power down if there is going to be an extended power-outage. Like once a year. Damn but it is so close to being a perfect solution...back to NAS4FREE for me. Thanks for the trial version.

Welcome to the forum!

Link to comment

One other solution is to install the excellent plugin 'ca auto turbo write mode' this plugin results in really good write speeds directly to the array, so no need to cache, I typically get 80MB/s writes and this is on old hardware.

It obviously comes at a cost, the cost being all drives need to be spun up, which the plugin does for you.

Sent from my CLT-L09 using Tapatalk

Link to comment

So already 4 suggestions from the forum for dealing with your "dealbreaker".

 

1:

5 hours ago, trurl said:

There is a plugin that will run mover based on how full cache is here:

 

https://forums.unraid.net/topic/70783-plugin-mover-tuning/

4 hours ago, itimpi said:

install the Mover Tuning plugin that allows for finer-grain control of when mover should run than the built-in simple schedule option.

 

2:

5 hours ago, trurl said:

Another solution to your problem is more careful consideration of what you cache. Mover can't move to the slower array as fast as you can fill the faster cache, regardless of how frequently mover runs. So not caching some user shares or not caching very large transfers, for example are ways to deal with that.

 

3:

4 hours ago, itimpi said:

Set the Minimum Free Space under Settings->Global Share settings to the value at which you want the system to start by-passing the cache.   This should as large (or larger) than the biggest file you expect to copy.    When the free space on the cache drops below this value then Unraid will start automatically by-passing the cache for new files.

 

4:

24 minutes ago, binhex said:

One other solution is to install the excellent plugin 'ca auto turbo write mode' this plugin results in really good write speeds directly to the array, so no need to cache, I typically get 80MB/s writes and this is on old hardware.

 

  • Like 1
Link to comment

Well yes I am back. And I don't peruse religious forums. And I do not live on forums - I seek a working solution for which I am more than happy to pay. Things are worse now. I am unable to get it to commit the contents of my SSD Cache to the main array. It is just sitting there at 499GB of 500GB. I have tried to manually trigger the scheduler, have set it to hourly, but one full day later and it is still sitting at full. I was patiently waiting for it to flush the contents so I could try the suggestions. When I view the main-array share from a client I see all the data, including that of the cache. So I assume it is transparently presenting a unified data-set. I have the original data on my backup so I guess I can wipe the whole lot and start again...

Edited by DesertSweeper
Link to comment
1 hour ago, DesertSweeper said:

Things are worse now. I am unable to get it to commit the contents of my SSD Cache to the main array. It is just sitting there at 499GB of 500GB.

 

I suspect you have a few things misconfigured.

 

Go to Tools - Diagnostics and attach the complete diagnostics zip file to your next post.

Link to comment
10 minutes ago, remotevisitor said:

Any bets that when you get the Diagnostics you will find that the cache has been set to ‘Prefer’ rather than ‘Yes’ so Unraid is trying to move files to the cache drive rather than from it?

Actually I tried everything including "prefer" and finally just turned it off - yesterday. But it still will not flush.

I think the best thing to do is just delete all the data and re-install it and start over with the cache disabled. Once all the data is restored, enable the cache and perform the recommended adjustments/plugins mentioned herein.

Edited by DesertSweeper
Link to comment

You have a share, name anonymized in the diagnostics as 'S----1'. It has some contents on disk1 and some contents on cache. But, it is set to cache-no currently. I suspect you had it set to cache-yes (or perhaps cache-prefer) previously but then set it to cache-no because you were filling cache.

 

Cache-no and cache-only shares are not moved. Cache-yes shares are moved from cache to array, and cache-prefer shares are moved from array to cache.

 

There is Help for most pages in the webUI. There is a Help toggle on the top bar which will turn on/off help for all pages. You can also click on the label for any setting to turn on/off help for just that setting.

 

The Use cache settings trip a lot of people up. Study this FAQ for more details about some of the nuances of this setting beyond what is explained in the Help:

 

https://forums.unraid.net/topic/46802-faq-for-unraid-v6/page/2/#comment-537383

 

Long story short, you must set that share to cache-yes or it won't get moved.

 

 

Link to comment
11 minutes ago, DesertSweeper said:

start over with the cache disabled. Once all the data is restored, enable the cache and perform the recommended adjustments/plugins mentioned herein.

Shouldn't be necessary to start over, but it is often recommended to not cache for the initial data load. As I said earlier:

17 hours ago, trurl said:

Mover can't move to the slower array as fast as you can fill the faster cache, regardless of how frequently mover runs. So not caching some user shares or not caching very large transfers, for example are ways to deal with that.

Caching and mover just get in the way if you are trying to load more data than cache can hold.

 

Sometimes people even recommend not having a parity disk until after the initial data load, since writing without parity is faster. Or just use the turbo write feature as recommended in one of the other posts.

 

Link to comment

Thank you constructor - I have now turned it back on and can see it is flushing. Many thanks again.

With regard to my opening statement and some of the snarky comments that followed I just want to say that this is a paid-product. It is not a hobbyist platform like freenas et al. And I stand by my opening statement that I believe the caching setup should just work out-of-the-box in a usable way. It is what I am willing to pay for. I believe an added cache should flush in the background in idle moments without you having to do anything. It just makes sense.

That aside I apologise for coming off as harsh and appreciate all the help received from those who give it.

  • Like 1
Link to comment
12 minutes ago, DesertSweeper said:

Thank you constructor

Not actually my user name, just as yours isn't Newbie.

 

You pay for a license to use the product, and currently (and as long as Unraid has existed), you also get free upgrades with your license. FREE support is from fellow users in this forum. Almost everyone you will encounter on the forum (including me and other moderators) are just users like yourself, and are volunteering their time and knowledge to help other users.

 

If you actually want PAID support, that can be negotiated with Limetech (the Unraid company).

 

As for how things should work, there is a lot of flexibility in the cache feature. It has evolved over the years to make it useful for things besides caching writes. Most people use their faster cache (often SSD) to install dockers and VMs to get better performance, for example. For those uses, the cache settings allow you to specify that those should not be moved from cache.

 

As you may have found with other things in computing, flexibility usually goes hand-in-hand with complexity. It could be a lot simpler if caching were not even offered, for example. It could be simpler if the cache pool only worked the way you probably thought to begin with, which is only useful for caching writes. Or it can have a little more flexibility that might require a little more effort to understand.

Link to comment

Thank you for clarifying. Wouldn't it be great if Limetech just had a tick-box during installation that said "I want to use {specified target} as a pure transparent caching drive." End of issues, no grumpy forum threads. No support requests.

In the world of enterprise computing a cache drive is just that - a high speed broker that is transparent. If you want to roll up your sleeves and play with VM's and the like - by all means dig in to the settings. But I am guessing the majority of home NAS users just want to accelerate their write speeds out-of-the-box.

Anyway enough of that. I will persevere 

  • Upvote 1
Link to comment
6 hours ago, DesertSweeper said:

But I am guessing the majority of home NAS users just want to accelerate their write speeds out-of-the-box.

IIRC, unRAID didn't have a cache drive feature initially. The reason I liked unRAID was the protection provided by the parity drive, and I think there's a case to be made that this was the main selling point of unRAID at the time. When the cache drive feature came out I decided not to use it for caching writes (and still don't) because I wanted the assurance that once I had written data to the server it was parity-protected.

 

Sure, the risk of cache drive failure before the data is moved is low, but for me the peace of mind outweighed the speed gain.

Link to comment

I don't think a "pure transparent caching drive" is achievable simply due to the limitations of hardware. Cache can be written faster than data can be moved to the array. If you try to write more than cache can hold then it will fill up before the data can be moved to the array. If you studied that FAQ link I gave, then the "normal" cache-yes setting will overflow to the array when you fill cache beyond its Minimum Free setting, but then it isn't really caching anymore.

 

In your initial post, you said

On 8/3/2019 at 6:02 AM, DesertSweeper said:

Why not just update the storage array in idle time

You have to actually have enough idle time so that the data can be moved. If you cache a large amount of data, it will take a large amount of idle time.

 

The default schedule is to move daily in the middle of the night. And the default Use cache setting is No. These defaults work, and even if you set it to Yes, the default schedule will work depending on how large your cache is and how much you write in a day. Anything else and I don't see how you can avoid digging into the details.

 

Perhaps a wizard of some sort that led the user through setting up some of this, but even that would require a certain amount of understanding on the part of the user. There is no magic that can make the hardware work any faster than it does.

 

As for what the majority want, it seems with recent youtube videos and such, a lot of new users are coming to Unraid expressly for the purpose of having VMs and the like.

Link to comment
15 hours ago, sonofdbn said:

When the cache drive feature came out I decided not to use it for caching writes (and still don't) because I wanted the assurance that once I had written data to the server it was parity-protected.

I installed two Samsung 500GB SSD's in a RAID-1 PCI-E dedicated card, to provide peace of mind for this issue. I typically dump between 100 and 200 GB of video data from my GoPro in one job that would typically fit in the cache.

Link to comment
15 hours ago, trurl said:

I don't think a "pure transparent caching drive" is achievable simply due to the limitations of hardware. Cache can be written faster than data can be moved to the array. If you try to write more than cache can hold then it will fill up before the data can be moved to the array. If you studied that FAQ link I gave, then the "normal" cache-yes setting will overflow to the array when you fill cache beyond its Minimum Free setting, but then it isn't really caching anymore.

 

In your initial post, you said

You have to actually have enough idle time so that the data can be moved. If you cache a large amount of data, it will take a large amount of idle time.

 

The default schedule is to move daily in the middle of the night. And the default Use cache setting is No. These defaults work, and even if you set it to Yes, the default schedule will work depending on how large your cache is and how much you write in a day. Anything else and I don't see how you can avoid digging into the details.

 

Perhaps a wizard of some sort that led the user through setting up some of this, but even that would require a certain amount of understanding on the part of the user. There is no magic that can make the hardware work any faster than it does.

 

As for what the majority want, it seems with recent youtube videos and such, a lot of new users are coming to Unraid expressly for the purpose of having VMs and the like.

On further reflection I absolutely agree with your analysis in the performance stakes. My thinking was clouded by a typical Cache-controller where the processing is off-loaded from the main cpu.

Link to comment

Lots of different ways to use the cache feature. Different people will have different use cases. I don't actually have any cache-yes user shares.

 

I have 2x250GB SSD cache as btrfs raid1 pool. Various configurations of btrfs raid are a builtin feature of the Unraid cache pool, so no RAID controller needed.

 

I have the usual "system" shares (appdata, domains, system) as cache-only (those shares are "prefer" by default) because I created them before the "prefer" setting was available and "only" is simpler for this use. These are just for dockers, I don't have any VMs because I don't need any.

 

I have a few cache-prefer user shares.

 

One of these is for DVR with Plex. Any recording I intend to keep long-term I manually move to different cache-no shares on the array. Others I just delete. I don't record a lot so I don't have any problems with filling cache, and the "prefer" setting will allow them to overflow to the array anyway.

 

I also have some shares which hold copies of a subset of my music and photos. I keep them on SSD cache so no disks will have to spin when they are accessed by other devices on my network.

 

All of my other user shares are cache-no. These shares are mostly written to by queued downloads and automated backup processes, so I am not waiting for those writes to complete anyway.

 

Other users will set all this up differently for their different use cases.

Link to comment

Since you're evaluating things, I highly recommend installing "Community Applications" which will greatly aid adding additional plugins & dockers.

 

Plugins I personally recommend:

Dynamic Cache Directories - keep directory scans from waking up your drives if you want to keep them spun down during inactivity

Dynamix SSD TRIM - if you have out-of-array SSD's

Recycle Bin - Makes deleting files from SMB shares non-destructive, purged on a scheduled or by request, configured per share

Unassigned Devices - Mount & manage non-array devices

DiskSpeed - since you're using older drives, this app I wrote will help you test to see if your drives are starting to degrade or if you're exceeding your drive controller's capacity and potentially bottlenecking yourself.

  • Like 1
Link to comment

I discovered "Spaceinvader One"  - a gold mine of tutorials. For now I have disabled the cache as I copy 20+ TB of data from external backup drives to the new server. Once I am back up and running I will roll-up my sleeves and go through all the suggestions in this thread and do things properly. Many thanks for all the suggestions.

  • Upvote 1
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.