Verwendung des Dienstprogramms t_reader
Summary: In diesem Artikel wird beschrieben, wie Sie t_reader- und t_writer-Dienstprogramme auf verschiedenen Betriebssystemen verwenden und wo Sie sie herunterladen können.
Symptoms
- Die tatsächlichen Blockgrößen auf einem Band müssen bestimmt werden
- Muss die NetWorker-Etikettierungsstruktur überprüfen
- Muss die physische Integrität von Bandmedien überprüfen
- NetWorker-Blockheader-Metadaten müssen bestätigt werden
- Die ersten 512 Byte jedes Blocks müssen ausgelesen werden.
Der Befehl t_reader Das Dienstprogramm dient zur Diagnose und Behebung von Problemen im Zusammenhang mit Bandlaufwerken. Es ist auch ein NetWorker-Support, der mehrere Bandfunktionen bereitstellt, die es zu einem nützlichen Troubleshooting-Tool machen. Verwenden Sie es für Folgendes:
- Testen der tatsächlichen Größe von auf Band geschriebenen Blöcken
- Feststellen, ob es Variationen in der Größe von Blöcken gibt, die auf Band geschrieben werden
- Lesen physischer Datenträger auf I/O-Fehler oder physische Beschädigungen testen
- Ermitteln, ob die Elemente unterhalb der Anwendungsschicht (Treiber, BS, Transport, Gerät selbst) Blöcke einer bestimmten Größe lesen können
- Das Anzeigen von Informationen auf niedriger Ebene in Windows ist mit keinem anderen aktuellen Dienstprogramm möglich
Cause
Probleme mit Bandmedien werden häufig durch externe Faktoren verursacht, wie z. B.:
- Probleme mit Betriebssystem/HBA/Treiber-Blockierungsfaktor
- Nicht erkannte I/O-Hardware- oder Transportfehler während des Schreibvorgangs
- Verschlechterung des Datenträgers aufgrund von Alter, Gebrauch, Laufwerkshygiene oder unsachgemäßer Lagerung
Resolution
Herunterladen t_reader von hier: NetWorker-Tools
Extrahieren Sie das Bundle und verwenden Sie den Befehl t_reader für die Architektur Ihres Hosts.
t_readerspult die Lautstärke unter UNIX nicht automatisch zurück (dies ist unter Windows möglich) - dies ermöglicht es Ihnen, an jeder beliebigen Stelle des Bandes zu positionieren und von dort aus zu beginnen.- Auf den meisten Betriebssystemen
t_readermeldet die Blockgrößen, die von diesem Punkt aus gefunden werden; Einige erfordern eine Blockgröße, um zu versuchen, zu lesen. t_readerbeginnt mit der Aufzählung von Datei und Datensatz bei 0 - d. h., wenn Sie zu Datei 5 weiterblättern, nehmen Sie absichtlich 500 auf und führen Sie dannt_reader-t_readerDie Ausgänge scheinen bei F0 R0 zu beginnen, obwohl sie tatsächlich an einer viel späteren Adresse beginnen.- Auf Betriebssystemen, die die tatsächliche Blockgröße bestimmen können, führt eine Blockgrößenbeschränkung im Treiber oder Betriebssystem zu einem Fehler, der darauf hinweist, dass der Puffer zu klein ist, um die Blockdaten zu speichern, z. B
cannot allocate memoryodermore data is available. t_readermuss keine tatsächlichen Daten lesen, kann aber NetWorker-Labels erkennen und lesen, falls vorhanden- Unter Windows kann es auch Block-Header-Informationen lesen und melden, falls verfügbar. Außerdem können die ersten 512 Rohbyte an Daten ausgelesen werden (siehe Variablen unten)
- Immer: Blockgrößen müssen nach dem ersten Paar von 32-KB-Etikettierungsblöcken konsistent sein und mit der vom Scanner zurückgegebenen Blockgröße übereinstimmen, die in das Etikett geschrieben wurde
UNIX
So bereiten Sie ein Volume vor, indem Sie es zuerst zurückspulen:
mt -f /dev/nst0 rewind
Zu rennen t_readergeben Sie den Datei-Handle des Betriebssystemgeräts des Laufwerks mit eingelegter Bandkassette an, z. B.:
./t_reader_linux /dev/nst0
Die Ausgabe eines Standard-NetWorker-Volumes nach dem Zurückspulen sieht wie folgt aus:
About to read FileNo-BlockNo: 0-0 Found block size: 32768 About to read FileNo-BlockNo: 0-1 EOF encountered About to read FileNo-BlockNo: 1-0 Found block size: 32768 About to read FileNo-BlockNo: 1-1 EOF encountered About to read FileNo-BlockNo: 2-0 Found block size: 98304 About to read FileNo-BlockNo: 2-1 Found block size: 98304 ... About to read FileNo-BlockNo: 19-0 Found this record at block size= 98304 About to read FileNo-BlockNo: 19-1 File Mark encountered About to read FileNo-BlockNo: 20-0 File Mark encountered No more data is on Tape
Dieses Beispiel zeigt ein fehlerfreies Volume mit zwei 32K-Blöcken auf den ersten beiden Dateien, die die Bezeichnung angeben, gefolgt von 96K-Blöcken, die in regelmäßigen Abständen von Dateimarkierungen unterbrochen werden, bis nach Datei 18 das Ende der Daten (EOD) auftritt.
FENSTER
Unter Windows müssen Sie auch die Größe des Blocks angeben, den Sie lesen möchten:
t_reader \\.\tape0 131072
Dies hat zur Folge, dass Windows versucht, die Blockgröße zu lesen, die ihm zur Verfügung gestellt wird, und sich nicht beschwert (obwohl er potenziell größer ist als die tatsächlich geschriebene Blockgröße) - obwohl es einen Fehler verursacht, wenn entweder die als Argument angegebene Blockgröße kleiner ist als der tatsächliche Block, oder wenn es eine Betriebssystem- oder Treiberbeschränkung gibt, die einen Block dieser Größe unbrauchbar macht.
Da Windows die Blockgröße nicht automatisch ermitteln und melden kann, muss sie als zweites Argument angegeben werden. Wenn die Blockgröße zu groß ist, wird sie falsch gemeldet, da einfach mehrere Blöcke gelesen und als vom Argument bereitgestellte Größe dargestellt werden. Wenn die gelieferte Blockgröße, z.B. 131072, kleiner ist als die tatsächliche Blockgröße, z.B. 262144, erhalten Sie eine Fehlermeldung:
>>>>>File Mark Encountered. Total Records Estimated In File 1 Are 1 Read Record does not align on Assigned Buffer
Um daher eine unbekannte Blockgröße korrekt zu bestimmen, beginnen Sie bei 32768 und verdoppeln Sie, bis das Dienstprogramm erfolgreich ist. In der Regel können Sie die erwartete Blockgröße jedoch anhand der Beschriftung bestimmen.
Windows verfügt auch über zwei Variablen, die für ein tieferes Debuggen festgelegt werden können:
set EXPLODE_LEVEL=1
Bewirkt t_reader So melden Sie den Blockheader für alle gefundenen NetWorker-Blöcke:
Read 262144 bytes: HW Fn-Rn:2-81 Media Fn-Rn:2-81 Cummulative Bytes Read 21561344 mr_version 6 mr_size 262144 Volid 4222551389 (0xFBAF055D) Media Fn 2-Media Rn 81 mr_len 444 mr_chunk_len 1
Zur Verursachung t_reader So geben Sie die ersten 512 B jedes gelesenen Blocks aus:
set DUMP_BUFFER=1
Erwarten Sie eine Ausgabe wie:
Read 262144 bytes: HW Fn-Rn: 2-47 Cummulative Bytes Read 12648448 Dumping 512 Bytes Starting At Address: 0x 850048 0x0000: 56 4F 4C 31 51 30 57 30 50 53 20 20 20 20 20 20 0x0010: 20 20 20 20 20 4E 45 54 57 4F 52 4B 45 52 20 20 0x0020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0x0030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0x0040: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 33 0x0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ...
Dies kann ein tieferes Debugging oder den Nachweis von beschädigten oder verschlüsselten Nicht-NetWorker-Volumes ermöglichen, ist aber offensichtlich für ungewöhnliche Verwendungen vorgesehen.
Additional Information
t_reader wird auch mit einem Begleitdienstprogramm geliefert, t_writer.exe. Dies ist ein reines Windows-Dienstprogramm, das UNIX-Dienstprogramme wie tar und dd ersetzt und Testschreibvorgänge auf Bänder mit nutzerdefinierten Blockgrößen ermöglicht. Es erfordert die begleitende Datei, seeding.image oder eine Binärdatei desselben Namens.
Um das Dienstprogramm zu verwenden, führen Sie es mit einem mediengeladenen Gerät als erstem Argument und der gewünschten Blockgröße in Byte als zweitem Argument aus, z. B.:
win_t_writer.exe \\.\Tape2147483639 131072
Das Dienstprogramm wird so lange ausgeführt, bis der Nutzer den Prozess unterbricht. Sie kann nacheinander auf demselben Volume mit unterschiedlichen Blockgrößen ausgeführt werden, um unterschiedliche Blockgrößen zu simulieren, oder wiederholt bis zum Ausfall, wenn zufällige I/O-Fehler oder SCSI-Resets vermutet werden. Es kann auch verwendet werden, um zu demonstrieren, ob eine Bedingung Blockgrößen unterhalb der Anwendungsschicht kürzt.
Als Beispiel für die Ausgabe:
C:\Users\Administrator\t_reader>win_t_writer.exe \\.\Tape2147483639 131072
CAUTION: This Is An Un-Supported Tool. To Be Used By Tech. Support Personnel Only
For Comments or Change Requests, email: abid.yazdanie@emc.com
******WARNING Tape Write operations will occur on the device******
******Data Destruction Will Occur******
******You are using this tool at your own risk******
usage: win_t_writer \\.\tapeX 131072
Where tapeX is \\.\tapeX and 131072 (128X1024) is the desired block size, in this case 128K
The Block Size Used Above Is Only An Example.
Run mt -f \\.\tapeX status To Find The Max. Block Size For Your Tape Drive
Enter y to proceed or n to abort: y
Proceeding to write....
About to allocate write buffer
Opening Seeding File seeding.image
Copying Contents Of Seeding File: seeding.image To Write Buffer
WRITE access to device \\.\\\.\Tape2147483639
Successfully opened device: \\.\\\.\Tape2147483639
Calling WriteFile in a perennial loop...