[Bacula-users] LTO-4 tape: only 20mb/sec when used with bacula
2010-06-20 16:41:18
Hi!
We use a Tandberg autochanger with two IBM Ultrium LTO-4 drives behind a
24-disk RAID50. When used with with testdata and dd or tar (in dd's case
with bs=1M), both drives get acceptable rates of around 170MiB per
second. However, when used with bacula for a copy job (Our default pool
is the diskpool, the jobs get copied to tape during the day), only
20MiB/second get written to the tape, while bacula-sd consumes a full
cpu.
Here's a vmstat 1 during "dd if=/var/bacula/dp/fs1/Vol0194 of=/dev/nst1 bs=1M":
procs -----------memory---------- ---swap-- -----io---- --system--
-----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa
st
1 1 168 44876 6248 7198984 0 0 172544 0 2516 8141 0 7 93 0
0
1 0 168 46916 6156 7197192 0 0 172552 20 2529 8040 6 7 83 5
0
0 0 168 49376 6060 7194836 0 0 172044 0 2516 7764 1 7 91 1
0
0 0 168 47344 6044 7196284 0 0 173056 0 2532 8036 0 6 93 0
0
1 0 168 47704 6052 7196020 0 0 172544 40 2518 8316 0 7 93 0
0
0 0 168 45904 6044 7198228 0 0 172544 16 2533 8217 0 7 93 0
0
0 0 168 48664 6008 7195592 0 0 172036 20 2511 8252 0 7 92 1
0
0 0 168 45068 6008 7199200 0 0 153600 0 2360 7762 0 6 94 0
0
CPU load is negligable, speed is impressive
And the same during bacula's copy job:
procs -----------memory---------- ---swap-- -----io---- --system--
-----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 168 46956 25364 7165604 0 0 11136 0 1090 6833 25 1 75 0 0
1 0 168 47616 25360 7165012 0 0 22400 0 1187 7637 24 1 75 0 0
1 0 168 44496 25360 7168308 0 0 18432 0 1148 7444 29 1 70 0 0
1 0 168 44796 25360 7167940 0 0 18944 0 1159 7948 25 1 75 0 0
3 0 168 45156 25388 7167472 0 0 14976 32 1139 7584 25 1 72 2 0
1 0 168 46416 25388 7166288 0 0 21760 0 1182 7636 24 1 75 0 0
3 0 168 45156 25388 7167644 0 0 20480 0 1164 7749 24 1 75 0 0
1 0 168 45756 25380 7166776 0 0 22400 0 1189 7689 29 1 71 0 0
CPU load is 25%, equates to one of the four cores, there's no I/O-wait
yet the system only reads with 20MiB from the harddisk.
If I try to set a fixed blocksize for bacula-sd (Minimum and Maximum
Blocksize both to 1MiB), nothing changes. When I set no blocksize in
bacula-sd, writing to tape is not possible and gives me this error:
20-Jun 22:34 sd1.techfak JobId 882: Error: block.c:1016 Read error on fd=3 at
file:blk 0:0 on device "drv1" (/dev/nst1). ERR=Cannot allocate memory.
20-Jun 22:34 sd1.techfak JobId 882: Error: block.c:1016 Read error on fd=3 at
file:blk 0:0 on device "drv1" (/dev/nst1). ERR=Cannot allocate memory.
20-Jun 22:34 sd1.techfak JobId 882: Error: block.c:1016 Read error on fd=3 at
file:blk 0:0 on device "drv1" (/dev/nst1). ERR=Cannot allocate memory.
20-Jun 22:34 sd1.techfak JobId 882: Error: block.c:1016 Read error on fd=3 at
file:blk 0:0 on device "drv1" (/dev/nst1). ERR=Cannot allocate memory.
20-Jun 22:34 sd1.techfak JobId 882: Please mount Volume "AAA529" or label a new
one for:
I suppose it has something todo with the tapes' maximum blocksize being
higher than what Linux supports.
I'd really appreciate any help here. Have I overseen anything in
configuring bacula?
The system btw is RHEL 5.4, but we had Debian Lenny with Kernel 2.6.32
before and it exhibited the same behaviour.
The relevant part of the sd's configuration:
#
# Disk pool (stage 1)
#
Device {
Name = dp1
Media Type = File
Archive Device = /var/bacula/dp/fs1
LabelMedia = yes
Random Access = yes
AutomaticMount = yes
RemovableMedia = no
AlwaysOpen = no
Maximum Concurrent Jobs = 20
}
#
# Tandberg StorageLibrary T80+ (stage 2)
#
Autochanger {
Name = lib1
Device = drv1
Device = drv2
Changer Command = "/etc/bacula/scripts/mtx-changer %c
%o %S %a %d"
Changer Device = /dev/sg34
}
Device {
Name = drv1
Drive Index = 0
Media Type = LTO-4
Device Type = Tape
Archive Device = /dev/nst1
AutomaticMount = yes
AlwaysOpen = yes
RemovableMedia = yes
RandomAccess = no
AutoChanger = yes
Autoselect = yes
Minimum block size = 65536
Maximum block size = 1048576
Alert Command = "sh -c 'tapeinfo -f %c | grep
TapeAlert|cat'"
Spool Directory = /var/bacula/spool
}
Device {
Name = drv2
Drive Index = 1
Media Type = LTO-4
Device Type = Tape
Archive Device = /dev/nst0
AutomaticMount = yes
AlwaysOpen = yes
RemovableMedia = yes
RandomAccess = no
AutoChanger = yes
Autoselect = yes
Minimum block size = 65536
Maximum block size = 1048576
Alert Command = "sh -c 'tapeinfo -f %c |grep
TapeAlert|cat'"
Spool Directory = /var/bacula/spool
}
Regards,
Lukas
------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
lucky parental unit. See the prize list and enter to win:
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Bacula-users mailing list
Bacula-users AT lists.sourceforge DOT net
https://lists.sourceforge.net/lists/listinfo/bacula-users
|
|
|