Hi,
seit dem Upgrade auf Debian Squeeze bekommen an unterschiedlichen Tagen immer wieder das Problem mit I/O Errors vom Streamer. Hier ein Auszug aus Bacula:
Error: block.c:1002 Read error on fd=10 at file:blk 0:0 on device "drv2" (/dev/nst0). ERR=Input/output error
dmesg sagt folgendes:
st0: Can't allocate 2097152 byte tape buffer.
st: from_buffer offset overflow.
Das Problem tritt auch auf anderen Maschinen auf. Jedoch bei weitem nicht so häufig (2 mal seit letzten Montag). Ein Reboot behebt das Problem. Hat jemand eine Idee?
Grüße
Tobias
st0 from buffer offset overflow
Re: st0 from buffer offset overflow
hi,
das könnte memory fragmentation sein (natürlich auch ganz was anderes). Im Idealfall werden die Daten vom Band direkt per Hardware (DMA) in den Speicher geschrieben. Dazu müssen (in diesem Fall) im Speicher 2MB oder 512 Pages im Stück frei sein. Da die Pages ansonsten einzeln an Programme verteilt und wieder frei gegeben werden, sind große zusammenhängende Stücke irgendwann knapp. Das könnte der Tape Controller umgehen, indem er die Daten Page-weise überträgt (scatter/gather). Aber der Treiber muss das auch unterstützen. Theoretisch könnte auch die Blockgröße irgendwo einstellbar sein.
das könnte memory fragmentation sein (natürlich auch ganz was anderes). Im Idealfall werden die Daten vom Band direkt per Hardware (DMA) in den Speicher geschrieben. Dazu müssen (in diesem Fall) im Speicher 2MB oder 512 Pages im Stück frei sein. Da die Pages ansonsten einzeln an Programme verteilt und wieder frei gegeben werden, sind große zusammenhängende Stücke irgendwann knapp. Das könnte der Tape Controller umgehen, indem er die Daten Page-weise überträgt (scatter/gather). Aber der Treiber muss das auch unterstützen. Theoretisch könnte auch die Blockgröße irgendwo einstellbar sein.
Beware of programmers who carry screwdrivers.
-
- Beiträge: 95
- Registriert: 03.02.2011 15:23:12
- Lizenz eigener Beiträge: GNU General Public License
Re: st0 from buffer offset overflow
Danke für deine Antwort. Ich hab bei google noch etwas über die Thmatik gefunden.
http://kerneltrap.org/mailarchive/linux ... 634/thread
Der dort erwähnte Bug ( http://bugs.debian.org/606096 ) sollte jedoch mit der aktuellen Kernel Version unter Debian bereits behoben sein. Leider ist der Kernel installiert und das Problem weiterhin vorhanden . Die Blocksize lässt sich in Bacula einstellen. Leider hat dies negative Auswirkung auf die Geschwindigkeit. Evtl. hat der Treiber des SCSI Controllers Fehler. Wir verwenden einen SCSI Controller der Firma LSi.
Grüße
Tobias
http://kerneltrap.org/mailarchive/linux ... 634/thread
Der dort erwähnte Bug ( http://bugs.debian.org/606096 ) sollte jedoch mit der aktuellen Kernel Version unter Debian bereits behoben sein. Leider ist der Kernel installiert und das Problem weiterhin vorhanden . Die Blocksize lässt sich in Bacula einstellen. Leider hat dies negative Auswirkung auf die Geschwindigkeit. Evtl. hat der Treiber des SCSI Controllers Fehler. Wir verwenden einen SCSI Controller der Firma LSi.
Grüße
Tobias
-
- Beiträge: 95
- Registriert: 03.02.2011 15:23:12
- Lizenz eigener Beiträge: GNU General Public License
Re: st0 from buffer offset overflow
Problem besteht leider immer noch. Kann es sein das dieser Fehler häufiger auftritt umso weniger Speicher man verbaut hat? Kommt mir zumindest so vor wenn ich unsere Backup Server vergleiche.
-
- Beiträge: 95
- Registriert: 03.02.2011 15:23:12
- Lizenz eigener Beiträge: GNU General Public License
Re: st0 from buffer offset overflow
Mittlerweile tritt das Problem auch schon bei anderen Servern auf
kern.log:
xxxxxxxxxx kernel: [451873.506638] st0: Can't allocate 1999999 bytetape buffer
xxxxxxxxxx kernel: [452173.632081] st: from_buffer offset overflow.
xxxxxxxxxx kernel: [452173.632085] st: from_buffer offset overflow.
xxxxxxxxxx kernel: [452173.632087] st: from_buffer offset overflow.
Nur ein Neustart hilft.
tapeinfo -f /dev/st0
Product Type: Tape Drive
Vendor ID: 'IBM '
Product ID: 'ULT3580-HH4 '
Revision: '97F1'
Attached Changer API: No
SerialNumber: '1K10044361'
MinBlock: 1
MaxBlock: 16777215
SCSI ID: 0
SCSI LUN: 0
Ready: yes
BufferedMode: yes
Medium Type: 0x48
Density Code: 0x46
BlockSize: 0
DataCompEnabled: yes
DataCompCapable: yes
DataDeCompEnabled: yes
CompType: 0x1
DeCompType: 0x1
BOP: yes
Block Position: 0
Partition 0 Remaining Kbytes: -1
Partition 0 Size in Kbytes: -1
ActivePartition: 0
EarlyWarningSize: 0
kern.log:
xxxxxxxxxx kernel: [451873.506638] st0: Can't allocate 1999999 bytetape buffer
xxxxxxxxxx kernel: [452173.632081] st: from_buffer offset overflow.
xxxxxxxxxx kernel: [452173.632085] st: from_buffer offset overflow.
xxxxxxxxxx kernel: [452173.632087] st: from_buffer offset overflow.
Nur ein Neustart hilft.
tapeinfo -f /dev/st0
Product Type: Tape Drive
Vendor ID: 'IBM '
Product ID: 'ULT3580-HH4 '
Revision: '97F1'
Attached Changer API: No
SerialNumber: '1K10044361'
MinBlock: 1
MaxBlock: 16777215
SCSI ID: 0
SCSI LUN: 0
Ready: yes
BufferedMode: yes
Medium Type: 0x48
Density Code: 0x46
BlockSize: 0
DataCompEnabled: yes
DataCompCapable: yes
DataDeCompEnabled: yes
CompType: 0x1
DeCompType: 0x1
BOP: yes
Block Position: 0
Partition 0 Remaining Kbytes: -1
Partition 0 Size in Kbytes: -1
ActivePartition: 0
EarlyWarningSize: 0