Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Cache Mover Logic

Featured Replies

I'm running into a problem with the cache drive. I have 3 files totalling 13 GB sitting on the cache drive, waiting to be moved. Problem is, the first disk in the array that has a matching folder only has 2GB of free space. The share split level is set to 1, and I manually create folders on the drives as I need them. There is a matching folder on drive 3 with plenty of free space, it already has files in it. The mover refuses to use drive 3, and kicks back an out of space error. I don't want that folder automatically created on just any disk, only the ones where it already exists, or I create, thus the split level 1. I have the allocation set to most free, but it still wants to move it to the drive with no space. Am I expecting the system to do something logical that isn't programmed in to the logic?

 

Jonathan

What's the share's "Included disks(s)" set to?

  • Author

All shares include/exclude lines are blank. I manually create a new folder on the individual disks when I need them. Should I explicitly add all the disks to the include line?

I think you might have a misunderstanding of how user shares work.  First, "manually" creating folders is not going to affect anything having to do with which disk is used to create the next object on.  I need to know what your share structure looks like & what you are trying to accomplish.

  • Author

Ok, I'll bite. User shares allow a single mount point for multiple files and folders across disks. Each unique root folder is exported as a share, and all disks that contain that root folder name contribute their file structure under that name to the single mount point.

 

disk1/share1/sub1/content

disk2/share1/sub2/content

disk3/share2/sub3/content

disk4/share2/sub4/content

disk5/share1/sub1/content

browsing to server\\share1 contains both sub1 and sub2 folders, and all their contents, inclusive of disk5's content in sub1 folder.

browsing to server\\share2 contains both sub3 and sub4 folders...

 

I have an issue where I wrote content to the user share \\server\share1\sub1 with caching enabled, and disk1 was too full, so instead of flushing the cache to the next available drive (disk5) it moved part of the first file, and created zero byte files for the other 2, and left the original files on the cache drive (thank goodness). I manually moved the files to disk 5 using MC, and everything is fine, but I wanted to know why the cache mover didn't know that I wanted it to fill the next available folder? I have it set to Most-free.

It's because you have split level set to 1.

 

So let's say you are trying to create //server/share1/sub1/foobar.dat

 

With split level set to 1, that means that whichever disk the directory 'sub1' is created on, any objects created within 'sub1' (or below) will be created on the same disk that 'sub1' is on.  To determine this, it will look for the presence of 'sub1' on each disk, starting with disk1, until it finds it.  It then uses that disk to create foobar.dat on.

 

Suppose you started out with an empty 'share1'.  When you create 'sub1', the system will allocate which disk to create 'sub1' according to allocation policy, included disks, excluded disks.  But once 'sub1' is created, all objects created within 'sub1' will be on that same disk, and 'sub1' itself will not be created by the system on any other disk.  Of course you can manually create them (as you have done), but this will not change the rules by which the system chooses which disk to create objects under 'sub1'.

 

To let objects under 'sub1' get created on multiple disks, the split level of the share must be 2 or greater.

 

Note: in an upcoming release we will be getting rid of the 'split level' field in the share config.  Instead what we are going to do is let you define a kind of path in the share name.  For example, suppose we have a Movies share, and we want the share itself to span all the disks, but once a directory under that share is created, all objects under that directory will be on the same disk.  (This is the case where you would set split level to 1 currently.)  Instead, you would specify this as the share name:

 

Movies/title

 

The 'title' is just a placeholder to tell the system the split level.  If for example, you have your titles organized by genre instead, then you would name the share this:

 

Movies/genre/title

 

In effect, this is defining the structure which is permitted to span disks.  [As far as implementation is concerned, we just count the '/' characters to determine the split level.]

 

Anyway, I think this will make split level easier to understand.

  • Author

Ok, I set split level to 1 so it wouldn't create a sub1 folder on its' own. I had split level set higher before, and it was creating new root share folders even on disks I had set to exclude. All I wanted to do was to only allow folders to be created by me manually, and allow unraid to fill the folders based on my pre-existing structure. So, if I set split level higher, will it still create folders seemingly on whatever disk it feels like? I spent hours manually untangling the mess it made.

Ok, I set split level to 1 so it wouldn't create a sub1 folder on its' own. I had split level set higher before, and it was creating new root share folders even on disks I had set to exclude.

The only way, barring a bug of course, for it to create an object outside the 'excluded' mask is if the object's parent directory already exists on a disk outside the 'excluded' mask.

 

All I wanted to do was to only allow folders to be created by me manually, and allow unraid to fill the folders based on my pre-existing structure. So, if I set split level higher, will it still create folders seemingly on whatever disk it feels like? I spent hours manually untangling the mess it made.

What do you gain by manually creating your own directories?  Put another way, what are you trying to accomplish that can not be done using the user shares as they are designed?

 

 

 

  • Author

I gain organizational control.

 

When I first set it up I very meticulously assigned disks to the include and exclude, set the split level to 2, and started copying files to the user shares. Things quickly got out of control, instead of filling the disks in an organized fashion, it created folders and files across the entire array, and I spent hours with MC in a telnet session consolidating related content. After I spent all that time, I concluded that the include and exclude were not working for me, and the split level had to be wrong as well, because folders were being created on disks that were blank, even though there was plenty of room on the previous disks. So I deleted all the include/exclude entries, and set the split level to 1. Everything was working fine until one of the drives totally filled up, and the copy operation to the user share didn't tell me it was full, it just put the files on the cache drive and left them there.

 

Now that I have the folder and disk structure pretty well sorted out, I am hesitant to give folder creation control back to the share logic, I would rather get a disk full error, and allow me to create the needed folder on the drive of my choice. I (wrongly) thought that the user share would automatically include for writing the folders that show up for reading.

Archived

This topic is now archived and is closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.