自宅LTOテープバックアップのススメ

提供:泣かないでゆり子
ナビゲーションに移動検索に移動
魅惑のUltriumてーぷ。おいしそお♡ 食べちゃお♡
Ultriumてーぷがいっぱい♡

黒はUltrium1(100GB)、紫はUltrium2(200GB)

ちうい!! テープドライブの取り付けや、データのバックアップは自己責任でどおぞ。

わぁい!! 百合子さん磁気てーぷ大好き♡ ぁぁ~フェライトのいい香りがするのお~ スーハースーハー てぇぷ食べちゃう♡ バリバリ もしゃもしゃ(^^♪

きっかけ

普通のデスクトップPC(IBM ThinkcentreA50(8320-87J))にLTO2ドライブを内蔵した

 今から半年近く前の2015年12月頃、ファイルを暗号化して身代金を要求する「TeslaCrypt」とかいうランサムウェアが登場。何でもコイツはシャドウコピーまで暗号化していくらしく、Windows10のファイル履歴機能で外付けUSB-HDDにバックアップをしていた百合子は不安になり、別のバックアップ方法を模索することに・・・

新たなバックアップメディアに求める要件は

  • オフラインで保管できる (オフラインであればランサムウェアが物理的に暗号化できない)
  • 安価
  • 長期保存ができる (月単位でバージョニングがしたい)

この条件で色々と検討したところ、磁気テープのLTOが目に入った♡ 元々サーバやディスクアレイ用なので、新品ドライブは100万円前後と非常に高価だが、放出品が中古でヤフオクに安く出回っている。(LTO2ドライブで2000円前後)。サーバ向けなので信頼性も十分。テープの価格は新品でも結構安くUltrium2(200GB)で1本3000円前後。ヤフオクだと5本で2000円の時もある。

LTOの概要とか、Ultriumのバージョン間差異についてはWikipedia - Linear Tape Openを参照。

導入

内蔵型ハーフハイトLTO2ドライブ HP BRSLA-0404-DC (Storage Works Ultrium 448と同型) ヤフオクで1500円

 導入にあたって、SCSIカードの接続やドライブのインストールなどをする必要があるので、PC自作や改造の経験があるほうが望ましい。Linuxのコマンドライン操作の経験もあると尚よい。

 ヤフオクを見ると、様々なLTOテープドライブや、テープライブラリ、テープオートローダが出品されているが、百合子さんのオススメは内蔵型のLTOドライブ単体。なぜかというと、テープオートローダ、テープライブラリは轟音のファンがついていることが多く、騒音のため一般家庭(#逸般の誤家庭?)での使用には適さず、また20kg以上でめちゃくちゃ重いため。

 ドライブ単体であれば軽いし(1~2kg)、うるさいファンもついていない。動作音はCD/DVDドライブよりうるさいけど、集合住宅でも深夜以外であれば使える程度の騒音。(掃除機ほどうるさくない)

 と言いつつ、集合住宅住まいの百合子さんは、深夜でもガンガンてーぷの読み書きしてますw 今のところ隣近所からのクレームは、なし。

 単体ドライブには、ハーフハイトと厚みが二倍のフルハイトがあるけど、フルハイトの方が若干読み書きが速い[1]っぽい・・・デカいけど。(ドライブのメーカーにもよる)

 なお、バックアップしたいデータが巨大でテープの入れ替えが面倒くさいとか、自宅に1Uサーバとか「るうたあ」があって騒音には慣れてるYoとかいう人は、テープライブラリ装置を購入してもいいと思う。

用意するもの

Ultra320規格のターミネータ付きパラレルSCSIケーブル。ボールペンの先で指している黒いボックスがターミネータ(ヤフオクで800円)
Ultra2 Wide SCSI規格のPCIカード Tekram製DC-390U2B(ハードオフで315円)
パラレルWide SCSIコネクタの例(68pin)

LTO1~4(パラレルSCSI)の場合

  • デスクトップPC
  • UltraSCSIカード(PCI or PCIe)

ハードオフのジャンクコーナーにあるものでおk。コネクタが68pinの物を。Ultra320(320MB/s)が理想だが、Ultra Wide SCSI 2(80MB/s)でも動かなくはない。

  • ターミネータ付き68pinSCSIケーブル

SCSIは50pinと68pinがあるが、LTOは全て68pin。ターミネータなしの物は安いけど、別途規格の合うターミネータを調達しなければいけないので、ターミネータ付きがオヌヌメ。(しかもターミネータの種類が色々あって、ややこしい)

  • 内蔵型LTOドライブ

5インチベイに搭載できるのでハーフハイトの内蔵型がオヌヌメ

  • Ultrium1~3テープ

LTO3~8(シリアルSCSI(SAS))の場合

  • デスクトップPC、サーバPC
  • SASホストバスアダプタ(PCIe or ExpressCard)

SASとSATAは似て異なる物なので、ちうい!! (コネクタ形状がかなり似てる)

  • SASケーブル

これまた種類が多いので、ちうい!! ホストバスアダプタの種類にもよるが、SFF-8087 to SFF-8482 x4 あたりのケーブルを買えばよいであろう(購入時にコネクタが合っているかよく確認すること)。外付け品ならSFF-8088ケーブルあたりで。

  • 内蔵型LTOドライブ

オークションにはSAS品以外に、FC(Fibre Channel)品も出回っているので、ちうい!

  • Ultrium3~8テープ

 最低限SAS or SCSIカードとケーブル、ドライブが必要だ。ドライブのインタフェースはSCSI(or SAS)かFCが大半なので、ノートパソコンでのテープ使用はちょっと難しい。USB接続のLTOドライブは無くはないが、オークションには出回ってなく、入手は難しいであろう。ノートパソコンで使いたい場合はSAS接続のドライブと、ExpressCard型のSASホストバスアダプタを使えばおk(ノーパソにExpressCardスロットが必要なので、廉価なPCだとキビシイ)

LTO3、4はSCSIの物と、SASの物、両方が出回っているので購入時はよく確認しよう。

LTO7は2015年12月31日に発売されたばかりで、ドライブが100万円~と大変高価なので、一般庶民が手にすることは当面ないだろう・・・。LTO5は5000円~2万円でオークションに出ている事がある。

ヤフオクにたまにLTOドライブ搭載のワークステーションが出ている場合があるので、それを買えばSCSIカードを物色したり、取り付け作業をしたりせずに済む。

取り付け

SCSIカードとドライブをパソコンに取り付けて、ドライブとカード間をSAS or SCSIケーブルで繋ぎ、ドライブに4pinの電源ケーブルを挿したら完了。(パラレルSCSIの場合)

この説明でわかんない人は経験値が不足しているので、パソコンの自作に手を出してみて経験を積むか、あるいは知人にできる人がいれば、代わりにやってもらおう。

SASドライブの場合は世代によって4pinコネクタから電源を取るもの(BRSLA-0703-DC HP LTO4)もあれば、SASコネクタから電源を取るもの(BRSLA-0904-DC HP LTO5)もあるので、両方差してみてどちらから電源を取っているか判別しよう。

ドライバ

Linuxの場合は基本的にドライバ不要。Windows(LTFS) の場合は各メーカーのサイトからドライバを入手しよう♪ HP製ドライブの場合は以下から。

HPE StoreEverテープ ドライバー for Microsoft Windows

iSCSI

Linuxマシンに内蔵したテープドライブをSurfacePro7(Windows 10)からiSCSI越しに使えるか試してみたが、イマイチだったので結局Linuxにログインして使うこととなった。上手くいったらまた続報を書く予定~

使い方

LTO2ドライブのテイクアップ(巻き取り)リール
LTO2ドライブのカートリッジ駆動ギア
Ultriumテープの中身

最近のWindowsはLTOテープの対応がアレなので、基本的にはLinux上でテープ操作をすることになる。Linuxをインストールしてもいいし、Knoppixみたいな1CDLinuxでもいい。Cygwinでも使えるかもしれない?

Linuxでテープにバックアップが取れる、フリーのツールはdumpやtar(tape archive)、dd、cpio、amandaなどがある。

root権限でコマンド操作を間違うとデータやシステムを破壊する場合があるので、十分注意しよお。ガチのバックアップを取る前に、消えてもいいデータとテープを使用して、何回かバックアップ/リストアの練習をしよお。

自動化された高度なバックアップを取りたい場合は、お金を出して専用のバックアップソフトを購入したほうが、いいかもしれない。

ドライブのLEDの意味

メーカーにもよるけど、LTOドライブの前面には4つのステータスLEDがある。それぞれの意味は・・・

Ready
点灯:ドライブ準備完了(コマンドを受け付ける準備ができている) 点滅:ドライブが動作中
Drive
点滅:ドライブに異常がある
Tape
点滅:テープに異常がある(詰まりや、カートリッジメモリの異常など)。あるいは未対応のテープが挿入された(LTO2ドライブにUltrium3テープを入れた場合など)。
Clean
点滅:ドライブのクリーニングが必要 点灯:クリーニング中

※HP製の場合

メーカーごとに若干異なるようなので、詳細はドライブの取説を参照。

テープの強制イジェクト

何らかの事情でテープを強制的に取り出したい場合(Ctrl+C連打してもテープ動作が止まらない場合など)は、イジェクトボタンをテープが出てくるまで長押しすると、強制イジェクトすることができる。書き込み中に強制イジェクトした場合、当然きちんと書き込めていないので再度書き直す必要があることに注意。

mt eraseコマンドによるテープ全消去を途中で止めたい時に有用(Ctrl+Cでは止まらないので)。

DELL製ドライブ(DELL PowerVault 110T)は長押ししなくても、軽く押すだけで強制イジェクトできる。

tarコマンド

最低限のコマンドだけ列記しておくので、詳細やオプションの意味は、ググったりmanページを見て調べること。

なおtarを使用する場合は -b でブロックサイズを指定しないと、複数テープにまたがって書かれたデータを正しく読めないので、ちうい!!

テープに書き込み

# tar cfvpM /dev/nst0 . -b 2048

カレントディレクトリ以下をテープに書き込み

テープの内容表示

# tar tfvpM /dev/nst0 -b 2048

テープの内容をベリファイ

# tar dfvpM /dev/nst0 . -b 2048

元データがあるディレクトリにcdしてから実行

テープから読み込み

# tar xfvpM /dev/nst0 -b 2048

カレントディレクトリ以下に展開される。

mtコマンド

テープを巻き戻し

# mt -f /dev/nst0 rewind

テープを全消去

# mt -f /dev/nst0 erase

ものすごく時間がかかる(100GBのUltrium1で約2~3時間)ので注意

テープをイジェクト

# mt -f /dev/nst0 eject

HP製の一部ドライブ(BRSLA-0404-DC LTO2)の様に、これを実行してもテープが排出されないドライブもある(テープ端自体はカートリッジに格納される)。

mtコマンドは

# yum install mt-st

などでインストールできる。

LTFS

2021年5月、ついにLTO5ドライブを入手してLTFSが使えるよおになった!

tarで書き込んでいた時と違ってブロックサイズとか意識せずに手軽に書き込めるし、OSや異メーカーのドライブ跨いでも使える、ツールはオープンソースで無料と大変よい♪

HPドライブ向けLTFSマウントツールは以下からダウンロードできるよ♪

HPE StoreOpenおよびLinear Tape File System (LTFS) ソフトウェア

なお400GBのデータを書く時はLTO3ドライブでUltrium3テープに書くより、LTO5テープでUltrium5に書いた方が全然速いので、予算に余裕がある人はできるだけ最新のドライブ/テープを使おお!


テープをLTFSでフォーマット

# mkltfs -d /dev/nst0

LTFSフォーマットされたテープを /mnt/ltfs にマウント (mountコマンドではない)

# ltfs /mnt/ltfs

LTFSファイルシステムを消去 LTFSでないシステムで使えるようにする。 ※データは全消去される

# unltfs -d /dev/nst0 -e

LTFSフォーマットされたテープをアンマウントして取り出し (マウント先に cd したままだとアンマウントできないので、ちうい!)

[root@tape-server ltfs]# umount /mnt/ltfs/
umount: /mnt/ltfs: target is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))
[root@tape-server ltfs]# cd
[root@tape-server ~]# umount /mnt/ltfs/
[root@tape-server ~]# mt -f /dev/nst0 eject

