Как я могу определить, сколько места осталось на ленте 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
, а затем запустите сценарий. В результате вы увидите «Оставшаяся емкость в разделе», а также «Максимальная емкость в разделе».