[Plugin] Mover Tuning


Recommended Posts

On 3/3/2021 at 12:42 PM, brentdog said:

Just upgraded to 6.9 and subsequently upgraded the mover tuning plugin to latest.  Now it seems as if the plugin isn't used at all when the mover is invoked.  Everything gets moved when the mover is invoked even though I have the used space threshold set to 70%.  I see that there are still some debugging echo statements in age_mover script and none of these show up in the syslog (I have mover logging enabled).  I uninstalled and reinstalled the plugin and still just seems to use the base mover.

I had some time to try to debug this myself today.  Turns out you need one of the yes/no criteria (age, min size, etc.) set or the base mover is used.  This is different than previous versions of the plugin where you could just set the percent threshold and it would move everything when you hit that threshold.  I set the age limit to something reasonable and it is working as expected now.

 

Just curious if this change was intentional?

  • Like 1
Link to comment
14 minutes ago, brentdog said:

I had some time to try to debug this myself today.  Turns out you need one of the yes/no criteria (age, min size, etc.) set or the base mover is used.  This is different than previous versions of the plugin where you could just set the percent threshold and it would move everything when you hit that threshold.  I set the age limit to something reasonable and it is working as expected now.

 

Just curious if this change was intentional?

I don't think it was. I'll review the test case and try to reproduce tonight or tomorrow.

  • Like 1
Link to comment
11 hours ago, brentdog said:

I had some time to try to debug this myself today.  Turns out you need one of the yes/no criteria (age, min size, etc.) set or the base mover is used.  This is different than previous versions of the plugin where you could just set the percent threshold and it would move everything when you hit that threshold.  I set the age limit to something reasonable and it is working as expected now.

 

Just curious if this change was intentional?

It's been that way for as long as I can remember, but then again I've been on some form of 6.9rc for as long as I can remember...ha.

Link to comment
4 minutes ago, peter76 said:

I'm having the same issue since update to 6.9 (and now on 6.9.1).

On Unraid Version 6.8 the Mover Tuning was working well (with threshold set to 75% ), now Mover starts every hour independent of threshold reached or not.

Can you post your logs and scheduler settings?

 

By design, it will start based on the scheduler, it just uses the setting to determine if anything moves.

Link to comment
34 minutes ago, peter76 said:

done. here the results:

 

 

That's good.

 

Appears that it's not reading your config file for the mover for some reason.

 

Config file location:  /boot/config/plugins/ca.mover.tuning/ca.mover.tuning.cfg

 

please cat that file for me.  Should look something like this.

 

root@Tower:/boot/config/plugins/ca.mover.tuning# cat /boot/config/plugins/ca.mover.tuning/ca.mover.tuning.cfg
moverDisabled="no"
moverNice="0"
moverIO="-c 2 -n 0"
threshold="55"
age="yes"
sizef="no"
sizeinM="1"
sparsnessf="no"
sparsnessv="1"
filelistf="no"
filelistv=""
filetypesf="no"
filetypesv=""
parity="yes"
enableTurbo="no"
logging="no"
force="no"
cron=""
forceParity="yes"
daysold="30"
 

And just incase it's a permissions issue, here is how mine looks.

-rw------- 1 root root   283 Mar  7 13:39 ca.mover.tuning.cfg

 

Maybe try and change something in your config.  Say threshold of 75% to 70%, then hit apply, and also change the "time" that mover runs and hit apply.

 

 

Link to comment
On 3/7/2021 at 2:52 PM, hugenbdd said:

I don't think it was. I'll review the test case and try to reproduce tonight or tomorrow.

Looking at the code...  It does have to have "age" or some other config selected.

 

 if ($cfg['age'] == "yes" or $cfg['sizef'] == "yes" or $cfg['sparsnessf'] == "yes"  or $cfg['filelistf'] == "yes" or $cfg['filetypesf'] == "yes"  )

 

I'll look at this and update the IF string to look for percentage.  Might be a few days though.

Link to comment
1 hour ago, hugenbdd said:

That's good.

 

Appears that it's not reading your config file for the mover for some reason.

 

Config file location:  /boot/config/plugins/ca.mover.tuning/ca.mover.tuning.cfg

 

please cat that file for me.  Should look something like this.

 

root@Tower:/boot/config/plugins/ca.mover.tuning# cat /boot/config/plugins/ca.mover.tuning/ca.mover.tuning.cfg
moverDisabled="no"
moverNice="0"
moverIO="-c 2 -n 0"
threshold="55"
age="yes"
sizef="no"
sizeinM="1"
sparsnessf="no"
sparsnessv="1"
filelistf="no"
filelistv=""
filetypesf="no"
filetypesv=""
parity="yes"
enableTurbo="no"
logging="no"
force="no"
cron=""
forceParity="yes"
daysold="30"
 

