Как определить, сколько места осталось на ленте LTO?
Если я попытаюсь дойти до конца и проверить статус, я увижу, что я нахожусь в файле № 17, но я не знаю, насколько большим был каждый файл.
$ mt -f /dev/nst1 eod
$ mt -f /dev/nst1 status
SCSI 2 tape drive:
File number=17, block number=0, partition=0.
Tape block size 0 bytes. Density code 0x44 (LTO-3).
Soft error count since last status=0
General status bits on (81010000):
EOF ONLINE IM_REP_EN
Если не считать всю полосу, как я могу определить используемую / свободную емкость ленты?
Ответы:
Если у вас есть HP-совместимый * диск (в качестве примера я приведу диск Tandberg Data HH LTO 4), вы можете найти оставшуюся емкость ленты в журналах SCSI, а также множество других интересных моментов, таких как степень сжатия, чтение / запись. сбои, история накопителя / ленты и т. д.
sg_logs -a /dev/nst1
Эта утилита доступна в дистрибутивах, обычно называемых
sg3-utils
илиsg3_utils
.Вы ищете строки, такие как:
Main partition remaining capacity (in MiB)
Megabytes written to tape
(вычесть из несжатой емкости)Data bytes written to media by WRITE commands
(вычесть из несжатой емкости)Если это не удастся, вы можете попробовать специфичные для поставщика инструменты. Например, у HP есть HPE Library & Tape Tools , которые работают на всех HP-совместимых * дисках. В его меню вы можете найти возможность создавать и просматривать отчет о диске, который предлагает всю информацию
sg_logs
и многое другое.И если все это не получится, вы можете просто записать несжимаемые данные до конца ленты и выполнить математические расчеты для блоков, написанных, чтобы выяснить, что осталось (само собой разумеется, это немного неприятно):
dd if=/dev/urandom of=/dev/nst1 bs=1M status=progress iflag=fullblock
или
openssl enc -aes-256-ctr -pass pass:"$(dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64)" -nosalt < /dev/zero | dd of=/dev/nst1 bs=1M status=progress iflag=fullblock
* Насколько мне известно, все диски, кроме IBM и, возможно, Dell, принадлежат одному и тому же производителю и совместимы с инструментами HP / HPE.
Я использовал
nst1
в этом ответе, так как это устройство в исходном вопросе, обновляйте по мере необходимости.источник
Прежде всего: это не будет легко.
В ленточном картридже есть чип, который предлагает широкий спектр информации. Этот чип называется MAM (вспомогательная память носителя). Информацию можно прочитать с помощью команды SCSI «READ ATTRIBUTE» на ленточном накопителе во время загрузки ленты. Одним из атрибутов является «ОСТАЛОСЬ ЕМКОСТЬ В РАЗДЕЛЕ». Он содержит количество байтов, которые могут быть записаны в текущий раздел ленты. Что приводит к вопросу: что такое раздел ленты? Последние версии лент LTO (LTO 5 и новее) могут быть разделены (LTFS использует два раздела).
Если ваша лента была разбита на разделы, у каждого из ваших разделов будет свободное пространство, и вам нужно будет перебрать все разделы, чтобы получить информацию о свободном пространстве каждого раздела.
Если вы хотите узнать больше о MAM, взгляните на Справочник по SCSI IBM LTO-8, в котором это подробно объясняется (раздел 6.5, начиная со стр. 355, содержит интересную информацию). Если вам нужна отправная точка для реализации этого, возможно, вам стоит взглянуть на maminfo или эту проблему в трекере проблем sg3_utils .
Я не уверен, что эта информация обновляется сразу после записи на ленту. Возможно, это только обновление при отключении, которое сделает поиск точной информации еще сложнее. Я также не уверен, как это ведет себя, когда вы перезаписываете ленту. Возможно, вам придется выяснить это самостоятельно.
источник
Я не уверен, но, возможно, я могу предложить вам использовать программное обеспечение ibm ITDT, оно имеет много возможностей для работы с ленточными библиотеками и лентами, возможно, вы можете осмотреть это программное обеспечение, у него есть такая возможность, как извлечение и отображение картриджа информация об использовании и здоровье.
источник