sg_rmsnコマンド

テープ・カートリッジ固有のシリアル番号を読み出せるコマンド。

# sg_rmsn /dev/sg1

ドライブは/dev/sg0 /dev/sg1 などの形式で指定する必要がある。デバイスファイル名は

# lsscsi -g

で確認できる。

lto_cmコマンド

テープ・カートリッジ内蔵の非接触カートリッジメモリ(LTO-CM)を読み書きできるコマンド。任意の情報を書き込んでテープ管理に使うこともできる。テープとは別のメディアなので、テープ全消去してもカートリッジメモリの情報は残る。

GitHub - scangeo/lto-cmからダウンロードしてコンパイルすると使えるようになるが、Makefileにミスがあるようなので、CentOS 6ではコンパイルできない・・・

CentOS 6.5(Final)でのコンパイル方法

適当なディレクトリを作って、そこに cd してから

$ git clone https://github.com/scangeo/lto-cm.git      #リポジトリをクローン(ソースをダウンロード)
$ gcc -I./include/ -c -o lto-cm.o lto-cm.c             #lto-cm.cをコンパイル
$ gcc -o lto-cm lto-cm.o lib32/sg_io_linux.o lib32/sg_lib.o lib32/sg_lib_data.o     #ライブラリにリンク

でカレントに実行ファイルができる(一般ユーザーで可)。お好みで、できた実行ファイルを /usr/bin とかに cp してもいい。lto-cm.1.gz を /usr/share/man/man1/lto-cm.1.gz とかに cp すると、

