技術

DomUのCentOS5.3 x86_64にiSCSI Enterprise Targetをインストール

DomUなCentOS5.3 x86_64でiSCSIターゲットを動かす必要があったのでやってみました。
最初はyumで簡単にインストールできるということで、scsi-target-utils(tgtd)を試してみたのですが、設定ファイルではなくコマンドで設定するその方法が気に入らず(まぁLinuxなんでシェルスクリプトを設定ファイルだと考えればいいのですが)、またMacのglobalSAN iSCSIイニシエータからどうやっても書き込み出来ません(接続は出来る)でした。
前者はともかく後者は致命的なので、scsi-target-utilsはあきらめて、scsi-target-utilsと同じくらいメジャーと思われるiSCSI Enterprise Target(以下IET)をインストールしてみました。

以下、IETのインストール方法です。
多分、DomUとかx86_64とかじゃなくても、影響のある部分を適宜読み替えることで対応可能かと思います。

1.必要なパッケージのインストール

yum install kernel-xen-devel gcc openssl-devel

2.カーネルソースパスの確認

ls /usr/src/kernels/

これで出てきたディレクトリの中で自分のアーキテクチャ・バージョンにあったものを使います。
うちでは”2.6.18-128.4.1.el5-xen-x86_64″だったので、以下それで書きます。

3.iscsi_trgt.koのパスの確認

updatedb
locate iscsi_trgt.ko

うちでは、”/lib/modules/2.6.18-128.4.1.el5xen/kernel/iscsi/iscsi_trgt.ko”だったので、以下それで書きます。

4.カーネルモジュールディレクトリの確認

ls /lib/modules/

自分のバージョン・アーキテクチャに合ったディレクトリが2種類見つかると思います。うちでは
2.6.18-128.el5xen

2.6.18-128.4.1.el5xen
でした。
IETはmake時に短い方のディレクトリを使います。

5.カーネルモジュールの依存関係の確認

vi /lib/modules/2.6.18-128.el5xen/modules.dep

このファイルにiscsi_trgt.koのパスが無いときは3で確認したパスを末尾に追加する。うちでは”/lib/modules/2.6.18-128.4.1.el5xen/kernel/iscsi/iscsi_trgt.ko:”と追加しました。

6.IETのダウンロード・インストール

cd /usr/src
wget http://sourceforge.net/projects/iscsitarget/files/iscsitarget/0.4.17/iscsitarget-0.4.17.tar.gz/download
tar zxvf iscsitarget-0.4.17.tar.gz
cd iscsitarget-0.4.17
make KSRC=/usr/src/kernels/2.6.18-128.4.1.el5-xen-x86_64
make KSRC=/usr/src/kernels/2.6.18-128.4.1.el5-xen-x86_64 install

KSRCには2で調べたカーネルソースディレクトリを指定します。

7.iSCSIターゲットで利用するディスクを用意
といっても、今回はスパースファイルを使うので物理的には用意しません。

dd if=/dev/zero of=/path/to/disk.img bs=1G seek=1 count=0

8.IETの設定

vi /etc/ietd.conf

この設定ファイルが無いときはIETのソースディレクトリで”cp etc/ietd.conf /etc/”とする。
#Lun 0 Path=・・・の行のコメントを外し以下のように書き換える。
Lun 0 Path=/path/to/disk.img,Type=fileio
他の設定はとりあえずそのまま。ターゲット名は”iqn.2001-04.com.example:storage.disk2.sys1.xyz”となってるハズです。

9.ファイアウォールの設定

>iptables -I RH-Firewall-1-INPUT -m state --state NEW -p tcp --dport 3260 -j ACCEPT

iSCSIはポート3260を使うらしいのでそこを空けます。
セキュリティを高めるには、上流にさらにファイアウォールを設けたり、ソースIPを制限したり、IETでパスワード認証するなりしてください。

これであとはその辺のiSCSIイニシエータで、サーバーのIPとターゲット名を指定すれば繋がるはずです。

コメントを残す

メールアドレスが公開されることはありません。



※画像をクリックして別の画像を表示

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください