Сборка 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:

    1. RPM-based OS

      Чтобы собрать LTFS, выполните:

      sudo yum install perl
      sudo yum install make
      sudo yum install gcc
      sudo yum install git
      sudo yum install pkg-config
      sudo yum install libxml2-dev
      sudo yum install automake
      sudo yum install autoconf
      sudo yum install libtool
      sudo yum install uuid
      sudo yum install uuid-devel
      sudo yum install libuuid-devel
      sudo yum install icu
      sudo yum install fuse
      sudo yum install fuse-devel
      sudo yum install libicu-devel
      sudo yum install net-snmp
      sudo yum install net-snmp-devel
    2. DEB-based OS

      Чтобы собрать LTFS, выполните следующие команды (для всех поддерживаемых систем, кроме Astra Linux 1.8 и Debian 12):

      sudo apt install make
      sudo apt install git
      sudo apt install pkg-config
      sudo apt install libxml2-dev
      sudo apt install automake
      sudo apt install autoconf
      sudo apt install libtool
      sudo apt install uuid
      sudo apt install uuid-dev
      sudo apt install fuse
      sudo apt install libfuse-dev
      sudo apt install libsnmp-dev
      sudo apt install icu-devtools
      sudo apt install libicu-dev

      Для ОС Astra Linux 1.8 и Debian 12 замените команду:

      sudo apt install fuse

      командой:

      sudo apt install libfuse2

      Создайте файл /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
    sudo ./autogen.sh
    sudo ./configure
    sudo make
    sudo make install
    sudo ldconfig -v
  3. Проверьте, подключена ли ленточная библиотека к хосту:

    sudo 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. Получите информацию о ленточной библиотеке, обращаясь к роботу ленточной библиотеки:

    sudo 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 и проверьте её работу:

    sudo mtx-f /dev/sg6 load 1 0

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

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

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

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

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

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

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

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

    sudo mtx -f /dev/sg6 unload 1 0

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