And just incase it's a permissions issue, here is how mine looks.

-rw------- 1 root root   283 Mar  7 13:39 ca.mover.tuning.cfg

 

Maybe try and change something in your config.  Say threshold of 75% to 70%, then hit apply, and also change the "time" that mover runs and hit apply.

 

 

 

my Permissions look the same, and .cfg file looks okay for me:

 

root@Tower:~# ls /boot/config/plugins/ca.mover.tuning/ca.mover.tuning.cfg -lisah
5360 4.0K -rw------- 1 root root 281 Mar  7 21:30 /boot/config/plugins/ca.mover.tuning/ca.mover.tuning.cfg


root@Tower:~# cat /boot/config/plugins/ca.mover.tuning/ca.mover.tuning.cfg
moverDisabled="no"
moverNice="0"
moverIO="-c 2 -n 0"
threshold="75"
age="no"
daysold="1"
sizef="no"
sizeinM="1"
sparsnessf="no"
sparsnessv="1"
filelistf="no"
filelistv=""
filetypesf="no"
filetypesv=""
parity="no"
enableTurbo="yes"
logging="no"
force="no"
cron=""
forceParity="yes"
 

Tried to change some settings and pressed APPLY ==> Mover still runs without recognizing percentage-threshold.

 

Your IF-Statement seems to be the reason for this Issue. I will wait for your update.

 

The one open question for me is: why do I have this issue since update to Unraid 6.9 ...

Edited by peter76
Link to comment
33 minutes ago, peter76 said:

 

 

 

Your IF-Statement seems to be the reason for this Issue. I will wait for your update.

 

The one open question for me is: why do I have this issue since update to Unraid 6.9 ...

I changed where the percentage was looked at in the code.  It used to be looked at before that if statement in the php file.  But now it's in the new mover bash script.  Needed to do this so it can handle multiple pools now.

Edited by hugenbdd
Link to comment
46 minutes ago, hugenbdd said:

New Release

 

Allows for the custom mover to be invoked if the cache threshold ONLY is set in the config.

Tested and works fine for me.

Thanx a lot! 

 

Different behavior to older versions:

Now it's not possible to start mover via button, if percentage not reached.

 

Link to comment
15 minutes ago, peter76 said:

Tested and works fine for me.

Thanx a lot! 

 

Different behavior to older versions:

Now it's not possible to start mover via button, if percentage not reached.

 

This is expected behavior.

 

Just for clarity.  When hitting the button, mover will run, however, the cache threshold may not be met, so it doesn't move anything and "skips" the custom mover command. (Check the logs to see the statements)

 

I will look at putting a new button in, that calls the original mover.  (This would not look at any of the config settings.)

Link to comment
17 hours ago, hugenbdd said:

This is expected behavior.

 

Just for clarity.  When hitting the button, mover will run, however, the cache threshold may not be met, so it doesn't move anything and "skips" the custom mover command. (Check the logs to see the statements)

 

I will look at putting a new button in, that calls the original mover.  (This would not look at any of the config settings.)

A Button to start mover - independent of Mover Tuning restrictions - would be a very nice feature.
great work hugenbdd, thanx for it 🙂
 

Link to comment

Hey, today i've come across a problem where my Cache drive is full and the mover does not move any files. I've been mass downloading recently and assuming this is the reason.

L6lNCOH.png

 

Ideally the mover should of ran and moved files over but when running, this is what shows up:

1i5wV8X.png

 

Most recent changes:

1st March: CPU, Mobo & SATA Controller upgrade/swap.
               GPU Addition for Plex Transcoding

               SSD addition, Cache (pooltwo) for Plex & Misc

Issue noticed on 11/03/21

 

Thanks.

arthur-diagnostics-20210311-1230.zip

Link to comment

Looks like it should be working.  Odd.  It's almost like the cache directories got moved somewhere else or renamed.  As it is throwing that find error with "no such file or directory".  Maybe with the addition of cache pooltwo it got renamed with a capital Cache instead of lowercase cache?

 

Can you run these two commands from the console?

 

ls -ltr /mnt/cache

 

 

find /mnt/cache/Downloads -depth

 -This will probably fail, like it did in the logs.  We need to find the correct path and then I can see why my code didn't work correctly.

 

 

Alternatively, you can go back in, set the "Downloads" share cache to something else, hit apply, then immediately set it back to the original cache, set apply

Link to comment

Thanks for creating such an amazing plugin. I currently have a threshold set. I currently have a user script that turns off my torrent/nextcloud dockers and runs mover using 