$ man lto-cm

でマニュアルが参照できるようになる。

# lto-cm -f /dev/sg1 -r -v

でカートリッジ・メモリのデータが読み出せる。(/dev/sg1 はドライブのデバイスファイル)

オプションの詳細は

# lto-cm -h

を参照。

lspciコマンド

PCIデバイスを一覧表示するコマンド。SCSIカードが正しく認識されているか、確認できる。

# yum install pciutils

などでインストールできる。

lsscsiコマンド

SCSIデバイスを一覧表示するコマンド。LTOドライブが正しく認識されているか、確認できる。

# yum install lsscsi

などでインストールできる。

(SATAドライブも表示される)

運用上の注意

LTOのクリーニングテープ
LTOのクリーニングテープの中身。普通のテープより短め。

磁気テープメディアは安価で長期保存もできる優れたメディアだが、案外デリケートなので注意して取り扱い、保管しよお。基本的に磁界とホコリ、高温、湿気は大敵。

ほかのメディアと違って、冷蔵庫での保管は非推奨。(テープのパッケージに推奨保存環境16~32℃と書いてある)

ハードディスクと違って衝撃には強い模様・・・(5階から落としてテストしてみたいw HDDは確実に壊れる高さw)

某資料[2]によれば、超音波加湿器のある部屋にLTOドライブを置いてはいけないらしい・・・?

