初めに
Qiitaのユーザさんにはあまりなじみが無いと思いますが、テープデバイスをマウントして使用できるファイルシステムltfsをソースからbuildしてCentOS7で使用する方法についての備忘録です。
IBMさんのIBM Spectrum Archive Single Drive Edition (SDE)ですと、IBM Tape Device Driverのインストールが必要です。こちらがカーネルドライバーのためビルドが必要ですし、カーネルのアップグレードを行う毎にビルドし直さなければいけませんのでCentOS等ではこちらを使った方が楽かもしれません。
(Version2.4.1.2からsgデバイスが使用される様になり、IBM Tape Device Driverのインストールは必要なくなりました。)
基本的にltfs Gitの手順に従って行えばよいのですが
いくつか注意点があります。
以下はCentOS7.6で試した際の注意点です。
Prerequestについて
ここに記載のあるPrereuestに挙げられているパッケージですがCentOSのパッケージ名と一部異なるものがありますので注意が必要です。
$ rpm -q automake autoconf libtool fuse uuid libxml net-snmp icu4c
automake-1.13.4-3.el7.noarch
autoconf-2.69-11.el7.noarch
libtool-2.4.2-22.el7_3.x86_64
fuse-2.9.2-11.el7.x86_64
uuid-1.6.2-26.el7.x86_64
パッケージ libxml はインストールされていません。
net-snmp-5.7.2-37.el7.x86_64
パッケージ icu4c はインストールされていません。
libxmはlibxml2、icu4cはicuのようです。
$ rpm -q libxml2 icu
libxml2-2.9.1-6.el7_2.3.x86_64
icu-50.1.2-17.el7.x86_64
Parameter settings of the sg driverについて
ここに記載されているsgドライバのパラメータですが、これを指定するとエラーを起こしてltfsでのマウントが失敗します。Redhat7用の設定例ですのでCentOS7でも同様だと思うのですが、allow_dio=1がいけないようです。
/proc/scsi/sg/allow-dioを1にするとマウントに失敗します。
使い方
基本的にIBM版と同じですが、IBM版がIBM Tape Driver(lin_tape)デバイスを使うのに対してGit版はデフォルトではsg(SCSI Generic)デバイスを使います。
どのsgデバイスがテープドライブか?はltfsコマンド「-o device_list」オプションで確認できます。
以下の例では/dev/sg0
$ sudo ltfs -o device_list
4a86 LTFS14000I LTFS starting, LTFS version 2.4.2.0 (Prelim), log level 2.
-省略-
Tape Device list:.
Device Name = /dev/sg0, Vendor ID = IBM , Product ID = ULTRIUM-HH8 , Serial Number = 10WT002321, Product Name =[ULTRIUM-HH8].
ltfsコマンドに「-o devname=デバイス名」を指定してマウントして使用します。
/mnt/ltfsにマウントする場合は「ltfs -o devname=/dev/sg0 /mnt/ltfs」とします。
他の使用方法はIBM版と同じですのでIBM社のKB等をご確認下さい。