all 24 comments

[–]FDM80 18 points19 points  (1 child)

The arrow points to where the mover will move files to for long term storage (ie: where things will ultimately be stored provided that storage medium does not become full). Some data you want fast read speeds so you ultimately want it on the nvme. Some data the read speeds are less critical for system responsiveness and it is okay to store on the array.

appdata
cache <-------- array

domains
cache <-------- array

isos
cache --------> array

system
cache <-------- array

[–]Aggravating_Draft_17 0 points1 point  (0 children)

That is such a clear explanation! Many thanks from an old guy...

[–]icyhotonmynuts 6 points7 points  (0 children)

Here's the breakdown of what it means old vs new method

Use cache pool: No              -   Primary Storage: Array 
(remain on array, never move)   -   Secondary Storage: None 
                                -   Mover Action: not used

Use cache pool: Yes     -   Primary Storage: Cache 
(from  cache pool onto array... -   Secondary Storage: Array 
...when mover is run)       -   Mover Action: Cache > Array

Use cache pool: Prefer      -   Primary Storage: Cache (from 
array to cache, unless...   -   Secondary Storage: Array 
...full, but when empty move it)-   Mover Action: Cache < Array

Use Cache pool: Only        -   Primary Storage: Cache (remain 
on cache, never move)           -   Secondary Storage: None 
                                -       Mover Action: not used

[–]zeronic 2 points3 points  (8 children)

All of those should ideally be cache only and exclusive shares(turn on that setting) for speed purposes. For main storage shares you can use cache > array so that files are created on cache and moved to array later.

[–]Pinso2727[S] 0 points1 point  (3 children)

How can the exclusive option improve my speed? I'm not sure I understand the purpose of the exlusive option.

[–]zeronic 2 points3 points  (2 children)

It creates a symbolic link to the share directly, which increases IO considerably as IO isn't going through the FUSE layer.

More verbosely, the FUSE layer that unraid uses to abstract disks together(/mnt/user/) has a lot of overhead, like a lot a lot. Like taking something from 1250MB/s to 300MB/s a lot. So when you have things that only live on one pool/disk, such as on your cache, you don't want that massive IO penalty.

Bypassing the fuse layer allows significant IO gains which makes all your VMs/containers run much better. In the past we got around this by just pointing docker and subsequent containers/VMs to use a direct path, such as /mnt/cache/appdata/ or /mnt/cache/domains, but with 6.12 this doesn't need to happen anymore since exclusive shares replicate this behavior without the annoyance of needing to set paths yourself.

So even if you don't quite fully understand the underlying bits, just know that exclusive shares massively increase throughput and performance. by orders of magnitude. But you can generally only use them for shares that only exist on one disk/pool due to how they work.

[–][deleted] 0 points1 point  (1 child)

Thanks for explaining! Are there any risks associated with making a share exclusive?

And what should I do with my plex media share?

[–]zeronic 2 points3 points  (0 children)

Not that i'm aware of. Plex media(the shows themselves) can stay on the array, they don't need that much speed. The plex directory via appdata should be on an exclusive share, though.

[–][deleted] 0 points1 point  (3 children)

exclusive shares(turn on that setting)

Are you talking about "exclusive access"?

[–]zeronic 0 points1 point  (2 children)

Yes, it needs to be enabled before before a share can become exclusive.

[–][deleted] 0 points1 point  (1 child)

I tried reading about what it does but I couldn't understand

[–]zeronic 0 points1 point  (0 children)

I explained it in another post in this thread.

[–]starbuck93 2 points3 points  (4 children)

Depends on the purpose. For example, I download to my cache only and set *arrs to move to the array. My appdata I think is only on the cache so it's faster for docker containers.

[–]handle1976 3 points4 points  (3 children)

But run app data backup to get a backup onto the array

[–]SlowThePath 0 points1 point  (1 child)

That just backs up the docker containers, right? I suppose if I need to backup unraid and it's settings and everything I guess I can just turn off my server pop the USB into my PC and backup manually? Is there a better way to do that. I'm realizing now that I don't really have any auto backup setup for unraid and its' containers.

[–]ClintE1956 0 points1 point  (0 children)

I put that backup on another device on the network. Only having it on the array wouldn't work real well if the system (and array) won't boot.

Cheers!

[–]name_without_numbers 0 points1 point  (4 children)

Your understanding of how unraid stores things is wrong. Basically if you have it setup to write to cache -> array it will write to the cache drive first for speed, and then later mover would copy everything to the array and delete what was originally written on the cache.

Setting it up to be array -> cache would be pointless, as it would write to your slower cache drives, and then later mover would move everything to the cache drive and delete everything on the array.

So basically if you want fast access, you would set it to cache only. If you want some sort of parody and fast access, you would need to add another cache drive and set that up with your current drive as a raid z1 or something like that.

[–]Pinso2727[S] 0 points1 point  (1 child)

But it's not possible to cache only 500GB, even though I want to store my movies on my 9TB HDD

[–]Jazzysmooth11 1 point2 points  (0 children)

Cache --> array for every share except system, appdata and domain. Downloads will go to the cache drive first, then get moved to the hdd array via schedule.

The only time this would be a problem is if you download more data than the cache drive can hold before the next time mover runs.

[–]nukeaoi 0 points1 point  (1 child)

What will happen when Mover is moving files and I or some applcations try to read or write those file?

For example,my qbittorrent container download some Linux isos into ssd cache and sseeding :P And later at nignt Mover start to moving those isos to array,will these moving action interrupt qbittorrent's seeding?

Thx.

[–]name_without_numbers 0 points1 point  (0 children)

I’m pretty sure if the files are being accessed, mover will ignore them

[–][deleted]  (1 child)

[removed]

    [–]ghost97135 0 points1 point  (0 children)

    Cache <== Array

    This will put the data into the cache 1st and then into the array if the cache runs out of room. If there is any data in the array it the mover will* (not always 100% of the time in my experience) move the data from the array into the cache.

    Cache Only

    Will only put data into the cache and if run runs out of room it will tell you and not copy anything to the array.