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.

Mover not respecting minimum free space?

Featured Replies

For all shares I have set the following:
Minimum free space = 50GB
Allocation Method = High-Water

Problem: Mover fills array disks to 100%. Drives are filled with only 2GB left...

The files that are moved are way less than 50GB, so I don't understand why mover keeps writing when a drive hits that 50GB threshold. I don't want mover to fill my disks to 100%. I want to leave some free space. And I choose 50GB because Minimum Free Space also applies to the cache drive... I want to be able to fill my 1TB cache drive

  • Community Expert

Are you using the Mover tuning plugin? Some issues reported with that.

  • Author
2 minutes ago, Kilrah said:

Are you using the Mover tuning plugin? Some issues reported with that.

No, I stopped using that plugin after upgrading to Unraid 7.0.0. Mover was completely broken at that point. I tried it once again like a month later, but still had problems.

I'm currently using mover manually when I see my cache drive is full.

  • Community Expert

Remember that Split Level will over-ride Allocation Method and Minimum Free Space settings if there is any contention between them so this could explain what you are seeing.

If it is not that then I suggest you post your diagnostics and mention a share that you believe is not behaving correctly plus the path for a file you believe is going to the wrong disk.

  • Author

@itimpi

I have always used this setting:
Automatically split only the top two directory levels as required


Why does Split level not respect Minimum Free Space setting? I don't understand why this just ignores "keep this amount of space free". If the disk is full it goes on to the next disk. So why not "oh keep 50GB free, then disk is full now, let's move on". What's the logic here?

  • Community Expert
11 minutes ago, FreakyUnraid said:

@itimpi

I have always used this setting:
Automatically split only the top two directory levels as required


Why does Split level not respect Minimum Free Space setting? I don't understand why this just ignores "keep this amount of space free". If the disk is full it goes on to the next disk. So why not "oh keep 50GB free, then disk is full now, let's move on". What's the logic here?

Because that is not how it is defined to work! If you set split Level then you are saying it MUST be honoured as it is the highest priority setting for selecting drives. Whether Limetech can ever be persuaded to relax this I have no idea.

  • Community Expert
13 minutes ago, FreakyUnraid said:

Why does Split level not respect Minimum Free Space setting? I don't understand why this just ignores "keep this amount of space free". If the disk is full it goes on to the next disk.

Split level is there to say "everything in that level must be on the same drive" so by definition it cannot go to the next disk. Maybe it should respect the min free space but if it did it'd just be by being "out of space" earlier.

Seen someone post a script to move an entire folder to another drive when there isn't enough space for it recently.

Edited by Kilrah

  • Community Expert

Something that may not be obvious is hysteria if you manually create folders for a share on at the maximum depth allowed by the Split Level, then I have found that Allocation method will be used to decide which of the drives contains that level to use. Whether this by design or a ‘quirk’ of the implementation I am not sure but I have found it useful. I could see this being something that OP could use?

  • Author
2 hours ago, itimpi said:

Because that is not how it is defined to work! If you set split Level then you are saying it MUST be honoured as it is the highest priority setting for selecting drives. Whether Limetech can ever be persuaded to relax this I have no idea.

2 hours ago, Kilrah said:

Split level is there to say "everything in that level must be on the same drive" so by definition it cannot go to the next disk. Maybe it should respect the min free space but if it did it'd just be by being "out of space" earlier.

Seen someone post a script to move an entire folder to another drive when there isn't enough space for it recently.


I understand split level somewhat , but I don't understand why this gets priority over the set amount of free space. If no free space is set and the drive is full then mover will move to another drive, correct? If I have a 2TB drive and want 100GB free space as a minimum, then mover should just see this as a 1.9TB drive and move on when moving a file goes over that threshold. Just like it would when a drive is full. Ignoring the set free space seems so illogical to me? I now end up with drives that only have 2GB of free space left... How does everyone else handle this?

Is this some old logic left from the early days? I can't imagine you would want this bahaviour when you don't use normal HDD's, but only SSD's? With the current addition of pools etc. I mean, those don't really like it when you go over 80% or something, right? But I'm getting distracted here.

Question I have now: How do I configure Unraid to get it to respect the set amount of free space? Is this even possible or do I have to use Unbalance every time manually?

2 hours ago, itimpi said:

Something that may not be obvious is hysteria if you manually create folders for a share on at the maximum depth allowed by the Split Level, then I have found that Allocation method will be used to decide which of the drives contains that level to use. Whether this by design or a ‘quirk’ of the implementation I am not sure but I have found it useful. I could see this being something that OP could use?


This is mostly *arr media files, so folders are not created by me manually.

  • Community Expert
7 minutes ago, FreakyUnraid said:

If no free space is set and the drive is full then mover will move to another drive, correct? If I have a 2TB drive and want 100GB free space as a minimum, then mover should just see this as a 1.9TB drive and move on when moving a file goes over that threshold.

The problem is that you can have only one condition of these two as being primary.

(1) all files below the split level are on one disk.

(2) if the Minimum Fee space is not available on the drive initially selected, the file will be written on the next disk that meets this requirement.

The two are mutually exclusive!

