LTOドライブの導入

手元で管理しているデータ量が多くなり、ある程度はコールドストレージへ移動すべきだろうと思い立ちました。
丁度LTOドライブも生えてきたので() 、使えるようにしていこうと思います。

1. 用意するもの

  • LTOドライブ (今回はLTO6に対応したBRSLA-1204-DCを使用)
  • ドライブに合ったインターフェースカード (SASのためLSI社の SAS 9212-4i4eを使用)
  • SFF-8482 to SATA 変換ケーブル
  • 適当なコンピュータ (Ubuntu 20.04.6 LTS インストール機を使用)

2. SASカードの準備

まずは、SAS 9212-4i4e のドライバインストール要否を確認します。

lshw -C storage
  *-sas
       description: Serial Attached SCSI controller
       product: SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon]
       vendor: Broadcom / LSI
       physical id: 0
       bus info: pci@0000:01:00.0
       version: 03
       width: 64 bits
       clock: 33MHz
       capabilities: sas pm pciexpress vpd msi msix bus_master cap_list rom
       configuration: driver=mpt3sas latency=0
       resources: irq:16 ioport:e000(size=256) memory:f7cc0000-f7cc3fff memory:f7c80000-f7cbffff memory:f7c00000-f7c7ffff

きちんと認識されており、driver として mpt3sas が使われているようです。
手当て不要であっさり終わりました。

3. LTOドライブの接続と状態確認

ではいよいよ、LTOドライブを繋いでみます。
テープドライブは/dev/st* で認識されますが、残念ながらただ繋いだだけでは認識してくれませんでした。
stドライバは追加ドライバパッケージである linux-modules-extra に含まれているようですので、インストールします。

apt search linux-modules-extra-`uname -r`
linux-modules-extra-5.15.0-91-generic/focal-updates,focal-security 5.15.0-91.101~20.04.1 amd64
  Linux kernel extra modules for version 5.15.0 on 64 bit x86 SMP

apt install linux-modules-extra-`uname -r`

再起動すると、無事に認識されました。
続いて、状態確認ツール(HPE Library and Tape Tools)をインストールしていきます。公式からtarを落とし、サーバへ移しておきましょう。
rpmのみ提供の、RHEL系前提のツールのため alien を使用してインストールします。

tar -xvf ./hpe_ltt64_linux_x86_64.tar
alien ./hpeltt-6.5.0.10-4.x86_64.rpm    #rpmの変換
dpkg -i hpeltt_6.5.0.10-5_amd64.deb     #インストール
apt install libncurses5                 #依存パッケージのインストール
/opt/ltt/hpe_ltt                        #インストールしたツールの実行

癖のあるUIですが、初回起動時にドライブ状態を調べるには次のような操作を行います。

  1. Press any key to continue
    任意のキーを押して続行します
  2. Scan Mode Selection
    1 [X] Hardware Scan が選択されていることを確認の上、”continue”と入力してエンターを押下します
  3. Main
    Processors/Enclosures: 以下 Drives: にLTOドライブが認識されていることを確認の上、”select 1″と入力してエンターを押下します (1 はLTOのドライブ番号)
  4. Main > Drive Information
    少し待つとこの画面になり、ドライブの情報(と、テープを入れていればテープの情報)が表示されます。”health”と入力してエンターを押下します
  5. Main > Drive Information > Support Ticket
    “extract”と入力してエンターを押下します
    プロンプトが帰ってきたら、”view”で閲覧、”save”で保存ができます

なお、閲覧時のページ送りは Ctrl-D / Ctrl-U で実施できます。
また、入力コマンドに困った場合は何も入力せずEnterを押下すれば、コマンド一覧が表示されます。
ちなみに、save するとサポートチケット形式(.lzt)で保存されますが、次のようにしてxmlへ変換できます。

/opt/ltt/hpe_ltt -f xmlticket file=<original.lzt> filename=<converted.xml>

4. 暗号化のサポート

LTO-4以降では暗号化が使えますので、ツールを入れておきます。
stenc と呼ばれるソフトウェアで、READMEの通りにインストールします。

apt install pkg-config pandoc                                 #必要なパッケージ群の事前インストール
git clone https://github.com/scsitape/stenc.git
cd stenc/
autoreconf --install
./autogen.sh && ./configure  
make check
make
make install
stenc -f /dev/nst0                         #情報の表示
Status for /dev/nst0 (HP Ultrium 6-SCSI 32DW)
--------------------------------------------------
Reading:                         Not decrypting
Writing:                         Not encrypting
Key instance counter:            0
Supported algorithms:
1    AES-256-GCM-128
     Key descriptors allowed, maximum 32 bytes
     Raw decryption mode allowed, raw read disabled by default

5. LTFSのサポート

LTO-5以降では、通常ストレージのように使用できるLTFS (Linear Tape File System) に対応しています。
これをサポートするソフトウェア (HPE StoreOpen and LTFS Software) を導入します。
HPE Library and Tape Tools の時と同様、公式からtarを落としておきましょう。

tar -xvf ./HPE_StoreOpen_Software_3.5.0_RHELx64.tar.gz
alien ./HPE-SOS-3.5.0-62.x86_64.rpm     #rpmの変換
dpkg -i hpe-sos_3.5.0-63_amd64.deb      #インストール

#--- libicui18n.so.50 がないと怒られるので、ソースからビルドする ---#
wget https://github.com/unicode-org/icu/releases/download/release-50-2/icu4c-50_2-src.tgz
tar -xvf ./icu4c-50_2-src.tgz
cd icu/source
./runConfigureICU Linux
make
make install                           #デフォルトでは /usr/local/lib/ にインストールされる
echo "/usr/local/lib/" | tee -a /etc/ld.so.conf.d/HPE-SOS.conf
ldconfig -v

mkltfs –help と打って、ヘルプが出れば問題なくインストールできています。

6. テープへの書き込み (暗号化あり)

これで準備が整ったので、いよいよ書き込みを行います。
まずは、暗号化鍵を生成し、ドライブにロードします。

openssl rand -out keyfile.key -hex 32          #鍵生成
echo "description" >> keyfile.key              #鍵説明の追加 (オプション)
stenc -f /dev/nst0 -e on -d on -k keyfile.key  #キーのロード (ドライブのEncryption LED が青く光る)

続いて、LTFSでフォーマット (この表現が正しいか怪しいですが)し、マウントします。

mkltfs -d /dev/nst0
ltfs /mnt/lto
df -h
Filesystem             Size  Used Avail Use% Mounted on
  (略)
ltfs:/dev/nst0         2.3T     0  2.3T   0% /mnt/lto

あとは、通常のドライブのように使うだけです。
取り出しは、通常通りumountしてイジェクトします。暗号化キーのアンロードは忘れないようにしましょう。

umount /mnt/lto
ps aux | grep ltfs                                              #マウントポイントが表示されないことを確認する
root 15887 0.0 0.0 451956 4088 ? Ssl 11:05 0:00 ltfs /mnt/lto/  #こういうレコードがあれば、まだ終了処理中
stenc -f /dev/nst0 -e off -d off                                #暗号化キーのアンロード
stenc -f /dev/nst0                                              #アンロードの確認

参考
Where can I find the /dev/st tape drivers on Ubuntu?
UbuntuのLinuxカーネルアップグレード
中古で入手した LTO ドライブの状態を調べる方法
HPE Library & Tape Toolsをubuntu 22.04にインストールする
LTO-5 の暗号化を試す (Ubuntu 22.04, stenc)
Ubuntu 18.04 で LTO-6 の LTFS を使う

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です