TrueNAS で LTO テープ ドライブを使う

ESXi サーバーで使っていた LTO ドライブを、TrueNAS (旧 FreeNAS) の入った NAS マシンに移し替えました。

これといった手順もなく、ただ移し替えたら動いただけではあるのですが、動作実績ということで情報を残しておこうと思います。

以前の記事

SAS カードは LSI SAS 9212-4i、LTO ドライブは HP Ultrium 3000 BRSLA-0904-DC です。

LSI SAS9212-4i HBA カードを ESXi サーバに導入する | blog.yukirii.dev

SAS 接続の LTO ドライブを使うため、中古の LSI SAS 9212-4i を購入しました。 イカ、自宅の HP ML110 G7 に装着し、 VMWare ESXi 6.0 Update 2 で使えるようようドライバをインストールするま

LTO ドライブを購入したので購入経緯や mt コマンドの使用方法をまとめてみた | blog.yukirii.dev

中古の LTO-5 ドライブを購入してみました。HP の Ultrium 3000 BRSLA-0904-DC です。NAS に保管しているデータのフルバックアップと、すぐには必要のないデータの長期保管場所を探していました。バックアップ先のメディアについて検討した結果、磁気テープを使ってみたいと思い、買ってみました。個人でテープドライブを使ってみたいと思う方の参考になればと思い、本記事では導入に至った経緯や実際の運用について書いてみたいと思います。 本業でバリバリ運用しているわけではないので、完全に手探り状態で進めています。

SAS カードと LTO ドライブの移し替え

NAS マシンは 5 年くらい前に自作したものを使っています。 マザーボードは GIGABYTE GA-H97M-D3H。 PCIEX16 スロットに SAS カードを装着します。

TrueNAS のバージョンは TrueNAS-12.0-U4。 起動後に lspci を確認すると、SAS カードが認識されていました。 追加のドライバーのインストールは不要なようです。

# lspci -v
...
01:00.0 Serial Attached SCSI controller: Broadcom / LSI SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (rev 03)
        Subsystem: Broadcom / LSI Device 30f0
        Flags: bus master, fast devsel, latency 0, IRQ 16
        I/O ports at e000
        Memory at f7bc0000 (64-bit, non-prefetchable)
        Memory at f7b80000 (64-bit, non-prefetchable)
        Expansion ROM at f7b00000 [disabled]
        Capabilities: [50] Power Management version 3
        Capabilities: [68] Express Endpoint, MSI 00
        Capabilities: [d0] Vital Product Data
        Capabilities: [a8] MSI: Enable- Count=1/1 Maskable- 64bit+
        Capabilities: [c0] MSI-X: Enable- Count=15 Masked-
        Capabilities: [100] Advanced Error Reporting
        Capabilities: [138] Power Budgeting <?>
        Capabilities: [150] Single Root I/O Virtualization (SR-IOV)
        Capabilities: [190] Alternative Routing-ID Interpretation (ARI)
...

camcontrol コマンドで HP Ultrium 5 の表示が確認できます。

# camcontrol devlist
<HP Ultrium 5-SCSI Z64D>           at scbus0 target 0 lun 0 (sa0,pass0)
...

ドライブの操作

デバイス ファイル /dev/sa0 を指定し、mt コマンドでドライブの操作ができます。

# mt -f /dev/sa0 status
Drive: sa0: <HP Ultrium 5-SCSI Z64D> Serial Number: HU1202LFNR
---------------------------------
Mode      Density              Blocksize      bpi      Compression
Current:  0x58:LTO-5           variable       384607   enabled (0x1)
---------------------------------
Current Driver State: at rest.
---------------------------------
Partition:   0      Calc File Number:   0     Calc Record Number: 0
Residual:    0  Reported File Number:   0 Reported Record Number: 0
Flags: BOP

FreeBSD では、Linux と mt コマンドの実装が異なるため、表示や動作に違いがあるようです。 こちらの記事で詳しい解説があります。

mt コマンドの違いについて - Qiita

「tar でテープにバックアップ・リストアしてみる」という記事で、FreeBSD の mt と Linux の mt に違いがある、と書きました。 FreeBSD 使いとして FreeBSD で動作している様子を解説することにしたの...

Linux Virtual Machine での利用

PCI Passthrough を構成することで、Virtual Machines 機能で作成した仮想マシンで LTO ドライブを使用できます。 Linux 仮想マシンに SAS カードをパススルーすれば、Linux を想定した mt コマンドが引き続き利用可能です。

System > Tunable から vmm_loadpptdevs パラメータを追加し、TrueNAS を再起動します。 pptdevs には lspci コマンドで確認した SAS カードの Bus ID を指定します。

# lspci -q | grep SAS
01:00.0 Serial Attached SCSI controller: Broadcom / LSI SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (rev 03)

Virtual Machines から仮想マシンを作成します。 SAS カードは Devices > Add から、PCI Passthru Device として仮想マシンに追加できます。

今回は Ubuntu で動作確認をしてみました。 SAS カード、LTO ドライブが認識され、mt コマンドで操作が可能です。

$ uname -a
Linux operation 5.4.0-66-generic #74-Ubuntu SMP Wed Jan 27 22:54:38 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

$ lspci -q | grep SAS
00:05.0 Serial Attached SCSI controller: Broadcom / LSI SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (rev 03)

$ lsscsi
[0:0:0:0]    tape    HP       Ultrium 5-SCSI   Z64D  /dev/st0
[7:0:0:0]    disk    ATA      BHYVE SATA DISK  001   /dev/sda

$ sudo mt -f /dev/st0 status
SCSI 2 tape drive:
File number=0, block number=0, partition=0.
Tape block size 0 bytes. Density code 0x58 (LTO-5).
Soft error count since last status=0
General status bits on (41010000):
 BOT ONLINE IM_REP_EN

comments powered by Disqus