iSCSI

更新日 2004/10/02

ターゲットを ここからイニシエータを ここからDownloadしてくる。

イニシエータ(vine3.0:192.168.10.28)

イニシエータのインストールをVine3.0にインストールする。
Vine3.0でkernelソースが入っていないときはソースを先にインストール

kernel-doc-2.4.26-0vl15.i386.rpm
kernel-source-2.4.26-0vl15.i386.rpm

# rpm -ivh kernel-*

次に、イニシエータをインストール

$ tar zxvf linux-iscsi-3.6.0.3.tgz
$ cd linux-iscsi-3.6.0.3
$ make
$ su
# make install

以下のファイルにターゲットになるマシン名を設定する

/etc/iscsi.conf

##Edit by JE2ISM

Continuous=no
DiscoveryAddress=192.168.10.15
LUN=0

以下のファイルにiSCSI Nameを設定。iSCSI Nameにはiqn(iSCSI Qualified Name)
とeui(Extended Unique Identifier)の2つがありeuiは世界唯一の名前である。
通常はiqnを使用する。

/etc/initiatorname.iscsi

InitiatorName=iqn.1987-05.com.example.target:

ターゲット(vine2.6:192.168.10.15)

最新版はunh_iscsi-1.5.04.tar.gzだったがうまくmakeできなかった
ので今回は1つ前のバージョンで確認する。

$ tar zxvf unh_iscsi-1.5.03.tar.gz
$ cd unh_iscsi.1.5.03/src

以下のファイルにターゲットのiSCSI Nameを設定する
common/iscsi_common.h

#define TARGETNAME_HEADER       "iqn.1987-05.com.example.storage:"

$ ./Configure
$ make clean
$ make

起動

ターゲットを起動してからイニシエータを起動して確認する。
うまく動作すれば起動順序は関係ないようだ。

ターゲットの起動

ターゲットコンパイルディレクトリで
$cd cmd
$su
#./target-install

./iscsi_manage: コマンドが見つかりません.
./iscsi_manage: コマンドが見つかりません.


停止するときは

#./target-uninstall

起動確認

/var/log/messages
Aug 30 20:20:45 vvine26r3 kernel: scsi_target_init_module enter ...
Aug 30 20:20:45 vvine26r3 kernel: opening device scsi_disk_file_0_0
Aug 30 20:20:45 vvine26r3 kernel: devices added: scsi_disk_file_0_0 id: 0 lun: 0 <--(1)
Aug 30 20:20:45 vvine26r3 kernel: opening device scsi_disk_file_0_1
Aug 30 20:20:45 vvine26r3 kernel: devices added: scsi_disk_file_0_1 id: 0 lun: 1
Aug 30 20:20:45 vvine26r3 kernel: opening device scsi_disk_file_0_2

(略)

Aug 30 20:04:12 vvine26r3 kernel: scsi_target_module_init: Initializing: iscsi_target
Aug 30 20:04:12 vvine26r3 kernel: iscsi socket c75374d4 tcp quick port reuse is on
Aug 30 20:04:12 vvine26r3 kernel: iscsi_thr_0 listening on 0.0.0.0:3260
Aug 30 20:04:12 vvine26r3 kernel: iscsi socket c74b9574 tcp quick port reuse is on
Aug 30 20:04:12 vvine26r3 kernel: iscsi_thr_1 listening on 0.0.0.0:860
Aug 30 20:04:12 vvine26r3 kernel: Hosts detected: 1 ... incrementing device usage

iSCSIはPort 3260を使用するので開いているか確認(Port 860も使用するのもあるようなのでこちらも開く)

# netstat -nl
稼働中のインターネット接続 (サーバーのみ)
Proto 受信-Q 送信-Q 内部アドレス            外部アドレス            状態
tcp        0      0 0.0.0.0:32768           0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:32769           0.0.0.0:*               LISTEN
(略)
tcp        0      0 0.0.0.0:860             0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:3260            0.0.0.0:*               LISTEN
(略)

イニシエータの起動

# /etc/rc.d/init.d/iscsi start
Starting iSCSI: iscsi iscsid fsck/mount

起動確認

/var/log/messages

