Как использовать утилиту t_reader

Summary: В этой статье описано использование t_reader и t_writer утилит в различных операционных системах, а также где их скачать.

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

  • Необходимо определить фактические размеры блоков на ленте
  • Необходимо проверить структуру меток NetWorker
  • Необходимо проверить физическую целостность ленточного носителя
  • Необходимо подтвердить метаданные заголовка блока NetWorker
  • Необходимо выгрузить необработанные первые 512 байт каждого блока

Оператор t_reader Утилита предназначена для диагностики, поиска и устранения неисправностей, связанных с ленточным накопителем. Это также поддержка NetWorker, которая предоставляет несколько функций ленточного накопителя, что делает его полезным средством устранения неполадок. С его помощью можно решать следующие задачи:

  • Проверка фактического размера блоков, записанных на ленту
  • Определите, есть ли различия в размерах блоков, записываемых на ленту
  • Тестовое чтение физического носителя на предмет ошибок ввода-вывода или физических повреждений
  • Определите, могут ли элементы, расположенные ниже прикладного уровня (драйвер, ОС, транспорт, само устройство), считывать блоки определенного размера
  • Раскрытие низкоуровневой информации в Windows невозможно ни с одной другой текущей утилитой

 

Cause

Проблемы с ленточными носителями часто вызваны внешними факторами, такими как:

  • Проблемы с фактором блокировки ОС/HBA/драйверов
  • Необнаруженные ошибки оборудования ввода-вывода или транспортные ошибки во время записи
  • Ухудшение состояния носителя из-за возраста, использования, гигиены диска или неправильного хранения

 

Resolution

Скачать t_reader отсюда: Инструменты NetWorker

Извлеките пакет и используйте t_reader для архитектуры хоста.

  • t_reader не будет автоматически перематывать том на UNIX (это предлагается на Windows) - это позволяет вам позиционировать и начинать с любого места на ленте.
  • В большинстве операционных систем t_reader сообщает о размерах блоков, которые он находит с этой точки; Некоторые из них требуют для чтения определенного размера блока.
  • t_reader начинает нумерацию файлов и записей с 0 - это означает, что если вы хотите переместиться вперед к файлу 5, запишите 500 преднамеренно, а затем запустите t_reader - t_reader выходы, по-видимому, начинаются с F0 R0, хотя на самом деле начинаются с гораздо более позднего адреса.
  • В операционных системах, которые могут определять фактический размер блока, ограничение размера блока в драйвере или операционной системе приводит к ошибке, указывающей, что буфер слишком мал для хранения данных блока, например cannot allocate memory или more data is available.
  • t_reader не требует считывания фактических данных, но может распознавать и считывать этикетки NetWorker, если они есть;
  • В Windows он также может считывать и сообщать информацию о заголовках блоков, если таковая имеется; Он также может выгружать первые 512 необработанных байт данных (см. переменные ниже)
  • Всегда — размеры блоков должны быть одинаковыми после первой пары блоков меток по 32 Кбайт и должны соответствовать размеру блоков, записанному в метке, возвращенному сканером

ЮНИКС
Чтобы подготовить том, сначала перемотав его назад, выполните следующие действия.

mt -f /dev/nst0 rewind

Для запуска t_reader, предоставьте дескриптор файла устройства ОС накопителя с загруженным ленточным картриджем, например:

./t_reader_linux /dev/nst0

Вывод стандартного тома NetWorker после перемотки выглядит следующим образом:

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

В этом примере показан работоспособный том с двумя блоками по 32 КБ в первых двух файлах, указывающими метку, за которыми следуют 96 КБ блоков, периодически перемежающихся файловыми метками, до тех пор, пока не наступит конец данных (EOD) после файла 18.

ВИНДОУС
Для Windows вы также должны указать размер блока, который вы хотите прочитать:

t_reader \\.\tape0 131072

Результатом этого является то, что Windows пытается считывать любой размер блока, предоставленный ей, и не жаловаться (несмотря на то, что он потенциально больше, чем фактический размер записанного блока) - хотя он будет ошибкой, если размер блока, указанный в качестве аргумента, меньше фактического блока, или существует ограничение ОС или драйвера, которое делает блок такого размера непригодным для использования.

Поскольку Windows не может автоматически определять и сообщать размер блока, он должен быть указан в качестве второго аргумента. Если размер блока слишком велик, он сообщает неверно, так как просто считывает несколько блоков и представляет их как размер, предоставленный аргументом. Если указанный размер блока, например 131072, меньше фактического размера блока, например 262144, вы получите сообщение об ошибке:

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

Поэтому, чтобы правильно определить неизвестный размер блока, начните с 32768 и удваивайте до тех пор, пока утилита не добьется успеха. Однако обычно ожидаемый размер блока можно определить по метке.

В Windows также есть две переменные, которые можно установить для более глубокой отладки:

set EXPLODE_LEVEL=1

Причины t_reader Чтобы сообщить заголовок блока для любых найденных блоков NetWorker, выполните следующие действия.

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

Чтобы вызвать t_reader чтобы выгрузить первые 512 Б каждого блока, прочитайте:

set DUMP_BUFFER=1

Ожидайте следующий вывод:

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

Это может обеспечить более глубокую отладку или доказать отсутствие NetWorker, поврежденных или зашифрованных томов, но, очевидно, предназначено для редких случаев.

 

Additional Information

t_reader также поставляется в комплекте с утилитой-компаньоном, t_writer.exe. Это утилита только для Windows, которая заменяет утилиты UNIX, такие как tar и dd, и позволяет выполнять тестовую запись на ленты с пользовательскими размерами блоков. Для этого требуется сопроводительный файл seeding.image или любой двоичный файл с тем же именем.

Чтобы использовать утилиту, запустите ее с использованием носителя устройства в качестве первого аргумента и необходимого размера блока в байтах в качестве второго, например:

win_t_writer.exe \\.\Tape2147483639 131072

Утилита работает до тех пор, пока пользователь не прервет процесс. Его можно запускать последовательно на одном томе с разными размерами блоков для имитации различных размеров блоков или многократно до сбоя, если есть подозрение на случайные ошибки ввода-вывода или сброс SCSI. Его также можно использовать для демонстрации того, что условие усекает размеры блоков ниже уровня приложения.

В качестве примера выходных данных:

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.