EZ-NET: CentOS 5.3 で iSCSI ターゲットを構築する

2009/10/17 Tomohiro Kumagai
2010/06/02 Tomohiro Kumagai

□ iSCSI ターゲット

iSCSI とは、TCP/IP の技術を使用して SCSI プロトコルを転送することで、ネットワーク上の別のシステムに搭載されているハードディスクを接続するための仕組みです。

ハードディスクを提供する側を iSCSI ターゲット、それを利用する側を iSCSI イニシエーターと呼びます。

iSCSI
は共有フォルダとは違いますので、設定したターゲットディスクは、イニシエーターがマウントすると、まるで物理ドライブが増設されたかのように、初期化等の設定を行うことになるのも面白いところです。

その後のフォーマットやアクセス権限の設定等は、マウントした OS
側で設定を行うので、何かの制約を受けることなくその環境に適した制御を普段通りに行えるのも、利点の一つではないでしょうか。

 

今回は CentOS 5.3 上に iSCSI ターゲットを構築して、他の PC から接続できるようにしてみようと思います。

 

□ iSCSI Enterprise Target をインストールする

CentOS 5.3 で iSCSI ターゲットを構築するためには、そのためのソフトウェアを追加でインストールする必要があります。

iSCSI ターゲットを構築するためのソフトウェアに
iSCSI
Enterprise Target
というものがありますので、今回はそれをインストールしてみることにします。

このソフトウェアを利用するには Linux Kernel 2.6.14 以上である必要があるとのことですが、CentOS 5.3

は Kernel 2.6.18 なので、その辺りは大丈夫のようです。

 

今回はこのソースパッケージを RPM に変換してから、インストールを行ってみようと思います。

RPM パッケージを作成する環境の準備については

EZ-NET レポート: CentOS 5.3 で PRM パッケージを作成できるようにする の方で記してあります。

 

平成 21 年 10 月 17 日時点では、Version 1.4.18

が最新のようですので、まずは次のようにして、最新のパッケージファイルを “/usr/src/redhat/SOURCES”

ディレクトリにダウンロードしておきました。

cd /usr/src/redhat/SOURCES

wget

http://sourceforge.net/projects/iscsitarget/files/iscsitarget/1.4.18/iscsitar…

“iscsitarget-1.4.18.tar.gz” をダウンロードしたら、まずは次のようにして RPM

パッケージの作成を行います。

rpmbuild -ta iscsitarget-1.4.18.tar.gz

このとき、自分の環境では “openssl-devel は iscsitarget-1.4.18-1.x86-64

に必要とされています” というメッセージが表示されてしまいました。”yum list installed”

で確認してみると確かにないようでしたので、”yum install openssl-devel” として、openssl-devel

をインストールしておきました。

依存関係の問題もなく RPM の作成処理が始まったら、後はしばらく待っていると処理が完了して、次のファイルが生成されました。

  • /usr/src/redhat/SRPMS/iscsitarget-1.4.18-1.src.rpm
  • /usr/src/redhat/RPMS/x86_64/iscsitarget-1.4.18-1.x86_64.rpm
  • /usr/src/redhat/RPMS/x86_64/kmod-iscsitarget-1.4.18-1_2.6.18_164.el5.x86_64.rpm

 

後は、次のようにして RPM パッケージをインストールします。

cd /usr/src/redhat/RPMS/x86_64

 

rpm -ivh kmod-iscsitarget-1.4.18-1_2.6.18_164.el5.x86_64.rpm

rpm -ivh iscsitarget-1.4.18-1.x86_64.rpm

インストールが完了したら、次のようにして iSCSI Enterprise Target を起動することができます。

service iscsi-target start

なお、iSCSI Enterprise Target の設定ファイルは “/etc/iet/ietd.conf”

に格納されていました。

 

□ iSCSI Enterprise Target を設定する

iSCSI Enterprise Target のインストールが完了したら、公開するハードディスクの設定を行います。

ブロックデバイスで指定する

