Hi all,
I am using IBM DAT 160 media with bacula, and I always get a tape error after a successful backup job. There were a lot of times that the tapes snapped as well. At first I thought the tapes are just defect, but the error occured so frequent that I started to doubt my bacula configuration.
I used to get this error in the logs, but couldn't find similar error in recent logs:
05-May 15:54 hpsf-sd JobId 130: Volume "set1-w" previously written, moving to end of data.
05-May 15:54 hpsf-sd JobId 130: Error: Unable to position to end of data on device "ibm-dds6" (/dev/nst0): ERR=dev.c:776 ioct
l MTEOM error on "ibm-dds6" (/dev/nst0). ERR=Input/output error.
05-May 15:54 hpsf-sd JobId 130: Marking Volume "set1-w" in Error in Catalog.
Whenever this occured, I can only relabel the tape in order to reuse it. I hope anyone can have a look on the information of the tape settings and bacula configuration provided below, and advise if there is anything that is not right.
# tapeinfo -f /dev/nst0
Product Type: Tape Drive
Vendor ID: 'IBM '
Product ID: 'DDS Gen6 '
Revision: 'WU04'
Attached Changer API: No
SerialNumber: 'HU14086PJM'
MinBlock: 1
MaxBlock: 16777215
SCSI ID: 0
SCSI LUN: 0
Ready: yes
BufferedMode: yes
Medium Type: Not Loaded
Density Code: 0x48
BlockSize: 0
DataCompEnabled: yes
DataCompCapable: yes
DataDeCompEnabled: yes
CompType: 0x20
DeCompType: 0x0
BOP: yes
Block Position: 0
Partition 0 Remaining Kbytes: 86814000
Partition 0 Size in Kbytes: 86814000
ActivePartition: 0
EarlyWarningSize: 0
NumPartitions: 0
MaxPartitions: 1
# mt -f /dev/nst0 status
drive type = Generic SCSI-2 tape
drive status = 1207959552
sense key error = 0
residue count = 0
file number = 0
block number = 0
Tape block size 0 bytes. Density code 0x48 (DAT160).
Soft error count since last status=0
General status bits on (41010000):
BOT ONLINE IM_REP_E
# bacula-sd.conf:
Device {
Name = ibm-dds6
Media Type = DDS6
Device Type = tape
Archive Device = /dev/nst0
AlwaysOpen = yes;
Hardware End of Medium = no;
# Two EOF = Yes
RemovableMedia = yes;
RandomAccess = no;
}
Before running the first job, mount script will be executed (run before job). After running the last job, umount script will be executed (run after job).
# cat mount.sh
#!/bin/sh
/usr/sbin/bconsole -c /etc/bacula/bconsole.conf <<EOF
mount storage=TapeDrive
EOF
# cat umount.sh
#!/bin/sh
/bin/sleep 60
/usr/sbin/bconsole -c /etc/bacula/bconsole.conf <<EOF
umount storage=TapeDrive
EOF
More from bacula.log:
https://dpaste.de/uAYF/raw