#author("2019-09-14T14:23:34+00:00","default:sysosa","sysosa")
#author("2019-09-14T14:25:55+00:00","default:sysosa","sysosa")
DELLの&color(green){PowerVault(TM) LTO-6-200 Tape Drive};がある。
商品:http://www.dell.com/jp/business/p/powervault-lto6/pd?oc=as-pvlto6-200&model_id=powervault-lto6
LTO6な単巻ドライブ。SAS接続で/procを見てみると、
#code(nonumber){{
[root@x ~]# cat /proc/scsi/scsi
Attached devices:
  (中略)
Host: scsi8 Channel: 00 Id: 00 Lun: 00
  Vendor: IBM      Model: ULTRIUM-HH6      Rev: D8E5
  Type:   Sequential-Access                ANSI  SCSI revision: 06
[root@x ~]#
}}
とIBM様のOEM製品でした。具体的には[[TS2260>http://www-06.ibm.com/systems/jp/storage/products/tape/2260/index.html]]かな?

で、この単巻ドライブをLTFSとして利用するには、Linux向けdriverとLTFS向けのツールが必要
-Linux向けdriver
[[IBM Support>Fix Central(https://www-945.ibm.com/support/fixcentral/)>+https://www-945.ibm.com/support/fixcentral/]]にて
「製品の選択」から
「製品グループ」->「System Storage」
「以下から選択 System Storage」->「Tape systems」
「以下から選択 Tape systems」->「Tape drivers and software」
「以下から選択 Tape drivers and software」->「&color(magenta){Tape device drivers};」
「プラットフォーム」->「Linux」
を選び「次へ進む」ボタンを押下すれば、Linuxの各種ディストリビューション毎にdriverが入手可能になります。
ここではソースの「lin_tape-3.0.20-src.rpm」を入手した。
-LTFS向けのツール
同じくIBMのFix Centralから
「製品の選択」から
「製品グループ」->「System Storage」
「以下から選択 System Storage」->「Tape systems」
「以下から選択 Tape systems」->「Tape drivers and software」
「以下から選択 Tape drivers and software」->「&color(magenta){IBM Spectrum Archive Single Drive Edition (SDE)};」
「インストール済みバージョン」->「1.0」
「プラットフォーム」->「Linux」
を選び「次へ進む」ボタンを押下すれば、LTFSのツールが入手できます。
ここでは「IBM_LTFS_Single_Drive_Edition_for_Linux」から「ltfssde-2.2.2.0-9802-RHEL6.x86_64.rpm」を入手しました

&color(red){*};&size(10){IBMのFix Centralはユーザ登録が必要のようです};


***TapeドライブのLinux driverをインストール [#g41bb11a]
入手した「lin_tape-3.0.20-src.rpm」をrpmbuildでrpmファイルに仕立てます。そこにdriverが含まれます。
#code(nonumber){{
[root@x ~]# rpmbuild --rebuild LTFS/lin_tape-3.0.20-src.rpm
}}
そして、driverをインストールします。
#code(nonumber){{
[root@x ~]# yum localinstall rpmbuild/RPMS/x86_64/lin_tape-3.0.20-1.x86_64.rpm
}}
&size(10){rpmファイルの中身は「rpm -qpli <rpm>」で確認できます};
これでdriverはインストールされました。次に作ったderiverをカーネルに読み込ませ、テープデバイス(/dev/IBMtape0)を作ります。
また起動時に読み込ませるために起動スクリプト(lin_tape)を有効にさせます
#code(nonumber){{
[root@x ~]# /etc/init.d/lin_tape start
[root@x ~]# ls -l /dev/IBM*
crw-rw---- 1 root root 241, 3069 Apr 20 10:19 /dev/IBMSpecial
crw-rw---- 1 root root 241,    0 Apr 20 10:19 /dev/IBMtape0
crw-rw---- 1 root root 241, 1024 Apr 20 10:19 /dev/IBMtape0n
[root@x ~]#
[root@x ~]# chkconfig --list lin_tape
lin_tape        0:off   1:off   2:on    3:on    4:off   5:on    6:off
[root@x ~]# 
}}

***LTFS向けツールのインストール [#uca21b90]
入手した「ltfssde-2.2.2.0-9802-RHEL7.x86_64.rpm」をそのままインストールします
#code(nonumber){{
[root@x ~]# yum localinstall ltfssde-2.2.2.0-9802-RHEL7.x86_64.rpm
}}
この中にLTOテープをLTFSにフォーマットする mkltfs やmount操作の ltfs コマンドが入っている

