Jump to content
We're Hiring! Full Stack Developer ×

Using the 'cache disk' slot to store a warm spare


Rajahal

Recommended Posts

It occurred to me while I was working on guiri's server that it is better to assign a warm spare to the cache disk slot in unRAID than to leave it unassigned (assuming you don't care to actually use a cache disk for it's intended function).  If a warm spare is left unassigned, it will show up in the drop down list on the devices page.  This means that it could easily be assigned accidentally when installing a new disk.  The user could then think he was using the new disk, when he was actually using the warm spare.

 

This does introduce one extra step when actually assigning the warm spare to replace a failed disk, since it must first be unassigned from the cache slot.  I still believe it is worth it to prevent accidental assignment, however.

 

So I set about configuring guiri's cache disk to 'reserve' the warm spare, but not actually use it for anything (and thereby keep it spun down).  Some steps were easy, such setting 'Use Cache Disk?' to 'No' for each User Share.  However, I didn't see any option to change the export mode of the cache share to 'Do Not Export' as is possible with User/Disk shares.  Can it be done?

 

I would have also liked to completely disable the mover script, but the closest I could come to it was to allow it to run only once per year (Jan 1st at 1 AM).  Is there some syntax that would completely prevent the mover script from ever running?

 

In somewhat of a sidenote, is it possible to create a folder preceded with a '.' in Windows (to prevent the mover script from moving that folder)?  Every time I tried it wouldn't let me do it.  Is that just a Linux thing?

Link to comment

try using Feb 31st. (as it's a date that does not exist).

  The time and date fields are:

 

              field          allowed values

              -----          --------------

              minute        0-59

              hour          0-23

              day of month  1-31

              month          1-12 (or names, see below)

              day of week    0-7 (0 or 7 is Sun, or use names)

 

Example.

00 00 31 2 * /bin/date

However I would just remove the mover.sh or put something else in it.

Link to comment

try using Feb 31st. (as it's a date that does not exist).

 The time and date fields are:

 

             field          allowed values

             -----          --------------

             minute         0-59

             hour           0-23

             day of month   1-31

             month          1-12 (or names, see below)

             day of week    0-7 (0 or 7 is Sun, or use names)

 

Example.

00 00 31 2 * /bin/date

However I would just remove the mover.sh or put something else in it.

The field for the mover schedule in the unRAID web-interface is pretty "dumb" in that it does no error checking of its own

 

To easily disable the "mover" we can take advantage by simply using one of the following as the "schedule"

 

This will comment out the remainder of the crontab line so "mover" does not get invoked.

0 0 1 1 * #

or this will run the false command, which will exit as status 1, so it will not conditionally run the mover script.

0 0 1 1 * false &&

 

Joe L.

Link to comment

The comment and/or false && is probably the most compatible method of doing this.

but it still means the command runs.   Feb 31st will never run at all.

Yes, a shell will run and do nothing, although I scheduled it for once a year, so it won't do nothing very frequently. 

(my grammar school English teacher would probably cringe at that sentence)

 

Perhaps a combination of the two methods will work.

I've seen very odd code out there that will assume you were intending the 1st and run anyway.  Unless I can see the source, and know how it will be interpreted, I don't trust it to not run on some un-intended schedule.

 

00 00 31 2 * false &&

 

Joe L.

Link to comment

I would have also liked to completely disable the mover script

in your 'go' script...

echo exit 0 >/usr/local/sbin/mover

Done.   ;)

 

 

heh, the cat has been skinned, fried and served for dinner. (j/k)

What's for desert?

It's a floor wax.... No... It's a desert topping...

Wait... It's both.... ;D

 

Joe L.

Link to comment

To be fair...

 

I developed the technique of conditionally running the mover script, but only when all the disks had been idle for 10 minutes.

 

The mover schedule I used was:

*/5 * * * * /boot/last_io.sh 600 &&

 

It was invoked every 5 minutes.  However, the last_io.sh script only returned true if all the disks were idle for the number of seconds given as the argument. 

It was described in this post: http://lime-technology.com/forum/index.php?topic=6033.msg57983#msg57983

 

The script itself is attached to that post.

 

Joe L.

Link to comment

Yes, a shell will run and do nothing, although I scheduled it for once a year, so it won't do nothing very frequently. 

(my grammar school English teacher would probably cringe at that sentence)

 

Why? What the hell's wrong with a good ol' double negative?    ;D

Link to comment
  • 1 month later...

Archived

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

×
×
  • Create New...