Реализация
Полноценная файловая система на ленточных носителях появилась только к стандарту LTO-5. До этого (стандарты от 1 до 4) данные сохраняются на ленту в виде пакетов.
Данная программа создает виртуальный диск (папку) с которой можно работать как с обычным. Программа осуществляет распределение файлов среди носителей и их чтение с носителя или кеша. Файлы собираются в пакеты определенного размера, что облегчает их загрузку и последующий поиск и выгрузку с кассеты.
Отказоусточивость реализована за счет возможности указания количества копий сохраняемых файлов: от 1 до бесконечности. Каждая копия сохраняется на отдельную кассету. Ограничение износа кассет и считывающего устройства обеспечивается за счет использования локального кэша.
Ввиду особенностей реализации программа функционирует только в Unix среде (ubuntu, debian и др.)
В качестве базы данных используется mysql. Виртуальная файловая система реализована с применением fuse (bazil.org/fuse).
-
Особенности реализации:
- Конфигурационный файл в формате json (github.com/hjson/hjson-go).
- Есть обработчик нажатия Ctrl-C для штатного прекращения работы и размонтирования виртуального диска (папки).