***LTOテープをLTFSへ [#c42dc35c]

ドライブにLTOテープを差し込んで、LTFS向けのファイルシステムを構築する
#code(nonumber){{
[root@x ~]# mkltfs -d /dev/IBMtape0
LTFS15000I Starting mkltfs, LTFS version 2.2.2.0 (9802), log level 2
LTFS15041I Launched by "mkltfs -f -d /dev/IBMtape0"
(略
LTFS15013I Volume UUID is: 0df05603-b438-448e-892b-d0e4cf3fbb23

LTFS15019I Volume capacity is 2408 GB
LTFS12207I Logical block protection is disabled
LTFS15024I Medium formatted successfully

[root@x ~]#
}}
&color(red){*};すでにformatされたメディアなら下記のように( -f )を追加させる
#code(nonumber){{
[root@x ~]# mkltfs -f -d /dev/IBMtape0
}}

***LTFSをシステムにmount [#o12f9d7b]

次に、このファイルシステムをシステムにマウントします。
ここではマウントポイントを/LTFSとしてます。

#code(nonumber){{
[root@x ~]# mkdir /LTFS

[root@x ~]# ltfs /LTFS -o devname=/dev/IBMtape0
298f LTFS14000I LTFS starting, LTFS version 2.2.2.0 (9802), log level 2
298f LTFS14058I LTFS Format Specification version 2.2.0
298f LTFS14104I Launched by "ltfs /LTFS -o devname=/dev/IBMtape0"
(略
298f LTFS14112I Invoke 'mount' command to check the result of final setup
298f LTFS14113I Specified mount point is listed if succeeded
[root@x ~]#
}}
っで完了。

***unmount [#w0e5f3ae]
単純に
#code(nonumber){{
[root@x ~]# umount /LTFS
}}
その後、装置のejectボタンを押せばメディアが取り出せる


***一般ユーザがフォーマット・マウントするには [#b1230a12]

特定ユーザにsudo権限を与えれば、rootと同じような操作が可能である。
方法は/etc/sudoersの末尾に下記を追加する。
#code(nonumber){{
%crystal ALL=(root) NOPASSWD: /usr/local/bin/ltfs , /bin/umount, /bin/mount
}}
&color(red){*}; &color(green){%crystal};は、crystalグループに所属している方限定を意味する。&color(green){NOPASSWD};を
指定すると、自身のパスワードを問わずに実行します。

他に、sudoを使わずにだれでも使えるようにするには、デバイスドライバの権限を緩めます。
&color(red){*};単純にchmod 0666 /dev/IBMtape0 とせず、udev経由で調整しましょう。
#code(nonumber){{
[root@x ~]# vi /etc/udev/rules.d/98-lin_tape.rules
KERNEL=="IBMtape*[!n]", NAME="%k", MODE="0666"
KERNEL=="IBMtape*n", NAME="%k", MODE="0666"
[root@x ~]#
[root@x ~]# /etc/init.d/udev-post reload
[root@x ~]#
[root@x ~]# rmmod lin_tape
[root@x ~]# modprobe lin_tape
[root@x ~]#
[root@x ~]# ls -l /dev/IBMtape0*
crw-rw-rw- 1 root root 246,    0  2月 27 14:17 2014 /dev/IBMtape0
crw-rw-rw- 1 root root 246, 1024  2月 27 14:17 2014 /dev/IBMtape0n
[root@x ~]#
[root@x ~]# chmod +x /bin/fusermount
}}
これで、各ユーザでLTOテープのLTFSフォーマットやLTFSマウント操作ができる。。。っがunmount操作がこれでは駄目。
やっぱりsudoを使って、ユーザ限定の方がいいのかも。


***クラッシュ発生時 [#h8a9e1ff]
データコピー中にLTFS以外の問題でマシンがクラッシュした。
再起動後に、ltfsコマンドでマウントを試みたが&color(red){ltfsck};で確認せよと命じられた。
#code(nonumber){{
[root@x ~]# sudo /usr/local/bin/ltfsck /dev/IBMtape0
}}
として修正を施す

