Назад | Перейти на главную страницу

Определите оставшуюся емкость ленты LTO

Как я могу определить, сколько места осталось на ленте 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, который работает на всех 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, производятся одним и тем же OEM-производителем и совместимы с инструментами HP / HPE.

Я использовал nst1 в этом ответе, поскольку это устройство в исходном вопросе, обновите при необходимости.

Прежде всего: это будет непросто.

В ленточном картридже есть чип, который предлагает самую разнообразную информацию. Этот чип называется MAM (вспомогательная память носителя). Информацию можно прочитать с помощью команды SCSI «READ ATTRIBUTE» на ленточном накопителе, пока лента загружена. Один из атрибутов - «ОСТАВШАЯСЯ МОЩНОСТЬ В РАЗДЕЛЕ». Он содержит количество байтов, которое может быть записано в текущий раздел ленты. Это приводит к вопросу: что такое раздел на магнитной ленте? Последние версии лент LTO (LTO 5 и новее) могут быть разделены (LTFS использует два раздела).

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

Если вы хотите узнать больше о МАМ, взгляните на Справочник IBM по SCSI LTO-8 это объясняет это подробно (раздел 6.5, начинающийся на стр. 355, содержит интересный материал). Если вам нужна отправная точка для реализации этого, возможно, вам стоит взглянуть на Maminfo или эта проблема в системе отслеживания проблем sg3_utils.

Я не уверен, что эта информация обновляется сразу после записи на ленту. Возможно, это только обновление при размонтировании, что еще больше затруднит получение точной информации. Я тоже не уверен, как это ведет себя при перезаписи ленты. Вероятно, вам придется разобраться в этом самостоятельно.

Я не уверен, но, возможно, я смогу предложить вам использовать программное обеспечение ITDT от ibm, у него много возможностей для работы с ленточными библиотеками и лентами lto, может быть, вы можете ознакомиться с этим программным обеспечением, у него есть такие возможности, как извлечение и отображение картриджа информация об использовании и здоровье.

Еще одно программное решение: https://github.com/Kevin-Nakamoto/LTO-CM-Read

Это сценарий bash для Linux с открытым исходным кодом, который позволяет нам читать информацию MAM с помощью команды SCSI. Это своего рода программная оболочка для команды «READ ATTRIBUTE», которую Андреас уже предлагал в предыдущем посте. Все, что вам нужно сделать, это установить sg3-utils или sg3_utils, а затем запустите сценарий. В результате вы увидите «Оставшаяся емкость в разделе», а также «Максимальная емкость в разделе».