Debian/Ubuntu の iSCSI Target のお話が出てくると、iSCSI Enterprise Target (IET)が必ず出てくる。
まぁ、良いんだけど kernel ソースに取り込まれていないモジュールを使うので、 時々、他の複合的な要因かもしれないが、あさっての場面で oops は吐いくれたりする。
Fedora/RHEL/CentOS とかだと、既にLinux SCSI Target Framework(tgt)に移行している。コイツは 2.6.20 頃 kernel ソースに取り込まれているので、 結構安定してるんじゃないかなと思う。
tgt の性能に関しては、2006 年頃の論文「Linuxにおけるストレージシステムフレームワークの実現(オペレーティングシステム)」を見る限り、IET と若干落ちるぐらいなので、気にしなくても良いかも。
そろそろ Debian/Ubuntu でも Linux SCSI Target Framework(tgt)に移行する時期だ。
ユーザベースのツール群 tgt パッケージは、squeeze/lucid で用意されているみたいなので、やってみた。
ハマりポイントが2点ある。
- init スクリプトが見当たらない。バグ(#577925、BUG #574554)として登録されている。
- tgt-admin 内で、デバイスが既に利用してるかどうかチェックする部分が上手く動いていない。と言うか、Debian/Ubuntuでは /bin/sh が dash (ash の亜種) になっているため、perl の system関数の呼び出しのスクリプト片に移植性がある書き方が要求される。コイツを踏んでる。
なので Fedoraのinitスクリプトを参考に、upstart 用のイベント設定ファイル? /etc/init/tgtd.confを書き下し、tgt-admin の修正パッチtgt-admin.diffを作ってみた。
例として、単一ディスクをiSCSIで公開する事を考える
以下の設定ファイルを書き下し、「tgt-admin -e」とタイプすれば良い。
/etc/tgt/targets.conf
default-driver iscsi <target iqn.2010-07.com.example:stroage.fserver.data> driver iscsi backing-store /dev/sdb </target>
実際にiSCSIターゲット設定が上手く行ったかは、次のようにする。
# tgt-admin -s Target 1: iqn.2010-07.com.example:stroage.fserver.data System information: Driver: iscsi State: ready I_T nexus information: LUN information: LUN: 0 Type: controller SCSI ID: IET 00010000 SCSI SN: beaf10 Size: 0 MB Online: Yes Removable media: No Backing store type: rdwr Backing store path: None LUN: 1 Type: disk SCSI ID: IET 00010001 SCSI SN: beaf11 Size: 34360 MB Online: Yes Removable media: No Backing store type: rdwr Backing store path: /dev/sdb Account information: ACL information: ALL
あとは、巷に溢れている tgt の設定方法が使える。 上手く設定すると、CDドライブやリムーバルディスクとかも、ネット越しで使えるようになるらしい。
追記 (2010/09/06)
気づいてみると、二番目のハマり点も修正済み(#589716)になったようである。
debian squeeze がリリースしたら、tgt をサクッと使うようになれる訳ですね。
0 件のコメント:
コメントを投稿