ドライブのクリーニング

ドライブは定期的にクリーニングテープでクリーニングしましょう。クリーニング間隔はテープメーカーの取説[3]を読むと10日~1ヵ月間隔とか書いてある。

クリーニングのやり方はとても簡単で、クリーニングテープをドライブに入れると自動でクリーニングが行われる。終わると自動でテープが巻き戻されて排出される。だいたい所要5分ほど。

1日10回とか短期間に繰り返しクリーニングを行うと、ヘッドを痛めるのでやめよお。そんなに神経質になる必要はないっぽい。

テープ切断事故

2年程LTOてーぷを使っていたが、2018年5月、初めて切断事故が起きた。何やらドライブから異音がし始め、イジェクト長押ししてもカートリッジが取り出せなくなるという現象が発生。フタを開けてみるとテープが切れてリールが空回りしていた。ドライブも巻き添えを食らって死亡した模様・・・。カートリッジはしばらくして自動的に排出されたが・・・。テープとは言えど過信は禁物?

事故発生時のツイート

テープドライブの修理

ジャンクのドライブを入手して修理して使ったり、切れて詰まったテープを取り除いたりを何度かしたので、気が向いたら修理方法解説記事書く・・・

なぉHP製ドライブには診断ツールがあり、これを使うことで目に見えない故障原因(温度異常やリーダーピン確保後の巻き取り失敗)なんかを判定できることがあるよ。ドライブやテープの使用時間、ロードアンロード回数も分かるから、S.M.A.R.T的な使い方もできちゃう♡ ファームウェアのアップデートもコレでできるよん♪(別途ファームウェアダウンロードが必要)

HPE Library & Tape Tools

脚注

外部リンク

HP LTO2ドライブで 1.2GB読み書き - YouTube (Роман Жуковскийさん投稿)