Dec 8, 2006

貧乏人のためのboot-from-SAN (2) iSCSI Target編

貧乏人のためのboot-from-SAN (1) 導入編の続きです。このエントリーではソフトウェアiSCSI Targetの設定方法について説明しています。すでにiSCSI Targetを設定してあるという場合は省略できます。

iSCSI Target用マシンのインストール

ここではTarget用マシンにFedora Core 6をインストールして使うことにします。なぜなら、iSCSI Enterprise Targetの最新のstable版(0.4.14)や開発版を使うためにはKernel 2.6.14以降でなくてはならないからです。カーネルバージョンさえ保証できるなら他のディストリビューションでもまったく問題ありません。

iSCSI用に提供するための空き容量が必要です。すでに動作しているTarget用マシンがある場合にはiSCSI用にディスクを追加しても構いませんが、説明の都合上一個のディスクにFC6を新規インストールすることを前提に話を進めます。

標準ではFC6インストール時にHDDの大半がVolGroup00に割り当てられ、VolGroup00はLogVol00(/パーティション)とLogVol01(swap)にすべて割り当てられてしまいます。LogVol00のサイズを数10GB程度に修正してください。こうしておくと、VolGroup00のうち使われていない部分を後からiSCSI用のLogical Volumeとして簡単に切り出すことができます。パーティションの設定が済んだらそのままインストールを継続してください。

さてそうやって無事にインストールが済み、最低限の設定は済んだものとします。

iSCSI Enterprise Targetのインストール

SourceForge.net: iSCSI Enterprise Targetから最新のstable版をダウンロードするか、以下のように開発版をcheckoutします。

# svn co svn://svn.berlios.de/iscsitarget/trunk iscsitarget

ビルドやインストールはよくある手順どおり実施してください。注意点は、make install時にdepmodするので/sbinにパスが通っている必要がある点くらいです。

# make; make install
# /sbin/chkconfig --add iscsi-target
# /sbin/chkconfig iscsi-target on
# /etc/init.d/iscsi-target start

psコマンドでietdが動いていることが確認できれば問題ありません。

# ps -C ietd
  PID TTY          TIME CMD
 2691 ?        00:00:00 ietd

iptablesによるファイアウォールを導入している場合には、ietdが使うポートに穴を開けておく必要があります。/etc/sysconfig/iptablesに以下を追加して、/etc/init.d/iptables restartすればひとまずはよいでしょう。

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3260 -j ACCEPT

Logical Volumeの切り出しとTargetの設定

10GB分のLogical Volume(名前はtest)をVolGroup00から切り出すには、以下のようにlvcreateコマンドを実行します。

# lvcreate -n test -L 10G VolGroup00

正常に切り出せれば、lvdisplayコマンドで以下のように表示されるはずです。切り出したLogical Volumeは/dev/VolGroup00/testというブロックデバイスとして見えるわけですね。

# lvdisplay VolGroup00
(snipped)
  --- Logical volume ---
  LV Name                /dev/VolGroup00/test
  VG Name                VolGroup00
  LV UUID                AN1Q8q-h0Ty-GORO-0lJB-2s0a-4Ev2-GyjLng
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                10.00 GB
  Current LE             320
  Segments               1
  Allocation             inherit
  Read ahead sectors     0
  Block device           253:2

次にTargetの設定を行います。

まず、TargetのIDとiSCSI Qualified Nameを決める必要あります。IDはそのiSCSIサーバでユニークな1以上の整数値です。ここでは「100」とします。iSCSI Qualified Nameは、グローバルにユニークである必要があるため、タイプ識別子「iqn.」、ドメイン取得日、ドメイン名、ドメイン取得者が付けた文字列を付けることになっています(RFC 3720 - Internet Small Computer Systems Interface (iSCSI) (IETF/rfc3720))。ここでは「iqn.2006-12.net.as-is.iscsi:test」にしておきます。

新しいTargetを作るにはietadmコマンドを使って以下のように実行します。

# ietadm --op new --tid=100 --params Name=iqn.2006-12.net.as-is.iscsi:test
# ietadm --op new --tid=100 --lun=0 --params Path=/dev/VolGroup00/test

/etc/ietd.confに書く方法もありますが、とりあえずテストということで。ユーザ認証を追加することもできますが、とりあえずテストということで。

ietadmコマンドで行った設定は/proc/net/iet/volumeを参照することで確認できます。

# cat /proc/net/iet/volume
tid:100 name:iqn.2006-12.net.as-is.iscsi:test
        lun:0 state:0 iotype:fileio iomode:wt path:/dev/VolGroup00/test

複数のiSCSIドライブが必要な場合には、好きなだけlvcreateとietadmを繰り返すことになります。

これでiSCSI Targetに関する作業は終了です。


About Me

My Photo

つくばで働く研究者

Total Pageviews

Amazon

Copyright 2012 Ogawa::Buzz | Powered by Blogger
Design by Web2feel | Blogger Template by NewBloggerThemes.com