/usr/local/sbin/mover

The problem is it's using the settings I set in mover tuner. How do I run mover via script without applying the tuner plug-in settings? I know the plugin allows you to force move at a certain time but I would ideally like to do this via script so I can stop and start the docker containers before/after moving. Thanks!

Edited by bobokun
Link to comment
On 3/10/2021 at 5:03 PM, hugenbdd said:

This is expected behavior.

 

Just for clarity.  When hitting the button, mover will run, however, the cache threshold may not be met, so it doesn't move anything and "skips" the custom mover command. (Check the logs to see the statements)

 

I will look at putting a new button in, that calls the original mover.  (This would not look at any of the config settings.)

Does this mean that the when the plugin is enabled it will only move above the treshold set and until the treshold is met? That is what it looks to be doing here. 

ATM i can not invoke mover manually if below 75% and it will not move anything below my treshold

Edit: i do have a cron schedule set.

Edited by Glasti
Link to comment
21 hours ago, hugenbdd said:

Looks like it should be working.  Odd.  It's almost like the cache directories got moved somewhere else or renamed.  As it is throwing that find error with "no such file or directory".  Maybe with the addition of cache pooltwo it got renamed with a capital Cache instead of lowercase cache?

 

Can you run these two commands from the console?

 

ls -ltr /mnt/cache

 

 

find /mnt/cache/Downloads -depth

 -This will probably fail, like it did in the logs.  We need to find the correct path and then I can see why my code didn't work correctly.

 

 

Alternatively, you can go back in, set the "Downloads" share cache to something else, hit apply, then immediately set it back to the original cache, set apply

 

Hello, I uninstalled the plugin and ran the mover and worked successfully but wanting to reinstall.

 

I ran the commands stated above and also ran downloads without a capital and found a bunch of files partaining to my download spree.

brtsdOJ.png

 

Other information:
I had a problem occur in the past where docker apps were located to Downloads and not downloads, Media and not media etc. From what i know, Unraid or linux in general can read capital named folders seperately no problem whereas Windows reads them as one folder and gets confused if there's 2 of the same on a share. (please correct me if i'm wrong) That problem was resolved but maybe the plugin got confused with capitalization or the cache drive had leftover files?

Edited by halt95
more info
Link to comment
5 hours ago, bobokun said:

Thanks for creating such an amazing plugin. I currently have a threshold set. I currently have a user script that turns off my torrent/nextcloud dockers and runs mover using 


/usr/local/sbin/mover

The problem is it's using the settings I set in mover tuner. How do I run mover via script without applying the tuner plug-in settings? I know the plugin allows you to force move at a certain time but I would ideally like to do this via script so I can stop and start the docker containers before/after moving. Thanks!

You will want to call the old mover.

 

/usr/local/sbin/mover.old

  • Thanks 1
Link to comment
5 hours ago, Glasti said:

Does this mean that the when the plugin is enabled it will only move above the treshold set and until the treshold is met? That is what it looks to be doing here. 

ATM i can not invoke mover manually if below 75% and it will not move anything below my treshold

Edit: i do have a cron schedule set.

Correct.

I'm looking at adding a button on the page to call the original mover. 

 

You can still call the original mover from the command line.

/usr/local/sbin/mover.old

  • Like 1
Link to comment
3 hours ago, halt95 said:

 

Hello, I uninstalled the plugin and ran the mover and worked successfully but wanting to reinstall.

 

I ran the commands stated above and also ran downloads without a capital and found a bunch of files partaining to my download spree.

brtsdOJ.png

 

Other information:
I had a problem occur in the past where docker apps were located to Downloads and not downloads, Media and not media etc. From what i know, Unraid or linux in general can read capital named folders seperately no problem whereas Windows reads them as one folder and gets confused if there's 2 of the same on a share. (please correct me if i'm wrong) That problem was resolved but maybe the plugin got confused with capitalization or the cache drive had leftover files?

It looks like your share is using a capital D, and the cache directory is using a lowercase d.  It thinks they are two different directories.  This needs to be corrected so that they match.  once they match the plug-in will work.  (Same case D)

 

The original mover worked, because it does not try to match the share name with the cache directory and just moves everything.

  • Thanks 1
Link to comment
3 minutes ago, hugenbdd said:

Correct.

I'm looking at adding a button on the page to call the original mover. 

 

You can still call the original mover from the command line.

/usr/local/sbin/mover.old

Thank you for the info, this makes the Mover button in the `Main` tab obsolete. No big deal for me. 
Would it be possible to add multiple cron jobs? So you can force move multiple times a day if necessary?

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.