Связанная с лентой документация убога, здесь и где бы то ни было.
FreeBSD man по mt
Устройство записи на ленту, aka стример, здорово отличается от более привычных в наше время устройств хранения информации. Оно не то чтобы тупое (хотя тупое, что греха таить). Оно архаичное - вылитая лента в машине Тьюринга...
Использование магнитной ленты неожиданно оказалось для меня довольно головоломным. Это после того, как разобрался, всё выглядит просто и логично. А в процессе понимания - прям квантовая механика. Ну как-то непривычно, что объект меняется от одного факта обращения к нему :) Плюс к тому в Сети всё больше про Linux. FreeBSD всё до крайности похоже - но не без нескольких милых особенностей. Плюс терминологические накладки (что есть файл, к примеру). Плюс обычные шуточки с размером гигабайта... Так что пишу шпаргалку, чтоб через несколько лет снова не продираться через забытое. Может и кому пригодится.
LTO стример в SAS (и SCSI) подключении виден во FreeBSD как
/dev/sa0
(и так далее - sa1, sa2...). От sequential access - последовательный доступ. manНо это устройство годится только для случая, когда на одной ленте - один архив. В принципе, это хороший подход. Потому, что в этом варианте запутаться сложно. Устройство
/dev/sa0
после каждой операции перематывается на начало.Так что попытка писать на него несколько архивов закончится провалом - последний затрёт все остальные. Безо всяких предупреждений и сообщений об ошибке.
Есть устройство
/dev/nsa0
. Буковка n от НЕ перематываемое, no rewind. Это устройство работает точно также, но в конце не перематывает кассету. На него можно записать несколько архивов. И даже потом, при определённой аккуратности и везении 8), прочитать.Третье устройство -
/dev/esa0
. Оно не только перематывает ленту, но и выбрасывает кассету, от eject.То есть хардкорный как каменный топор подход: одна и та же команда может быть применена к разным логическим устройствам, а результате единое физическое устройство сделает разные вещи и останется в разном состоянии. Чтобы было удобнее - не вполне очевидно, как это состяние прочитать. Извольте запоминать сами. Да, и никаких лишних рюшечек типа списка файлов на устройстве тоже не предусмотрено.
Если мало - есть ещё устройство
/dev/sa0.ctl
Зачем оно нужно, даже прочитав man я не понял...В общем, не удивительно, что у частных пользователей стримеры не пользуются особой популярностью. А в корпоративном применении управляются непростыми распределёнными приложениями. Впрочем, после того, как поймёшь логику работы всё выглядит понятно и логично. И лента выглядит очень просто
ooooooXooooXooooooooXX-----------
Здесь каждая группа ooo - "файл", то есть архив. X - знак "конца файла" XX - означают конец всех файлов и ----- не использованную часть ленты.
И при довольно скромном использовании возможностей ганглия межушного и с помощью всего двух комманд tar и mt (от tape archive и magnetic tape) вполне себе можно архивированием холодных данных управляться. Забегая вперёд: Обе команды есть из коробки в nas4free и опять же в порядке шпаргалки на будущее для себя минимальное использование опишу. (pax, кстати, тоже из коробки есть, а вот cpio нету)
Для полноценного архивирования на ленту выбор оказался из bacula и её форка bareos, кем-то из которых займусь попозже. А вот amanda отпала тк не хочет писать больше одного архива на одну ленту.
PS Первых две из обещанных милых особенностей
- LTO 4 лента емкостью 800 Gb без сжатия вместит только 745 привычных гигабайт (на самом деле гибибайт - 230 байт в каждом). Всё как в жёстких дисках, а поверх 2:1 придуманное маркетинговое сжатие.
- В BSD не реализовано толком определение конца ленты. Во всяком случае при установке демон записи на ленту Bacula чёрным по белому пишет
Due to lack of some features in the FreeBSD tape driver
implementation you MUST add some OS dependent options to
the bacula-sd.conf file:
Hardware End of Medium = no;
Backward Space Record = no;
Backward Space File = no;