Cómo usar la utilidad t_reader

Summary: En este artículo, se describe el uso de las utilidades de t_reader y t_writer en varios sistemas operativos y dónde descargarlas.

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

  • Debe determinar los tamaños de bloques reales en una cinta
  • Debe verificar la estructura de etiquetas de NetWorker
  • Debe verificar la integridad física de los medios de cinta
  • Debe confirmar los metadatos del encabezado de bloque de NetWorker
  • Debe volcar los primeros 512 bytes crudos de cada bloque

El comando t_reader La utilidad sirve para diagnosticar y solucionar problemas relacionados con la unidad de cinta. También es compatible con NetWorker que proporciona varias funciones de cinta que lo convierten en una herramienta útil para la solución de problemas. Úselo para:

  • Probar el tamaño real de los bloques escritos en cinta
  • Determinar si hay variaciones en los tamaños de los bloques escritos en cinta
  • Prueba de lectura de medios físicos para detectar errores de I/O o daños físicos
  • Determine si los elementos debajo de la capa de aplicación (controlador, SO, transporte, dispositivo en sí) pueden leer bloques de un tamaño específico
  • Exponer la información de bajo nivel en Windows que no es posible con ninguna otra utilidad actual

 

Cause

Los problemas con los medios de cinta suelen deberse a factores externos, como los siguientes:

  • Problemas con el factor de bloqueo del SO/HBA/controlador
  • Errores de hardware o transporte de I/O no detectados durante la escritura
  • Degradación de los medios debido a la antigüedad, el uso, la higiene de la unidad o el almacenamiento inadecuado

 

Resolution

Descargar t_reader A partir de aquí: Herramientas de NetWorker

Extraiga el paquete y utilice el comando t_reader para la arquitectura de su host.

  • t_reader no rebobinará automáticamente el volumen en UNIX (lo ofrece en Windows), lo que le permite posicionar y comenzar desde cualquier punto de la cinta.
  • En la mayoría de los sistemas operativos t_reader informa de los tamaños de bloque que encuentra a partir de este punto; Algunos requieren un tamaño de bloque para intentar leer.
  • t_reader comienza su enumeración de archivo y registro en 0, lo que significa que si tuviera que reenviar espacio al archivo 5, registre 500 deliberadamente y luego ejecute t_reader - t_reader las salidas parecen comenzar en F0 R0, a pesar de que en realidad comienzan en una dirección mucho más tardía.
  • En los sistemas operativos que pueden determinar el tamaño real del bloque, una limitación de tamaño de bloque en el controlador o el sistema operativo genera un error que indica que el buffer es demasiado pequeño para contener los datos del bloque, como cannot allocate memory o more data is available.
  • t_reader no necesita leer datos reales, pero puede reconocer y leer etiquetas de NetWorker si están presentes
  • En Windows, también puede leer y reportar información del encabezado de bloque, si está disponible; También puede volcar los primeros 512 bytes de datos crudos (consulte las variables a continuación)
  • Siempre: los tamaños de bloque deben ser coherentes después del primer par de bloques de etiquetas de 32 KB y deben coincidir con el tamaño de bloque escrito en la etiqueta según lo devuelto por el escáner

UNIX
Para preparar un volumen rebobinando primero:

mt -f /dev/nst0 rewind

Correr t_reader, proporcione el identificador del archivo del dispositivo del sistema operativo de la unidad con el cartucho de cinta cargado, por ejemplo:

./t_reader_linux /dev/nst0

La salida de un volumen estándar de NetWorker después del rebobinado tiene el siguiente aspecto:

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

En este ejemplo, se muestra un volumen en buen estado con dos bloques de 32 000 en los dos primeros archivos que indican la etiqueta, seguidos de 96 000 bloques puntuados periódicamente por marcas de archivo hasta el final de datos (EOD) encontrado después del archivo 18.

WINDOWS
Para Windows, también debe proporcionar el tamaño del bloque que desea leer:

t_reader \\.\tape0 131072

El efecto de esto es que Windows intenta leer cualquier tamaño de bloque que se le proporcione, y no quejarse (a pesar de ser potencialmente más grande que el tamaño de bloque real escrito), aunque se producirá un error si el tamaño de bloque proporcionado como argumento es menor que el bloque real, o si hay una limitación del sistema operativo o controlador que hace que un bloque de ese tamaño sea inutilizable.

Dado que Windows no puede determinar e informar automáticamente el tamaño de bloque, se debe proporcionar como segundo argumento. Si el tamaño de bloque es demasiado grande, genera informes erróneos, ya que simplemente lee varios bloques y los presenta como el tamaño proporcionado por el argumento. Si el tamaño de bloque proporcionado, por ejemplo, 131072, es menor que el tamaño de bloque real , por ejemplo, 262144, recibirá un error:

>>>>>File Mark Encountered. Total Records Estimated In File 1 Are 1
Read Record does not align on Assigned Buffer

Por lo tanto, para determinar correctamente un tamaño de bloque desconocido, comience en 32768 y duplique hasta que la utilidad se ejecute correctamente. Sin embargo, por lo general, puede determinar el tamaño de bloque esperado a partir de la etiqueta.

Windows también tiene dos variables que se pueden configurar para una depuración más profunda:

set EXPLODE_LEVEL=1

Causas t_reader para informar el encabezado de bloque de cualquier bloque de NetWorker encontrado:

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

Causar t_reader para volcar los primeros 512 B de cada bloque, lea:

set DUMP_BUFFER=1

Espere resultados como:

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
...

Esto puede permitir una depuración más profunda o la demostración de volúmenes cifrados, dañados o que no son de NetWorker, pero obviamente es para usos poco comunes.

 

Additional Information

t_reader también viene incluido con una utilidad complementaria, t_writer.exe. Esta es una utilidad exclusiva de Windows que toma el lugar de las utilidades de UNIX, como tar y dd, y permite realizar escrituras de prueba en cintas con tamaños de bloque personalizados. Requiere el archivo complementario, seeding.image, o cualquier archivo binario del mismo nombre.

Para usar la utilidad, ejecútela usando un dispositivo cargado de medios como primer argumento y el tamaño de bloque deseado en bytes como segundo, por ejemplo:

win_t_writer.exe \\.\Tape2147483639 131072

La utilidad se ejecuta hasta que el usuario interrumpe el proceso. Se puede ejecutar sucesivamente en el mismo volumen con diferentes tamaños de bloque para simular tamaños de bloque variantes, o repetidamente hasta que falle si se sospecha de errores de I/O aleatorios o restablecimientos de SCSI. También se puede utilizar para demostrar si una condición está truncando los tamaños de bloque por debajo de la capa de aplicación.

Como ejemplo de la salida:

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...

 

Affected Products

NetWorker
Article Properties
Article Number: 000094976
Article Type: Solution
Last Modified: 19 Nov 2024
Version:  3
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.