Now a quick bit of background (as I remember it). The Split Level restrictions came about back in the days of much smaller hard disks (Think of 100GB!!!). DVD's can have space for 8.5 GB (Dual layer) of video on them. However the max size for any file on a DVD is 1.00 GB (1,073,741,824 bytes) . When a video (in the .VOB files in VIDEO_TS folder) requires more than than that amount of space an second file is started after that exact number of bytes is written to the first file! When playback occurs the two files are concatenated together seamlessly. What was happening was the folks were saving movies with the directory structure of a DVD on their Unraid server because that is what the media players needed back then. (If they use an .ISO format, no problem as it is a single file.) If, in the middle of the transfer of the .VOB files, the Min Free Space requirement was met, the next file was written on the next disk. Guess WHAT then happened??? Seamless playback was almost impossible. And the break could happen in the middle of a word! So the Split Level parameter was added to force all of the files onto one disk and it was made primary!

  • Community Expert

2 hours ago, FreakyUnraid said:

I understand split level somewhat , but I don't understand why this gets priority over the set amount of free space. If no free space is set and the drive is full then mover will move to another drive, correct?

2 hours ago, FreakyUnraid said:

I now end up with drives that only have 2GB of free space left... How does everyone else handle this?

Split level will always require occasional manual intervention. As said the whole point of it is to ensure all files below a certain level are on the same drive, so when enabled it can't decide to put them somewhere else or the point would be moot.

So either don't use split level and let things go wherever, or use it knowing sometimes you may need to manually move a whole folder to another drive in order to give enough room for a growing one, etc.

See example here, found the thread.

  • Community Expert

Keep in mind, if your Minimum Free Space is 50GB and you are writing a 49GB file, it will leave you with 1GB left.

The name might be a little deceiving because it's really, "Free space needed to write one last file"

If you truely wanted 50GB of free space, you'd want to set it to at least double the amount of the largest file you plan on writing to the disk... If you average 50GB files, make min-free space 100GB so when that 50GB file gets written, you have 50GB left.

IMO there is no reason to leave 50GB of free space on an array disk. Fill them up 100%

Edited by MowMdown

  • Community Expert
8 hours ago, FreakyUnraid said:

I want to be able to fill my 1TB cache drive

I would strongly suggest NOT filling your cache drive to the max, this will cause issues if your docker.img and appdata are on that same cache disk. Docker will stop working if that happens. Unraid can even crash if docker stops working.

Edited by MowMdown

  • Community Expert
39 minutes ago, MowMdown said:

IMO there is no reason to leave 50GB of free space on an array disk. Fill them up 100%

Unless you're using split level, then you always want some free space left to make room for new/upgraded files.

If you truely wanted 50GB of free space, you'd want to set it to at least double the amount of the largest file you plan on writing to the disk... If you average 50GB files, make min-free space 100GB so when that 50GB file gets written, you have 50GB left.

This won't help if using split level.

Edited by strike

  • Community Expert
4 hours ago, FreakyUnraid said:

If no free space is set and the drive is full then mover will move to another drive, correct?

Only if the Split Level setting allows it to do so. If it does not then the file cannot be written to the array and you will get an ‘out of space’ error returned.

  • Author

Well, I am absolutely not an expert but also not a complete noob so I'll stop arguing about the logic behind this. Fact is, it causes issues.

I believe Unraid has to do a better job of explaining these settings to users. I followed Spaceinvader One's video's when setting up my server. This is the setting for TV Shows usershare. My current settings just seem to break Mover. Mover doesn't even move on to another drive. It keeps trying to move the same (.partial) file to this drive for a couple of hours now...

image.png

And the log gets filled with "(28) No space left on device". Mover seems to not be able to handle this situation?

This doesn't seem user friendly at all... I have to find this out by going in to the logs and see what's going on. No notification. I then have to manually, in console (also not user friendly), stop mover and now go use a third party plugin to empty out my drive before I can continue Mover.

I really would like to hear what the settings for a TV Shows usershare should be, because to my recollection all youtube video's recommend the same split level settings?

On 6/27/2025 at 3:50 PM, Frank1940 said:

Now a quick bit of background (as I remember it). The Split Level restrictions came about back in the days of much smaller hard disks (Think of 100GB!!!). DVD's can have space for 8.5 GB (Dual layer) of video on them. However the max size for any file on a DVD is 1.00 GB (1,073,741,824 bytes) . When a video (in the .VOB files in VIDEO_TS folder) requires more than than that amount of space an second file is started after that exact number of bytes is written to the first file! When playback occurs the two files are concatenated together seamlessly. What was happening was the folks were saving movies with the directory structure of a DVD on their Unraid server because that is what the media players needed back then. (If they use an .ISO format, no problem as it is a single file.) If, in the middle of the transfer of the .VOB files, the Min Free Space requirement was met, the next file was written on the next disk. Guess WHAT then happened??? Seamless playback was almost impossible. And the break could happen in the middle of a word! So the Split Level parameter was added to force all of the files onto one disk and it was made primary!

I kind of understand the problem you describe, but I can also give some counter arguments to this with my noob level of knowledge, but I'll just shut up now.

On 6/27/2025 at 6:49 PM, MowMdown said:

Keep in mind, if your Minimum Free Space is 50GB and you are writing a 49GB file, it will leave you with 1GB left.

The name might be a little deceiving because it's really, "Free space needed to write one last file"

If you truely wanted 50GB of free space, you'd want to set it to at least double the amount of the largest file you plan on writing to the disk... If you average 50GB files, make min-free space 100GB so when that 50GB file gets written, you have 50GB left.

IMO there is no reason to leave 50GB of free space on an array disk. Fill them up 100%

Well that was basically my thinking with doing this. Most files are max ~25GB big. So with setting it to 50GB I would have enough space left and if a file goes over this I would move things around manually to balance things out a bit more. Currently this "free space" setting only seems to be for my cache drive? If the cache drive hits that limit, then it will start to directly write to the array... Like why is this setting also applied to the cache?

Fill them up 100%? So no data can be changed at all in the future, like metadata? Performance of the drive, or at least for some data, down the drain? Don't think that is smart. And what about the new options for SSD pools? Isn't the advice to only fill SSD's to max 80% capacity?

On 6/27/2025 at 6:10 PM, Kilrah said:

Split level will always require occasional manual intervention. As said the whole point of it is to ensure all files below a certain level are on the same drive, so when enabled it can't decide to put them somewhere else or the point would be moot.

So either don't use split level and let things go wherever, or use it knowing sometimes you may need to manually move a whole folder to another drive in order to give enough room for a growing one, etc.

See example here, found the thread.

Like I said, I followed Spaceinvader One's guides. I have this set for the TV shows share and I have seen several other tutorials that recommend the same setting for such a share. Also, the explanation in the GUI doesn't mention anything like this at all. It just explains how it will manage the creation of certain directories, but not that you should keep an eye on the drives and manually move things around when using these settings...

And again, this really seems like weird design. Mover can't even handle this split level situation?

On 6/27/2025 at 6:54 PM, MowMdown said:

I would strongly suggest NOT filling your cache drive to the max, this will cause issues if your docker.img and appdata are on that same cache disk. Docker will stop working if that happens. Unraid can even crash if docker stops working.

Don't worry, this is just my single ssd download cache. Appdata has it's own dedicated zfs pool. Because the mover tuner plugin went bad I have since then used the logic of just filling the download cache to ~90% and then manually hit mover. I have set notifications when the cache gets filled beyond 85% and then I go in and run mover over night manually before going to bed.

  • Community Expert
3 hours ago, FreakyUnraid said:

Well that was basically my thinking with doing this. Most files are max ~25GB big. So with setting it to 50GB I would have enough space left and if a file goes over this I would move things around manually to balance things out a bit more. Currently this "free space" setting only seems to be for my cache drive? If the cache drive hits that limit, then it will start to directly write to the array... Like why is this setting also applied to the cache?

Fill them up 100%? So no data can be changed at all in the future, like metadata? Performance of the drive, or at least for some data, down the drain? Don't think that is smart. And what about the new options for SSD pools? Isn't the advice to only fill SSD's to max 80% capacity?

The filesystem(s) allocate space reserved for metadata upon initial format. For example my 12TB disk formatted in XFS has almost 200GB reserved so that’s not going to be an issue. Secondly HDDs don’t suffer from performance issues when 100% full since it’s not NAND flash.

Cache has a separate “minimum free space” setting separate from the shares. The cache MFS is set in the cache pool settings. The share MFS is set in each of the respective share setting one for each share.

Also in the split level documentation it does have a note stating that “In the event of there being conflicts between the Minimum free space, Split Level and the Allocation method settings in deciding which would be an appropriate drive to use, the Split level setting always wins. This means that you can get an out-of-space error even though there is plenty of space on other array drives that the share can logically use.”

Edited by MowMdown

  • Community Expert
5 hours ago, FreakyUnraid said:

I really would like to hear what the settings for a TV Shows usershare should be, because to my recollection all youtube video's recommend the same split level settings?


That depends on what files and directories you want to keep together. For a TV show share, you probably wanted to keep all seasons of a show on the same drive, and that's why you set your current split level. If you want to continue with the same settings, you either have to be ok with moving files manually on almost full drives. Or you can test out my new script linked earlier in this thread, and let it take care of it automatically for you. I'm working on a plugin, but that isn't quite finished yet, so for now, the script and the user script plugin will have to do.

Or as @itimpi suggested, if it's not that important to you where the files go. You can relax the split level, maybe one directory up, so that individual seasons can go to different drives. Or choose the one that says split everything as needed, but then you have to be ok with files being scattered around different drives. But it also won't need any manual intervention.

Keep in mind that split-level also only applies to new files and directories, so either way, you'll have to do something about it manually on your full drives.

5 hours ago, FreakyUnraid said:

And again, this really seems like weird design. Mover can't even handle this split level situation?

I like the split-level function, because of my mild OCD :). But I agree with you that it could have been better implemented in mover. But I suspect that is not such an easy task. I've been moving things around manually for years before it came to a point where I had to do something about it. And recently, it became too much work as it has to be done daily if I want to keep my current split levels.

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

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.