Come utilizzare l'utilità t_reader
Summary: Questo articolo descrive l'uso delle utilità t_reader e t_writer su vari sistemi operativi e dove scaricarle.
Symptoms
- È necessario determinare le dimensioni effettive dei blocchi su un nastro
- È necessario verificare la struttura delle etichette di NetWorker
- È necessario verificare l'integrità fisica del supporto a nastro
- È necessario confermare i metadati dell'intestazione del blocco NetWorker
- È necessario eseguire il dump dei primi 512 byte raw di ciascun blocco
Il comando t_reader L'utilità serve per diagnosticare e risolvere i problemi relativi all'unità nastro. È anche un supporto NetWorker che fornisce diverse funzioni del nastro che lo rendono un utile strumento per la risoluzione dei problemi. Usalo per:
- Test delle dimensioni effettive dei blocchi scritti su nastro
- Determinare se sono presenti variazioni nelle dimensioni dei blocchi scritti su nastro
- Testare la lettura dei supporti fisici per verificare la presenza di errori di I/O o danni fisici
- Determinare se gli elementi al di sotto del livello dell'applicazione (driver, sistema operativo, trasporto, dispositivo stesso) possono leggere blocchi di dimensioni specifiche
- L'esposizione di informazioni di basso livello in Windows non è possibile con nessun'altra utilità corrente
Cause
I problemi con i supporti a nastro sono spesso causati da fattori esterni quali:
- Problemi relativi a fattori di blocco sistema operativo/HBA/driver
- Errori hardware di I/O o di trasporto non rilevati durante la scrittura
- Degradazione dei supporti dovuta all'età, all'uso, alle condizioni igieniche dell'unità o a una conservazione impropria
Resolution
Download t_reader da qui: Strumenti NetWorker
Estrarre il pacchetto e utilizzare il comando t_reader per l'architettura del tuo host.
t_readernon riavvolgerà automaticamente il volume su UNIX (lo offre su Windows) - questo consente di posizionare e iniziare da qualsiasi punto del nastro.- Sulla maggior parte dei sistemi operativi
t_readerriporta le dimensioni dei blocchi che trova da questo punto; Alcuni richiedono una dimensione del blocco per tentare di leggere. t_readerinizia l'enumerazione di file e record da 0 - il che significa che se si dovesse spaziare in avanti al file 5, registrare 500 deliberatamente e quindi eseguiret_reader-t_readergli output sembrerebbero iniziare da F0 R0, nonostante in realtà inizino da un indirizzo molto più tardo.- Nei sistemi operativi in grado di determinare le dimensioni effettive dei blocchi, una limitazione delle dimensioni dei blocchi nel driver o nel sistema operativo genera un errore che indica che il buffer è troppo piccolo per contenere i dati dei blocchi, ad esempio
cannot allocate memoryoppuremore data is available. t_readernon ha bisogno di leggere i dati effettivi, ma è in grado di riconoscere e leggere le etichette di NetWorker, se presenti- Su Windows, può anche leggere e segnalare le informazioni sull'intestazione del blocco, se disponibili; Può anche eseguire il dump dei primi 512 byte raw di dati (vedere le variabili riportate di seguito)
- Sempre: le dimensioni dei blocchi devono essere coerenti dopo la prima coppia di blocchi di etichette da 32 KB e devono corrispondere alle dimensioni dei blocchi scritte nell'etichetta restituita dallo scanner.
UNIX
Per preparare un volume riavvolgendolo prima:
mt -f /dev/nst0 rewind
Eseguire t_reader, fornire l'handle del file del dispositivo del sistema operativo dell'unità con la cartuccia a nastro caricata, ad esempio:
./t_reader_linux /dev/nst0
L'output di un volume NetWorker standard dopo il riavvolgimento è simile al seguente:
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
Questo esempio mostra un volume integro con due blocchi da 32K sui primi due file che indicano l'etichetta, seguiti da 96K blocchi punteggiati periodicamente da filemark fino alla fine dei dati (EOD) rilevata dopo il file 18.
FINESTRE
Per Windows è necessario fornire anche la dimensione del blocco che si desidera leggere:
t_reader \\.\tape0 131072
L'effetto di questo è che Windows tenta di leggere qualsiasi dimensione del blocco gli venga fornita, e non si lamenta (nonostante sia potenzialmente più grande della dimensione effettiva del blocco scritta) - anche se sbaglierà se la dimensione del blocco fornita come argomento è più piccola del blocco effettivo, o c'è una limitazione del sistema operativo o del driver che rende inutilizzabile un blocco di quella dimensione.
Poiché Windows non è in grado di determinare e segnalare automaticamente la dimensione del blocco, deve essere fornito come secondo argomento. Se la dimensione del blocco è troppo grande, viene segnalata in modo errato in quanto sta semplicemente leggendo più blocchi e presentandoli come dimensione fornita dall'argomento. Se la dimensione del blocco fornita, ad esempio 131072, è inferiore alla dimensione effettiva del blocco, ad esempio 262144, viene visualizzato un errore:
>>>>>File Mark Encountered. Total Records Estimated In File 1 Are 1 Read Record does not align on Assigned Buffer
Pertanto, per determinare correttamente una dimensione del blocco sconosciuta, iniziare da 32768 e raddoppiare fino a quando l'utilità ha esito positivo. Tuttavia, in genere è possibile determinare le dimensioni dei blocchi previste dall'etichetta.
Windows dispone anche di due variabili che possono essere impostate per un debug più approfondito:
set EXPLODE_LEVEL=1
Cause t_reader per segnalare l'intestazione di blocco per tutti i blocchi NetWorker trovati:
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
Causare t_reader per eseguire il dump del primo 512 B di ogni blocco leggere:
set DUMP_BUFFER=1
Output previsto come:
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 ...
Ciò può consentire un debugging più approfondito o la dimostrazione di volumi non NetWorker, danneggiati o crittografati, ma ciò è ovviamente per usi non comuni.
Additional Information
t_reader viene fornito anche in bundle con un'utilità companion, t_writer.exe. Si tratta di un'utilità disponibile solo per Windows che sostituisce utilità UNIX come tar e dd e consente di eseguire scritture di prova su nastri con dimensioni di blocco personalizzate. È necessario il file associato, seeding.image o qualsiasi file binario con lo stesso nome.
Per utilizzare l'utilità, eseguirla utilizzando un dispositivo caricato su supporti come primo argomento e la dimensione del blocco desiderata in byte come secondo, ad esempio:
win_t_writer.exe \\.\Tape2147483639 131072
L'utilità viene eseguita finché l'utente non interrompe il processo. Può essere eseguito in successione sullo stesso volume con dimensioni di blocco diverse per simulare le dimensioni variabili dei blocchi o ripetutamente fino al guasto se si sospettano errori di I/O casuali o reimpostazioni SCSI. Può anche essere utilizzato per dimostrare se una condizione tronca le dimensioni dei blocchi al di sotto del livello dell'applicazione.
Come esempio di output:
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...