Aug 30 20:42:23 vvine30 iscsid[9401]: version 3.6.0.3 ( 2-Aug-2004)
Aug 30 20:42:23 vvine30 iscsid[9401]: INBP boot check returned this_is_inbp_boot = 0
Aug 30 20:42:23 vvine30 iscsid[9404]: Connected to Discovery Address 192.168.10.15
Aug 30 20:42:23 vvine30 kernel: iSCSI: bus 0 target 0 = iqn.1987-05.com.example.storage:0
Aug 30 20:42:23 vvine30 kernel: iSCSI: bus 0 target 0 portal 0 = address 192.168.10.15 port 3260 group 1
Aug 30 20:42:23 vvine30 kernel: iSCSI: bus 0 target 0 portal 1 = address 192.168.10.15 port 860 group 1
Aug 30 20:42:23 vvine30 kernel: iSCSI: bus 0 target 0 trying to establish session c47d0000 to portal 0, address 192.168.10.15 port 3260 group 1
Aug 30 20:42:23 vvine30 iscsid[9404]: Connection to Discovery Address 192.168.10.15 failed
Aug 30 20:42:23 vvine30 kernel: iSCSI: bus 0 target 0 established session c47d0000 #1, portal 0, address 192.168.10.15 port 3260 group 1
Aug 30 20:42:23 vvine30 kernel: scsi singledevice 0 0 0 0
Aug 30 20:42:23 vvine30 kernel:   Vendor: UNH-IOL   Model: file-mode target  Rev: 1.2
Aug 30 20:42:23 vvine30 kernel:   Type:   Direct-Access                      ANSI SCSI revision: 04
Aug 30 20:42:23 vvine30 kernel: Attached scsi disk sda at scsi0, channel 0, id 0, lun 0
Aug 30 20:42:23 vvine30 kernel: SCSI device sda: 3710937 512-byte hdwr sectors (1900 MB)
Aug 30 20:42:23 vvine30 kernel:  sda: unknown partition table

うまく起動したらFileSystemを作成し、Formatをする。
/sbin/fdsik /dev/sdaでfdiskできる

# /sbin/fdisk /dev/sda
デバイスは正常な DOS 領域テーブルも、Sun, SGI や OSF ディスクラベルも
含んでいません
新たに DOS ディスクラベルを作成します。あなたが書き込みを決定するまで、変更は
メモリ内だけに残します。その後はもちろん以前の内容は修復不可能になります。

このディスクのシリンダ数は 1811 に設定されています。
間違いではないのですが、1024 を超えているため、以下の場合
に問題を生じうる事を確認しましょう:
1) ブート時に実行するソフトウェア (例. バージョンが古い LILO)
2) 別の OS のブートやパーティション作成ソフト
   (例. DOS FDISK, OS/2 FDISK)
警告: 領域テーブル 4 の不正なフラグ 0x0000 は w(書き込み)によって
正常になります

コマンド (m でヘルプ): p

Disk /dev/sda: 1899 MB, 1899999744 bytes
64 heads, 32 sectors/track, 1811 cylinders
Units = シリンダ数 of 2048 * 512 = 1048576 bytes

 デバイス ブート   始点      終点  ブロック   ID  システム

コマンド (m でヘルプ): n
コマンドアクション
   e   拡張
   p   基本領域 (1-4)
p
領域番号 (1-4): 1
最初 シリンダ (1-1811, 初期値 1):
初期値 1 を使います
終点 シリンダ または +サイズ または +サイズM または +サイズK (1-1811, 初期値 1811): +200M

コマンド (m でヘルプ): p

Disk /dev/sda: 1899 MB, 1899999744 bytes
64 heads, 32 sectors/track, 1811 cylinders
Units = シリンダ数 of 2048 * 512 = 1048576 bytes

 デバイス ブート   始点      終点  ブロック   ID  システム
/dev/sda1             1       192    196592   83  Linux

コマンド (m でヘルプ): w
領域テーブルは交換されました!

ioctl() を呼び出して領域テーブルを再読込みします。
ディスクを同期させます。


Formatを行う

# /sbin/mke2fs -j /dev/sda1
mke2fs 1.35 (28-Feb-2004)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
49152 inodes, 196592 blocks
9829 blocks (5.00%) reserved for the super user
First data block=1
24 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
        8193, 24577, 40961, 57345, 73729

Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 37 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

無事フォーマットできたら、mountして普通のSCSIのファイルシステムとして使用できる

# mount /dev/sda1 /mnt

# mount
/dev/hda2 on / type ext3 (rw)
none on /proc type proc (rw)
usbdevfs on /proc/bus/usb type usbdevfs (rw)
/dev/hda1 on /boot type ext3 (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
none on /dev/shm type tmpfs (rw)
/dev/sda1 on /mnt type ext3 (rw)

ターゲット上の実ファイル

ターゲット上のデータは
unh_iscsi.1.5.03/src/cmd/scsi_disk_file_0_0
に入るようだ。ターゲット起動時の/var/log/messegesの(1)に表示されるのと
同じようだ。

			DE JE2ISM  2004/09