2gusia (2gusia) wrote,
2gusia
2gusia

Category:

Устройство записи на ленту во FreeBSD

Tape-related documentation is poor, here and elsewhere.
Связанная с лентой документация убога, здесь и где бы то ни было.

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;
Tags: lto, nas, nas4free, железо
Subscribe

  • Дом построить

    Деревья я сажал, детей четверо, все дочки, квартиры покупал. Вот и дом построил в Коломне, на малой родине. Сегодня присвоили кадастровый номер и…

  • Дети бывшими не бывают

    Вчера гулял с дочками. Потом захолодало - поехали ко мне, учил делать хумус. Растут девчонки. Сейчас прочитал текст ниже - и подумал, стоит…

  • Ради фотки в соцсети

    Смотрю на этого украинского диверсанта. С одной стороны (и главное) хорошо, что ни он, ни, тем более, его 15 сослуживцев ничего уже не сделают. А…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 15 comments

  • Дом построить

    Деревья я сажал, детей четверо, все дочки, квартиры покупал. Вот и дом построил в Коломне, на малой родине. Сегодня присвоили кадастровый номер и…

  • Дети бывшими не бывают

    Вчера гулял с дочками. Потом захолодало - поехали ко мне, учил делать хумус. Растут девчонки. Сейчас прочитал текст ниже - и подумал, стоит…

  • Ради фотки в соцсети

    Смотрю на этого украинского диверсанта. С одной стороны (и главное) хорошо, что ни он, ни, тем более, его 15 сослуживцев ничего уже не сделают. А…