Amanda-Users

Re: Amanda 2.5.0 - using multiple holding disks and spanning tapes

2006-04-03 10:49:57
Subject: Re: Amanda 2.5.0 - using multiple holding disks and spanning tapes
From: Jean-Louis Martineau <martineau AT zmanda DOT com>
To: Paul Haldane <Paul.Haldane AT newcastle.ac DOT uk>
Date: Mon, 03 Apr 2006 10:47:07 -0400
Paul,

Are you on a machine where a LONG is 4 bytes in size?

Then it's an overflow, could you try the attached patch.

Jean-Louis


Paul Haldane wrote:
I've just installed 2.5.0 on one of our backup servers (output from amadmin 
<config> version at end) and have some odd behaviour to do with holding disks 
(at least I think that's the problem).

We've been running Amanda (using the standard Fedora Core 2 rpms 
-amanda-2.4.4p2-3) for ages - no problems.  We're keen to move to 2.5.0 as I 
understand that gives us the ability to span tapes when doing backups.  Clients 
will still be running 2.4.x (FC3 with amanda-client-2.4.4p3-1 in the case of 
the client I'm having this particular problem with).

We've got six holding disks (which are all recognised by amcheck and were 
correctly used with 2.4.4).

When the backup ran last night the smaller DLEs went through fine and were 
taped but we have one DLE which is (just) bigger than a tape and bigger than a 
single holding disk (~ 223G - largest of the successfully tapes DLEs was 37G).
It seems that Amanda filled one holding disk, moved on to a second holding disk, used some space there and then gave up when nearly at the end of the dump apparently thinking that it had run out of holding space (but the current holding area was only 74% full). I think I've pulled the relevant lines out of the log below (but have attached the last 50 lines in case I'm wrong or have message up the formatting).

Any thoughts on what might be happening?  Is Amanda thinking that it's out of 
holding space or have I misinterpreted the messages?  Are there any of the 
options that I used to build the Amanda server with which might be 
problematical?

Paul

diff -u -r --show-c-function --exclude-from=amanda.diff 
amanda-2.5.0.orig/server-src/driver.c 
amanda-2.5.0.new.overflow/server-src/driver.c
--- amanda-2.5.0.orig/server-src/driver.c       2006-03-28 16:10:05.000000000 
-0500
+++ amanda-2.5.0.new.overflow/server-src/driver.c       2006-04-03 
10:42:32.000000000 -0400
@@ -1466,7 +1466,7 @@ handle_chunker_result(cookie)
                chunker_cmd( chunker, CONTINUE, dp );
            } else { /* !h[++activehd] - must allocate more space */
                sched(dp)->act_size = sched(dp)->est_size; /* not quite true */
-               sched(dp)->est_size = sched(dp)->act_size * 21 / 20; /* +5% */
+               sched(dp)->est_size = (sched(dp)->act_size/20) * 21; /* +5% */
                sched(dp)->est_size = am_round(sched(dp)->est_size, 
DISK_BLOCK_KB);
                h = find_diskspace( sched(dp)->est_size - sched(dp)->act_size,
                                    &dummy,