SASを介してCentOS 7システムにQuantum SuperLoader 3を接続しました。に表示されdmesg
、lsscsi
次のように表示されます。ch
ドライバー。
$ lsscsi
[0:2:0:0] disk LSI MR9271-8i 3.24 /dev/sda
[1:0:0:0] tape IBM ULTRIUM-HH6 E4J1 /dev/st0
[1:0:0:1] mediumx QUANTUM UHDL 0091 /dev/sch0
カーネルの初期化は次のとおりです。
$ dmesg
[ 13.443589] scsi 1:0:0:0: Attached scsi generic sg2 type 1
[ 13.444091] scsi 1:0:0:1: Attached scsi generic sg3 type 8
[ 13.463023] SCSI Media Changer driver v0.25
[ 13.463121] st: Version 20101219, fixed bufsize 32768, s/g segs 256
[ 13.572514] ch0: type #1 (mt): 0x0+1 [medium transport]
[ 13.572516] ch0: type #2 (st): 0x100+16 [storage]
[ 13.572517] ch0: type #3 (ie): 0x0+0 [import/export]
[ 13.572518] ch0: type #4 (dt): 0x20+1 [data transfer]
[ 13.697117] ch0: dt 0x20: ch0: ID/LUN unknown
[ 13.697119] ch0: INITIALIZE ELEMENT STATUS, may take some time ...
[ 67.097903] ch0: ... finished
[ 67.097910] ch 1:0:0:1: Attached scsi changer ch0
[ 67.098792] st 1:0:0:0: Attached scsi tape st0
[ 67.098796] st 1:0:0:0: st0: try direct i/o: yes (alignment 4 B)
このパッケージを使用すると、テープドライブは正常に動作しますmt-st
。mtx
BaculaやAmandaで使用するドライバもインストールしたが、mtx
そのドライバはch
。
確かなことがあるようです。ch
scsi-changerなどのドライバツールmtx
しかし、一般的に使用されていないようで、ドライバと直接作業する方法があると思いましたch
。
明らかな方法で呼び出される場合:
$ sudo mtx -f /dev/sch0 status
/dev/sch0 is not an sg device, or old sg driver
/dev/sch0 は次のようになります。
$ ls -lastZ /dev/sch0
crw-rw----. root cdrom system_u:object_r:device_t:s0 /dev/sch0
kraxel.org SCSIコンバータを試してみますが、Amanda内でサポートが不足していることを考えると、mtx
この問題を解決するための提案が役に立ちます。
答え1
気づいた!
mtx
「一般」SCSIデバイスでのみ機能します。カーネルドライバ/dev/sch0
が提供するデバイスは少しch
赤いニシンです。
すべてのドライバがサポートする特定のデバイスを作成することに加えて、SCSIデバイスは「一般的な」デバイスファイルを提供することがわかりました。次のコマンドを使用して見つけることができますlsscsi
。
$ lsscsi --generic
[0:0:19:0] enclosu CISCO UCS 240 0809 - /dev/sg0
[0:2:0:0] disk LSI MR9271-8i 3.24 /dev/sda /dev/sg1
[1:0:0:0] tape IBM ULTRIUM-HH6 E4J1 /dev/st0 /dev/sg2
[1:0:0:1] mediumx QUANTUM UHDL 0091 /dev/sch0 /dev/sg3
これらは実際に上記の出力で言及されましたdmesg
。ユニバーサルデバイスを使用すると、mtx
CentOS 7のSuperLoader 3で使用できます。
$ sudo mtx -f /dev/sg3 status
Storage Changer /dev/sg3:1 Drives, 16 Slots ( 0 Import/Export )
Data Transfer Element 0:Empty
Storage Element 1:Empty
Storage Element 2:Empty
Storage Element 3:Empty
Storage Element 4:Empty
Storage Element 5:Empty
Storage Element 6:Empty
Storage Element 7:Empty
Storage Element 8:Empty
Storage Element 9:Empty
Storage Element 10:Empty
Storage Element 11:Empty
Storage Element 12:Empty
Storage Element 13:Empty
Storage Element 14:Empty
Storage Element 15:Empty
Storage Element 16:Empty
便宜上、残りの作業は/dev/changer
シンボリックリンクのみです/dev/sg3
。
答え2
ディスクや他のSCSIデバイスを追加または削除するオペレータのためにいくつかの追加情報と回避策を追加したかったのですが、以前にbaculaで設定した/dev/sgXデバイスが再起動後に変更されたことがわかりました。 Baculaには、シェルコマンドを実行して他の設定ファイルをインポートするための構文があり、これは必要なものを取得するのに役立ちます。この構文は、Bacula 9.4の「基本」マニュアルのセクション18.2.3にリストされています。
まず、スクリプトを作成します。
cat > /usr/local/libexec/bacula-get-generic-changer-device << XYZZY
#!/bin/sh
echo -n Changer Device = \$(/usr/bin/lsscsi -g |/usr/bin/grep 'mediumx.*IBM.*3573-TL.*/dev/sch' |/usr/bin/sed 's|^.*/dev/\(sg[0-9]\)|/dev/\1|')
XYZZY
chmod 700 /usr/local/libexec/bacula-get-generic-changer-device
ライブラリと一致するように上記の正規表現を変更する必要があります。私は実際にIBM 3573-TLブランドが変更されたDell TL2000を持っています。 lsscsiを介して照会すると、次のように表示されます。
[6:0:0:1] mediumx IBM 3573-TL F.11 /dev/sch0 /dev/sg6
スクリプトを実行すると、出力は次のように表示されます。システムで動作していることを確認してください。
# /usr/local/libexec/bacula-get-changer-generic-device
Changer Device = /dev/sg6#
後ろに改行文字がなく、通常のデバイス名の後にプロンプトが表示されることがわかります。これが私たちが望むものです。残っているのはbacula-sd.confの「Changer Device」行を変更するだけです。これを次に変更します。
@|"sh -c /usr/local/libexec/bacula-get-changer-generic-device"
Baculaは、他のSCSIデバイスがシステムに追加または削除された場合でも、起動するたびにライブラリ/オートチェンジャ用の正しい汎用SCSIデバイスを持つようになりました。
編集:もちろん、これを見つけた後はより簡単な方法があるようです。/dev/tape/by-id/
適切な機器を確認して使用できます。私の場合は、次のようになります。
/dev/tape/by-id/scsi-1IBM_3573-TL_00X2U49P1785_LL0 -> ../../sg6
また、論理ライブラリを区別できるという利点もあります(_LL0
)。
答え3
Centos 7でカーネルモジュールsgをロードする必要があります(バグとして報告されています)。
# modprobe sg
# lsscsi --generic
# mtx -f /dev/sgX status
(起動時にSCSI汎用ドライバがロードされない)https://www.centos.org/forums/viewtopic.php?f=48&t=52357