Jump to content

[Now NOT solved] MOVE from cache doesn't work when drive full.


Recommended Posts

I have a PLEX folder on DISK 1, and a PLEX folder on DISK 2, and the share is set up for "split directory when required"

 

DISK 1 is now full. That's why UNRAID made the DISK 2 folder and began using that.

 

However, I changed the UNRAID to use the CACHE drive, and began to copy files to the share again.

 

But, when I press MOVE,  it's trying to move the files to DISK 1, not DISK 2, even though the share is set up for a "split".

 

Jul 1 11:16:10 UNRAID shfs: copy_file: /mnt/cache/plexMedia/readyForMediaLibrary/..... (28) No space left on device
Jul 1 11:16:10 UNRAID shfs: copy_file: /mnt/cache/plexMedia/readyForMediaLibrary/..... (28) No space left on device
Jul 1 11:16:11 UNRAID shfs: copy_file: /mnt/cache/plexMedia/readyForMediaLibrary/..... (28) No space left on device

etc.

 

Now I can't get the media on the CACHE drive into the array because it's trying DISK 1....not DISK 2.
 

So, I this a bug in UNRAID?????

 

 

[SOLVED]

So, I must have set the minimum space to 0KB, which was causing the error. I set the share's minimum free space to 5GB, knowing I'll never get a file larger than that, potentially, and the MOVE function is working again.

 

(I think I read about free space somewhere in the docs now I think about it.)

 

image.thumb.png.eac8746638d2af18ac55ec8a0730da98.png

 

 

[Nope, NOT solved]. I've set a 5GB limit and when I MOVE from the cache it does this:

 

image.thumb.png.df51d080fb1fb1a5d7790672a3041e8f.png

 

Only 1MB left, when the limit it clearly 5GB.

 

There's a bug somewhere in UNRAID.

 

I'm MOVING while I'm uploading media to the array, which shouldn't affect it because the CACHE is being cleared while new data is being written. And, It should know there's a 5GB limit on DISK1 and move it to DISK2.

 

 

Edited by AndrewMc
Link to comment
  • AndrewMc changed the title to [Now NOT solved] MOVE from cache doesn't work when drive full.
4 hours ago, AndrewMc said:

I'm MOVING while I'm uploading media to the array, which shouldn't affect it because the CACHE is being cleared while new data is being written. And, It should know there's a 5GB limit on DISK1 and move it to DISK2


A few points are worth raising that might be relevant:

  • unRaid never automatically moves files between array drives - once a file is placed on a drive that is where it stays which can matter if the file is growing in size.   It takes manual action by the user to get it moved to another drive.
  • the check for free space is made when a file is first created and takes no account of the size of that particular file (and thus the recommendation for the minimum free space setting to be larger than the biggest file you expect to be placed on the disk).

it sounds as I you might need to manually move some files from disk1 to disk2 to get things working better.

Link to comment

Hi,

 

It's not the array drives causing the issue. It's when files move from the CACHE to the ARRAY using the MOVE command that has the issue. I let UNRAID do all of the folder splitting between drives, but in this case, something is not working with the MOVE command.

Edited by AndrewMc
Link to comment
1 minute ago, AndrewMc said:

Hi,

 

It's not the array drives. It's when moving from the CACHE to the ARRAY that has the issue. I let UNRAID do all of the folder splitting between drives, but in this case, something is not working with the MOVE command.

You mentioned you were MOVING while uploading media to the array which is confusing.

 

if you think mover is not doing its job then maybe turning on mover logging under Settings->Scheduler might provide some useful information in the syslog on what is happening under the covers.  If it is not the mover function you are talking about then more detail is going to be required.

Link to comment
1 minute ago, AndrewMc said:

Hi,

 

Thanks, I'll turn on the log for the MOVER and take a look. I'm copying a large chunk of files so I'll keep an eye on it. Not sure where to find the log but I'll have a hunt around for it.

The entries go to the syslog.  You can access that via the ‘log’ icon at the top right of the GUI.   It is also one of the files that are included n the zip created via Tools-Diagnostics.

Link to comment

Ok, thanks. The GUI button is what I've been using to monitor it. I'm checking it now.

 

On another topic, I wish UNRAID had a plug-in that was simple to use to upload to Google Drive, not their cloud storage. The current plug-in seems very convoluted and even though I know what I'm doing (mostly) it still didn't work. My QNAP has a Hybrid Backup Sync which does it all for you, which is nice, but I really want to support UNRAID.

Edited by AndrewMc
Link to comment

Ok, so the problem exists when using FTP to transfer files to UNRAID.

 

It could be the end-point of the FTP connection that's incorrect.

 

I'm uploading via FTP to:

/mnt/user/plexMedia/

 

Potentially /user/ is the wrong directory and UNRAID isn't looking there to split the directory between physical disks.

 

I don't want to upload to the CACHE directory and I want to go directly to the array instead.

 

The log shows the failure due to a full disk:

 

MOVE is working:

Jul 1 17:15:36 UNRAID move: move: file /mnt/cache/plexMedia/TV Shows/...
Jul 1 17:20:51 UNRAID move: move: file /mnt/cache/plexMedia/TV Shows/...
Jul 1 17:21:26 UNRAID move: move: file /mnt/cache/plexMedia/TV Shows/...

...

But the disk gets full and the FTP transfer fails:

Jul 1 17:31:58 UNRAID vsftpd[6454]: connect from 192.168.0.100 (192.168.0.100)
Jul 1 17:31:58 UNRAID vsftpd[6454]: [qnap] OK LOGIN: Client "192.168.0.100"
Jul 1 17:31:58 UNRAID vsftpd[6456]: [qnap] FAIL UPLOAD: Client "192.168.0.100", "/mnt/user/plexMedia/Movies/...", 8944 bytes, 9079.39Kbyte/sec
Jul 1 17:31:58 UNRAID vsftpd[6457]: connect from 192.168.0.100 (192.168.0.100)
Jul 1 17:31:58 UNRAID vsftpd[6457]: [qnap] OK LOGIN: Client "192.168.0.100"
Jul 1 17:31:58 UNRAID vsftpd[6459]: [qnap] FAIL UPLOAD: Client "192.168.0.100", "/mnt/user/plexMedia/Movies/...", 8944 bytes, 8876.40Kbyte/sec

 

So, who knows the correct upload end-point that UNRAID is looking at to split directories between disks???

 

Cheers!!

Edited by AndrewMc
Link to comment

 

11 hours ago, AndrewMc said:

Only 1MB left, when the limit it clearly 5GB.

The "minimum space free" setting is the minimum space that UNRAID will look for before copying a file from the cache to a particular disk available to a share. It will not ensure that this is the minimum amount of space that is always available on a share.

 

For example (all numbers made up for this example), if you rip a BluRay, create 4.9GB file, then write it to the server into the cache enabled plexMedia share, UNRAID will actually write it directly to the cache in the plexMedia directory. When the mover kicks off, it will scan Disk1, discover that it has a plexMedia directory that could be used, and initiate the minimum-disk-space-free check. It discovers that there is 5.1GB of free space on Disk1, so the min free space passes (more than 5GB free is "good to go"), and moves your new 4.9GB file to Disk1 in the plexMedia share, leaving 0.2GB free on Disk1. Obviously, your tolerances were even tighter than my made up example, however, it's not a bug.

 

Link to comment

So guys....

 

If I'm FTPing data to the server, how do I get it to the CACHE share?

 

The issue is that if I have a share called "plexMedia" and I want to upload to the CACHE, the directory does not exist on the CACHE, because the MOVER has moved it to the array. So, the FTP upload fails with 'directory not found'.

 

If I go directly to a disk in the array it might be full, so FTP fails.

 

I'm sure there's a way to upload a folder, that doesn't change, that UNRAID can split to other disks on the array if it gets full.

 

Any help would be appreciated.

Link to comment

The user shares are at /mnt/user, so that user share is at /mnt/user/plexMedia. Typically you don't want to work directly with the disks, just with the user shares, and let the user shares take care of which disk the file goes to.

 

If the plexMedia share is set to cache-yes then it will go to cache if there is more than Minimum Free as already discussed. Then it will be moved to the array when mover runs.

Link to comment

Fantastic!! Thank you. I originally had it pointing to /mnt/user/plexMedia but didn't quite know how it was managing it. ie. The same files appear on DISK 1, 2, 3 etc. Perhaps the /mnt/use/plexMedia files are just hard links to the physical files on the array. I'm thinking that might be the case.

Link to comment
7 minutes ago, AndrewMc said:

Perhaps the /mnt/use/plexMedia files are just hard links to the physical files on the array. I'm thinking that might be the case.

No, the user shares are just a combined view of the disks. The top level folders on pools and array are combined into user shares named for those folders. Conversely, creating a user share creates top level folders named for the share on pools or array as needed according to the settings for the share.

Link to comment

Ok, thanks for the explanation. Looks like my 8TB of files copying onto the array will span itself across multiple physical 4TB disks when I upload to /mnt/user/plexMedia. I'll keep an eye on it as the transfer takes place.

 

 

Edited by AndrewMc
Link to comment

Just reviewed the thread and there are some other considerations not discussed.

 

Your pool named "cache" also has a Minimum Free setting which you access by clicking on the first (or only) disk in the pool. It works similar to Minimum Free for a user share. If the user share is cache-yes or cache-prefer, and cache has less than Minimum, an array disk will be chosen instead.

 

According to your screenshot, that user share is set to Fillup, so it will use one array disk until it reaches Minimum before it will choose another. Then it will use the next, etc. Not sure if that is what you intend or not since you seemed to think something else would happen when you said:

14 minutes ago, AndrewMc said:

8GB of files copying onto the array will span itself across multiple physical disks

Another setting for Allocation Method is Most-free. That will choose the disk with the most free space when it chooses a disk for a file (depending on other settings such as excludes or Split Level). That setting doesn't perform as well as others though.

 

The default setting for Allocation Method is Highwater. It is a good compromise between using all disks without constantly switching between disks just because one disk temporarily has more free space.

Link to comment
30 minutes ago, AndrewMc said:

the others are older 2TB drives...that may be a bit prone to failure

In order to reliably rebuild a disk, Unraid must be able to reliably read every bit of parity PLUS every bit of ALL other disks. Parity by itself can recover nothing.

 

So, any disk in your array that is "prone to failure" compromises your ability to recover data from other disks.

 

Setup Notifications to alert you immediately by email or other agent as soon as Unraid detects a problem. Unraid monitors SMART for your disks and will notify you if there are problems.

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.

×
×
  • Create New...