***注意すべきファイル [#fcf8abc9]
どうも「:」を含むファイルはLTFSにコピーできないみたい。
例えばファイル名が &color(red){Aug__2_14:07:24_2013.pdb};なんてだと「無効な引数です」ということで弾かれる。
&color(red){**主に[[coot>xray/coot]]でモデリングしている際に発生するログファイルがそれです};
この場合、tarでまとめて一つのファイルにしてLTFSに置いたほうがいいのかも。

***windows [#i130fe34]
上記はすべてLinuxでの利用を前提として書いてます。っが、やっぱりwindowsの方がめちゃくちゃ楽です。
当初Linuxで提供してましたが、結局windowsに載せ替えになってしまった。。。。
「IBM Spectrum Archive Single Drive Edition Version 2.4.0.2 for Windows」を取得します。
(IBM_LTFS_SDE_2.4.0.2.10071_x64.exe)
っで、これをインストール。




「LTFS Configuration」を実行して調整すれば使える。エクスプローラーにLTOドライブが表示され
LTOテープを挿入して、ドライブのアイコンを選択して右クリックからformatを選び、フォーマットすれば即座に使えます。
Linuxのようなマウント操作は不要。まあー一度なれるとこちらのほうが楽。


&color(white,blue){注意};
以前に「IBMTape.x64_w12_6260.zip」とかのIBMテープドライバーをインストールしていると
エラーで弾かれます。「IBM tape driver」を除いてからインストールしてくださいと言われる。
その際、使った「IBMTape.x64_w12_6260.zip」に入っている「uninst.exe」で削除するのですが、
管理者権限で実行しないと動作しない。それを事前に行う必要があります。



***めも [#xe09d559]
ltfsでLTOメディアをマウントして書き込み操作している際、下記のようなメッセージがでて
メディアに書き込めなくなった。原因は不明だが、マシンを再起動してたら復旧。



#code(nonumber){{
kernel: ltfs: page allocation failure: order:7, mode:0xd0
kernel: CPU: 1 PID: 11209 Comm: ltfs Tainted: G           OE  ------------   3.10.0-327.3.1.el7.x86_64 #1
kernel: Hardware name: Dell Inc. PowerEdge R210/xxxxxx, BIOS 1.5.2 10/18/2010
kernel: 00000000000000d0 00000000b44c8796 ffff880230167968 ffffffff8163516c
kernel: ffff8802301679f8 ffffffff8116ef80 0000000000000000 ffff88023ffd4000
kernel: 0000000000000007 00000000000000d0 ffff8802301679f8 00000000b44c8796
kernel: Call Trace:
kernel: [<ffffffff8163516c>] dump_stack+0x19/0x1b
kernel: [<ffffffff8116ef80>] warn_alloc_failed+0x110/0x180
kernel: [<ffffffff81173708>] __alloc_pages_nodemask+0x9a8/0xb90
 :
}}

調べたらここと同じ現象みたい
http://esupport.trendmicro.com/solution/ja-JP/1105158.aspx?print=true


***LTFS向けツールのインストール(その2) [#ydd8104c]
従来の「ltfssde-2.2.2.0」の代わりに「ltfssde-2.4.1.2」を使うことにした
ってこのバージョンでは「/dev/IBMtape0」は要らないようで、「scsi generic device」を使うみたい
なので
#code(nonumber){{
[root@x ~]# yum remove lin_tape ltfssde
}}
として「/dev/IBMtape0」のデバイスを外す。ついでに「ltfssde-2.2.2.0」も

その後、再起動して「scsi generic device」を復活させる
&size(10){どうもlin_tapeを抜いても/dev/sg*が復活しないので};

再起動後に確認をします。
#code(nonumber){{
[root@c ~]# lsscsi -g
 :
[1:0:0:0]    tape    IBM      ULTRIUM-HH6      H991  /dev/st0   /dev/sg8
[root@c ~]#
}}
そして、「ltfssde-2.4.1.2」をインストールします
#code(nonumber){{
[root@c ~]# yum localinstall ltfssde-2.4.1.2-10254-RHEL7.x86_64.rpm
}}

次にltfsコマンドを使ってテープデバイスのデバイスファイルを確認します。
既に「lsscsi -g」で表記されますが、、
#code(nonumber){{
[root@x ~]# ltfs -o device_list
3b09 LTFS14000I LTFS starting, LTFS version 2.4.1.2 (10254), log level 2.
3b09 LTFS14058I LTFS Format Specification version 2.4.0.
3b09 LTFS14104I Launched by "ltfs -o device_list".
3b09 LTFS14105I This binary is built for Linux (x86_64).
3b09 LTFS14106I GCC version is 4.8.3 20140911 (Red Hat 4.8.3-9).
3b09 LTFS17087I Kernel version: Linux version 3.10.0-957.27.2.el7.x86_64 (mockbuild@kbuilder.bsys.centos.(略
3b09 LTFS17089I Distribution: CentOS Linux release 7.6.1810 (Core) .
3b09 LTFS17089I Distribution: NAME="CentOS Linux".
3b09 LTFS17089I Distribution: CentOS Linux release 7.6.1810 (Core) .
3b09 LTFS17089I Distribution: CentOS Linux release 7.6.1810 (Core) .
3b09 LTFS17085I Plugin: Loading "sg" tape backend.
Tape Device list:.
Device Name = /dev/sg8, Vender ID = IBM     , Product ID = ULTRIUM-HH6     , Serial Number = (略
[root@x ~]# 
}}
これでデバイスは「/dev/sg8」とわかる。
なので
この「/dev/sg8」を使ってLTOテープをLTFSにフォーマットします
#code(nonumber){{
[root@x ~]# mkltfs -f -d /dev/sg8 -n data5-1
}}
としてLTOメディアをフォーマットして、

次に、フォーマットしたLTOメディアをファイルシステムにマウントします
#code(nonumber){{
[root@x ~]# mkdir /ltfs
[root@x ~]# ltfs /ltfs -o devname=/dev/sg8
}}

この後はcpを使ってファイルをコピーします。

トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS