> > I think I have everything set up, all the tapes are labelled and Bacula
> > switches tapes when each one fills up, however after the first tape
> > started writing at 80MB/sec, the rest of them only write at 60-65MB/sec.
> > [...]  
> 
> Are you sure that both the drive and the tapes are still in a decent
> shape, not being worn-out? Have you tested the drive with btape? If yes,
> what was the result?

The drive passes all the vendor tests without any issues and the tapes
are brand new, so there should be no issues there.

I had not thought to try the btape program, thank you for pointing that
out.  Combined with the "tapestat" program which prints throughput in
MB/sec, it has revealed some interesting behaviour and the probable
cause of the issue.

  btape: btape.c:1074-0 Test with random data, should give the minimum 
throughput.
  btape: btape.c:911-0 Begin writing 8 files of 1.073 GB with raw blocks of 
1048576 bytes.
  +++
  btape: btape.c:612-0 Wrote 1 EOF to "peapod-d1" 
(/dev/tape/by-id/scsi-350014380125815e1-nst)
  btape: btape.c:411-0 Volume bytes=1.073 GB. Write rate = 82.59 MB/s
  ++
  btape: btape.c:612-0 Wrote 1 EOF to "peapod-d1" 
(/dev/tape/by-id/scsi-350014380125815e1-nst)
  btape: btape.c:411-0 Volume bytes=1.073 GB. Write rate = 67.10 MB/s
  ++
  btape: btape.c:612-0 Wrote 1 EOF to "peapod-d1" 
(/dev/tape/by-id/scsi-350014380125815e1-nst)
  btape: btape.c:411-0 Volume bytes=1.073 GB. Write rate = 71.58 MB/s
  ++
  btape: btape.c:612-0 Wrote 1 EOF to "peapod-d1" 
(/dev/tape/by-id/scsi-350014380125815e1-nst)
  btape: btape.c:411-0 Volume bytes=1.073 GB. Write rate = 67.10 MB/s
  [...]
  btape: btape.c:385-0 Total Volume bytes=8.589 GB. Total Write rate = 70.40 
MB/s

At each point where btape says it wrote an EOF mark, the throughput
drops to zero, the drive stops, backtracks, then starts again with the
next file.  The throughput btape reports for the second and subsequent
files is slower, because it is including the tape backtrack time in the
overall calculation.

So it looks like when Bacula/btape writes an EOF mark, this causes the
buffers to completely flush out and the drive then runs out of data
and is forced to stop and shoe-shine.

To confirm this, instead of writing 8x 1GB files as above, I tried
writing 1x 8GB file, and sure enough there is no shoe-shining:

  btape: btape.c:1074-0 Test with random data, should give the minimum 
throughput.
  btape: btape.c:911-0 Begin writing 1 files of 8.589 GB with raw blocks of 
1048576 bytes.
  +++++++++++++++++
  btape: btape.c:612-0 Wrote 1 EOF to "peapod-d1" 
(/dev/tape/by-id/scsi-350014380125815e1-nst)
  btape: btape.c:411-0 Volume bytes=8.589 GB. Write rate = 110.1 MB/s
  btape: btape.c:385-0 Total Volume bytes=8.589 GB. Total Write rate = 110.1 
MB/s

I've had a look through the storage daemon options but I can't see
anything relevant.  I take it disabling the writing of EOF marks is not
an option?  Is there any way to somehow disable flushing on EOF?

I'm running Linux kernel 4.18.16 if that's relevant.

Cheers,
Adam.


_______________________________________________
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users

Reply via email to