Einführung
LTFS, Linear Tape File System, ermöglicht es, LTO-Tapes wie einen „normalen“ Wechseldatenträger zu verwenden. Es ändert aber nicht, wie Bandlaufwerke funktionieren, daher ist mit langen Seek-Times zu rechnen. Für die Verwendung von LTFS ist eine Formatierung des Tapes notwendig. Kompatibel ist das ganze ab LTO 5. Kompatibel sind auch IBM 3592 / Jaguar ab der Serie TS1140. Ideal für alle, die Tapes nur mal gelegentlich für Archivierungszwecke benötigen und dafür nicht auf aufgeblähte und z.T. kostenpflichtige Software wie Veeam, Bacula oder YoYotta setzen möchten.
HBA
Für den Anschluss benötigen wir selbstverständlich einen Host Bus Adapter. Ich verwende einen alten 8Gb FC Adapter von QLogic, welchen ich in meinem Selbstbau-NAS einbaue. Die Sicherung wird über eine VM laufen, daher gibt es ein Passthrough des HBA an die VM.

Kontrolle des HBA und Tape Drives unter Ubuntu
lspci
zeigt die über PCI angeschlossenen Geräte an.

lsscsi
zeigt die erkannten Geräte über SCSI an.

Installation unter Ubuntu
Für Ubuntu gibt es im Gegensatz zu Mac und Red Hat kein fertiges Package, daher müssen wir es selbst kompilieren.
#Installation der nötigen Tools, falls nicht vorhanden sudo apt install make automake autoconf libtool fuse uuid libxml2 libxml2-dev libsnmp-dev pkg-config libfuse-dev uuid-dev icu-devtools #Clone der Github Repo git clone https://github.com/LinearTapeFileSystem/ltfs #Wechsel in den Ordner ltfs cd ltfs #Ausführen von autogen.sh ./autogen.sh #Ausführen von configure ./configure #Kompilierung mit make make #Installation sudo make install #Update der Shared Libraries sudo ldconfig
Kontrolle Tape Drive
sudo ltfs -o device_list
zeigt uns die erkannten Tape Drives:

Hier ist das Tape Drive unter /dev/sg2
relevant.
Formatierung mit LTFS
Um das Tape mit LTFS verwenden zu können, muss es formatiert werden. Es werden alle Daten darauf gelöscht: sudo mkltfs -d /dev/sg2
Nach ca. 2 Minuten ist das Tape mit LTFS formatiert:

Mounten des Tapes
Als nächstes kann das Tape eingebunden werden. Mit
sudo mkdir /mnt/ltfs sudo ltfs -o devname=/dev/sg2 /mnt/ltfs
erstellen wir einen Ordner in /mnt mit der Bezeichnung ltfs. Das Tape im Tape Drive unter /dev/sg2 wird verwendet, um unter /mnt/ltfs zu mounten.
df -h /mnt/ltfs
zeigt die aktuelle Belegung:

Kopieren von Dateien
Verwendet den File Manager euer Wahl, um Dateien zu kopieren. Der Speicher von gelöschten Dateien wird nicht wieder freigegeben, dafür wäre eine erneute Formatierung notwendig.

Besser wäre es, wenn man statt den normalen Tools ltfs_ordered_copy
verwendet. Es wird auf die Reihenfolge der Files auf dem Tape geachtet. Python muss installiert sein.
Unmount des Tapes
Mit folgendem Befehlt führen wir einen unmount aus: sudo umount /mnt/ltfs
Je nachdem, wo zuletzt geschrieben und gelesen wurde, kann es einen Rewind des Tapes geben.
Performance
Es ist von Vorteil, wenn als Source ein schneller Speicher verwendet wird. Vom NAS über LAN mit 1 GBit zu kopieren ist sowieso zu langsam. Aber selbst eine direkt angeschlossene 3.5″ Enterprise HDD ist für Tape zu langsam. Performante Drives aktueller Generationen erreichen ohne Probleme 300 MB/s.

Mit diesem Bottleneck wird das Tape keine konstante Geschwindigkeit beim Lesen/Schreiben halten können. Es wird zu Pausen und zu Rewinds kommen. Ich kann nicht sagen, ob das für die gelegentliche Nutzung schädlich ist, ideal wird es aber nicht sein.
Für diesen Post wurde eine VM verwendet. Die QLogic-Karte unterstützt PCIe 2.0 und ist mit einem x8 Anschluss ausgestattet. Eingesteckt ist diese in einem PCIe 3.0 x16 Slot, der aber nur mit x1 verdrahtet ist. Mit PCIe 2.0 x1 sollte in der Theorie immer noch 500 MB/s möglich sein. Mit Abzug vom Overhead sollte das noch für LTO–9 reichen.
Ich habe bessere Ergebnisse in einem physischen Server mit Kopiervorgängen auf/von SSD erzielt.