Сборка LTFS

Информация в данном пункте необходима для использования пулов Tape Library, LTFS.

Страница проекта: https://github.com/LinearTapeFileSystem/ltfs

Зависимости, которые должны быть установлены перед сборкой: https://github.com/LinearTapeFileSystem/ltfs/wiki/Build-Environments

Общая сборочная инструкция: https://github.com/LinearTapeFileSystem/ltfs#build-and-install-on-linux

Поддерживаемые устройства: https://github.com/LinearTapeFileSystem/ltfs#supported-tape-drives

  1. Установите зависимости, необходимые для сборки LTFS:

    RPM-based OS (Rosa Cobalt, RHEL)
    yum install perl make gcc git pkg-config libxml2-dev automake autoconf libtool uuid uuid-devel libuuid-devel icu fuse fuse-devel libicu-devel net-snmp net-snmp-devel
    RPM-based OS (RedOS, CentOS, Rosa Chrome)
    dnf install perl make gcc git pkg-config libxml2-dev automake autoconf libtool uuid uuid-devel libuuid-devel icu fuse fuse-devel libicu-devel net-snmp net-snmp-devel
    DEB-based OS (кроме Astra Linux 1.8 и Debian 12)
    apt install make git pkg-config libxml2-dev automake autoconf libtool uuid uuid-dev fuse libfuse-dev libsnmp-dev icu-devtools libicu-dev
    Astra Linux 1.8 и Debian 12
    apt install make git pkg-config libxml2-dev automake autoconf libtool uuid uuid-dev libfuse2 libfuse-dev libsnmp-dev icu-devtools libicu-dev

    Создайте файл /usr/bin/icu-config со следующим содержимым:

    #!/bin/sh
    opts=$1
    case $opts in '--cppflags')
    echo '' ;;
    '--ldflags')
    echo '-licuuc -licudata -ldl' ;;
    *)
    echo '/usr/lib/x86_64-linux-gnu/icu/pkgdata.inc' ;;
    esac

    и выполните команду:

    chmod 755 /usr/bin/icu-config
  2. Сборка

    Для сборки выполните:

    git clone https://github.com/LinearTapeFileSystem/ltfs.git
    cd ltfs
     ./autogen.sh
     ./configure
    make
    make install
    ldconfig -v
  3. Проверьте, подключена ли ленточная библиотека к хосту:

    lsscsi -g

    Команда должна показать подключённые устройства, в их числе привод (приводы) ленточной библиотеки и робота ленточной библиотеки:

    [1:0:0:0] tape IBM ULT3580-TD6 D8E4 /dev/st0 /dev/sg5

    [1:0:0:1] mediumx IBM3573-TL C.20 /dev/sch0 /dev/sg6

    В данном случае у библиотеки есть один ленточный привод (магнитофон) и робот, к которому можно обращаться через /dev/sg6.

  4. Получите информацию о ленточной библиотеке, обращаясь к роботу ленточной библиотеки:

    mtx -f /dev/sg6 status

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

    Пример вывода sudo mtx -f /dev/sg6 status
    Storage Changer /dev/sg6:1 Drives, 24 Slots ( 1 Import/Export )
    Data Transfer Element 0:Empty
    Storage Element 1:Full :VolumeTag=INT020L6
    Storage Element 2:Full :VolumeTag=INT023L6
    Storage Element 3:Full :VolumeTag=INT033L6
    Storage Element 4:Full :VolumeTag=INT026L6
    Storage Element 5:Full :VolumeTag=INT029L6
    Storage Element 6:Full :VolumeTag=INT022L6
    Storage Element 7:Full :VolumeTag=INT034L6
    Storage Element 8:Full :VolumeTag=INT025L6
    Storage Element 9:Full :VolumeTag=INT028L6
    Storage Element 10:Full :VolumeTag=INT021L6
    Storage Element 11:Full :VolumeTag=INT024L6
    Storage Element 12:Full :VolumeTag=INT039L6
    Storage Element 13:Full :VolumeTag=INT012L6
    Storage Element 14:Full :VolumeTag=INT011L6
    Storage Element 15:Empty
    Storage Element 16:Full :VolumeTag=INT036L6
    Storage Element 17:Full :VolumeTag=INT014L6
    Storage Element 18:Full :VolumeTag=INT010L6
    Storage Element 19:Empty
    Storage Element 20:Full :VolumeTag=INT038L6
    Storage Element 21:Full :VolumeTag=INT037L6
    Storage Element 22:Empty
    Storage Element 23:Full :VolumeTag=CLNU41L1
    Storage Element 24
    IMPORT/EXPORT:Full :VolumeTag=INT027L6

    В данном случае библиотека состоит из 24 слотов, один из которых — слот ввода-вывода, через который можно импортировать или экспортировать ленточные картриджи, и один ленточный привод (сейчас пуст). Слоты ленточной библиотеки заполнены картриджами с определенными VolumeTag, один из картриджей — чистящий, три слота в ленточной библиотеке пусты.

  5. Загрузите картридж в ленточную библиотеку, создайте на нем файловую систему LTFS и проверьте её работу:

    mtx -f /dev/sg6 load 1 0

    В результате выполнения этой команды картридж из слота 1 будет загружен в единственный магнитофон 0.

  6. Создайте файловую систему LTFS на картридже:

    mkltfs -f -d /dev/sg5
  7. Проверьте файловую систему LTFS:

    ltfsck /dev/sg5
  8. Создайте точку монтирования:

    mkdir /ltfs
  9. Монтируйте файловую систему LTFS:

    ltfs -o devname=/dev/sg5 /ltfs/
  10. Убедитесь, что файловая система примонтирована:

    df -k /ltfs
    Filesystem 1K-blocks Used Available Use% Mounted on
    
    ltfs:/dev/sg5 2351648768 0 2351648768 0% /ltfs
  11. Отмонтировать файловую систему LTFS:

    umount /ltfs
  12. Возвратить картридж из магнитофона 0 в слот 1:

    mtx -f /dev/sg6 unload 1 0

Если все действия завершились успешно, то ленточная библиотека готова к работе с сервером RuBackup.