設定ファイルは “/etc/iet/ietd.conf” に用意されていますので、それを編集します。例えば、次のような感じです。

Target iqn.2001-03.jp.ez-net.iscsi:storage.backup.disk1

Lun 0 Path=/dev/sde,Type=blockio

MaxConnections 1

 

Target iqn.2001-03.jp.ez-net.iscsi:storage.backup.disk2

Lun 0 Path=/dev/sdf,Type=blockio

MaxConnections 1

Target に設定する文字列は “iqn.[ドメイン取得年]-[ドメイン取得月].[ドメイン名 (逆順)]:[任意の識別子]”

という形式で指定する必要があるとのことです。

それと iSCSI の性質上、ひとつのターゲットに複数のイニシエーターが同時接続すると不都合が生じる可能性が考えられるため、MaxConnections

を 1 に設定してあります。

なお、ここで指定している “/dev/sde” といったブロックデバイスは、初期化やマウントをしておく必要はありません。

 

設定を行ったら、次のようにして iSCSI Enterprise Target を再起動すれば、設定が反映されます。

service iscsi-target restart

 

イメージファイルで指定する

iSCSI で提供するディスク領域は、イメージファイルで指定することも可能です。

Target iqn.2001-03.jp.ez-net.iscsi:storage.backup.disk1

Lun 0 Path=/var/iscsi/disk1.img,Type=fileio

MaxConnections 1

 

Target iqn.2001-03.jp.ez-net.iscsi:storage.backup.disk2

Lun 0 Path=/var/iscsi/disk2.img,Type=fileio

MaxConnections 1

このように Path のところをファイル名で指定して、Type として “fileio” を設定します。

Path で指定したファイルは dd コマンドを使用して作成しておきます。例えば 10GB

のイメージファイルを作成する場合には、次のような感じになります。

dd if=/dev/zero of=/var/iscsi/disk1.img bs=1G count = 10

このようにすることで、/dev/zero から /var/iscsi/disk1.img へ 1GB の領域を 10

回コピーする処理が行われます。

bs=10G としても良さそうですが、bs にあまり大きな値を設定すると “メモリーを使い果たしました”

というメッセージが表示されて、ファイルを作成することが出来ない場合があるようでした。

 

設定を行ったら、次のようにして iSCSI Enterprise Target を再起動すれば、設定が反映されます。

service iscsi-target restart

 

□ iSCSI Enterprise Target のアクセス制限を設定する

iSCSI Enterprise Target では、接続可能なイニシエーターを制限することも可能です。

許可するイニシエーターは “/etc/iet/initiators.allow”

ファイルに記載します。左記のファイル内で明示的に許可されていないイニシエーターは、そのターゲットディスクへのアクセスは禁止される様子です。

iqn.2001-03.jp.ez-net.iscsi:storage.backup.disk1 192.168.0.0/24

ALL 192.168.1.0/24

最初がターゲット名で、空白を置いて、続いて接続を許可する IP アドレスとなっています。ALL を指定することで、全てのターゲットや全ての IP
アドレスを表すことが出来ます。

この設定は iSCSI Enterprise Target

を再起動しなくても有効となる感じです。ただ、接続済みのターゲットディスクがアクセス禁止になったとしても、強制的に切断されるということはない様子です。

 

□ iSCSI Enterprise Target の使用するポートを解放する

iSCSI Enterprise Target は、次のポートを使用します。

iscsi 860/tcp,udp
iscsi-target 3260/tcp,udp

CentOS 5.3

では、標準でファイアーウォールが有効になるので、設定を調整してこれらのポートを解放する必要があります。設定方法については

EZ-NET: CentOS

のファイアーウォール設定を調整する も参考にしてみて下さい。

 

□ iSCSI Enterprise Target を Linux 起動時に自動起動させる

インストールしただけでは、Linux 起動時に iSCSI Enterprise Target

は起動されないので、自動起動するように設定します。設定方法については

EZ-NET: CentOS でサービスの起動状態を変更する

を参考にしてください。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中