Hello James,

On Sunday 06 March 2011 09:07:04 James Harper wrote:
> Is there any work in progress to detect a low disk space condition for
> disk based media? 

No mainly because detecting low disk space is very system dependent, and I am 
not really sure what Bacula can do about it.  It isn't very simple.

> Currently when I run out of space I end up with Bacula 
> using up tiny bits and pieces all over the place which mucks up my 'one
> volume = one job' assumption and requires a bit of cleaning up pain.

I would need more information to be able to respond.  In general when Bacula 
runs out of disk space all jobs would then fail.  Why is it creating little 
pieces everywhere?

>
> Three ways I can think of solving this:
> 1. a "don't span volumes" option in the job resource
> 2. a "maximum volumes per job" option in the job resource
> 3. a way to get the storage daemon to hold the job if disk space is less
> than some amount, eg "minimum space = 5GB"
>
> #1 would work nicely in my case. #2 is just a more general version of
> #1. In this case the job would just fail if the media became full, a
> message would be sent to me, and I'd fix the problem and rerun whatever
> jobs were necessary.
>
> #3 would send a message and then just cause the sd to hang and stop
> accepting further data to that device until the disk space increased
> again. I could fix the problem and the job would continue again.

I am not sure how one would implement any of the above.  There are a lot of 
questions -- what does not spanning volumes do when it wants to span volumes?  
Fail the job, abort the SD?

The SD doesn't currently have the concept of suspending a device, nor does it 
have the concept of "holding" jobs, so this would be a whole new concept to 
design and implement.  I guess I would need a more complete design to 
understand what is supposed to happen in every case, then we could examine 
the pros and cons.

A simpler solution might be to be able to reserve a specified space on a newly 
created volume.  This would guarantee that the space was available.  If the 
space could not be obtained, the Volume creation process would fail, and 
Bacula would simply ask for a new Volume.  I am not 100% sure how to reserve 
space for a volume without writing in it, which would be a bit inefficient, 
but we could probably figure out something.

A variation on the above would be to require a given amount of free space 
(again this is a very system dependent function to determine the free space) 
before creating a volume.

Regards,

Kern

------------------------------------------------------------------------------
What You Don't Know About Data Connectivity CAN Hurt You
This paper provides an overview of data connectivity, details
its effect on application quality, and explores various alternative
solutions. http://p.sf.net/sfu/progress-d2d
_______________________________________________
Bacula-devel mailing list
Bacula-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-devel

Reply via email to