Como usar o utilitário t_reader

Summary: Este artigo descreve o uso dos utilitários t_reader e t_writer em vários sistemas operacionais e onde baixá-lo.

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

  • Deve determinar os tamanhos reais dos blocos em uma fita
  • Deve verificar a estrutura de rótulos do NetWorker
  • Deve verificar a integridade física da mídia de fita
  • Precisa confirmar os metadados do cabeçalho de bloco do NetWorker
  • Deve despejar os primeiros 512 bytes brutos de cada bloco

O comando t_reader O utilitário é para diagnosticar e solucionar problemas relacionados à unidade de fita. Também é um suporte do NetWorker, que fornece várias funções de fita que o tornam uma ferramenta útil de solução de problemas. Use-o para:

  • Testar o tamanho real dos blocos gravados na fita
  • Determine se há variações de tamanhos de blocos gravados em fita
  • Teste a leitura da mídia física em busca de erros de E/S ou danos físicos
  • Determine se os elementos abaixo da camada do aplicativo (driver, sistema operacional, transporte, o próprio dispositivo) podem ler blocos de um tamanho específico
  • Expor informações de baixo nível no Windows não é possível com qualquer outro utilitário atual

 

Cause

Problemas com a mídia de fita geralmente são causados por fatores externos, como:

  • Problemas de fator de bloqueio do SO/HBA/driver
  • Erros de hardware ou transporte de E/S não detectados durante a gravação
  • Degradação da mídia devido à idade, uso, higiene da unidade ou armazenamento inadequado

 

Resolution

Download t_reader daqui: Ferramentas do NetWorker

Extraia o pacote e use o comando t_reader para a arquitetura do seu host.

  • t_reader não retrocederá automaticamente o volume no UNIX (ele oferece no Windows) — isso permite que você posicione e comece a partir de qualquer ponto da fita.
  • Na maioria dos sistemas operacionais t_reader relata os tamanhos de bloco encontrados a partir deste ponto; alguns exigem que você tenha um tamanho de bloco para tentar ler.
  • t_reader começa sua enumeração de arquivo e registro em 0 - o que significa que se você fosse espaçar para o arquivo 5, registre 500 deliberadamente e, em seguida, execute t_reader - t_reader as saídas parecem começar em F0 R0, apesar de realmente começarem em um endereço muito posterior.
  • Em sistemas operacionais que podem determinar o tamanho real do bloco, uma limitação de tamanho de bloco no driver ou no SO resulta em um erro que indica que o buffer é muito pequeno para armazenar os dados do bloco, como cannot allocate memory ou more data is available.
  • t_reader não precisa ler os dados reais, mas pode reconhecer e ler os rótulos do NetWorker, se presentes
  • No Windows, ele também pode ler e relatar informações de cabeçalho de bloco, se disponíveis; Ele também pode despejar os primeiros 512 bytes brutos de dados (veja as variáveis abaixo)
  • Always — os tamanhos dos blocos devem ser consistentes após o primeiro par de blocos de etiquetas de 32 KB e devem corresponder ao tamanho do bloco gravado na etiqueta conforme retornado pelo scanner

UNIX
Para preparar um volume rebobinando-o primeiro:

mt -f /dev/nst0 rewind

Para executar t_reader, forneça o identificador de arquivo do dispositivo operacional da unidade com o cartucho de fita carregado, por exemplo:

./t_reader_linux /dev/nst0

A saída de um volume padrão do NetWorker após o rebobinamento é semelhante a esta:

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

Este exemplo demonstra um volume íntegro com dois blocks de 32K nos dois primeiros arquivos indicando o rótulo, seguidos por blocks de 96K pontuados periodicamente por marcas de arquivo até o EOD (End of Data) encontrado após o arquivo 18.

WINDOWS
Para Windows, você também deve informar o tamanho do bloco que deseja ler:

t_reader \\.\tape0 131072

O efeito disso é que o Windows tenta ler qualquer tamanho de bloco fornecido a ele, e não reclamar (apesar de ser potencialmente maior do que o tamanho de bloco real escrito) - embora ele irá errar se o tamanho do bloco fornecido como o argumento é menor do que o bloco real, ou se houver uma limitação de sistema operacional ou driver que torna um bloco desse tamanho inutilizável.

Como o Windows não pode determinar e relatar automaticamente o tamanho do bloco, ele deve ser fornecido como o segundo argumento. Se o tamanho do bloco for muito grande, ele apresenta relatórios incorretos, pois está simplesmente lendo vários blocos e apresentando-os como o tamanho fornecido pelo argumento. Se o tamanho do bloco fornecido, por exemplo, 131072, for menor do que o tamanho real do bloco, por exemplo, 262144, você receberá um erro:

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

Portanto, para determinar corretamente um tamanho de bloco desconhecido, comece em 32768 e dobre até que o utilitário seja bem-sucedido. No entanto, geralmente é possível determinar o tamanho esperado do bloco a partir do rótulo.

O Windows também tem duas variáveis que podem ser definidas para uma depuração mais profunda:

set EXPLODE_LEVEL=1

Causas t_reader para relatar o cabeçalho do bloco para todos os blocos do NetWorker encontrados:

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

Para causar t_reader para despejar o primeiro 512 B de cada bloco, leia:

set DUMP_BUFFER=1

Espere um resultado 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
...

Isso pode permitir uma depuração mais profunda ou comprovar volumes danificados ou criptografados que não sejam do NetWorker, mas é obviamente para usos incomuns.

 

Additional Information

t_reader também vem com um utilitário complementar, t_writer.exe. Este é um utilitário somente para Windows que substitui utilitários UNIX, como tar e dd, e permite que as gravações de teste sejam executadas em fitas em tamanhos de bloco personalizados. Ele requer o arquivo que o acompanha, seeding.image ou qualquer arquivo binário de mesmo nome.

Para usar o utilitário, execute-o usando um dispositivo carregado por mídia como o primeiro argumento e o tamanho de bloco desejado em bytes como o segundo, por exemplo:

win_t_writer.exe \\.\Tape2147483639 131072

O utilitário será executado até que o usuário interrompa o processo. Ele pode ser executado sucessivamente no mesmo volume com tamanhos de bloco diferentes para simular tamanhos de bloco de variantes, ou repetidamente até a falha se houver suspeita de erros aleatórios de E/S ou redefinições de SCSI. Ele também pode ser usado para demonstrar se uma condição está truncando tamanhos de blocos abaixo da camada de aplicação.

Como exemplo do resultado:

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.