Categories

iSCSI Initiator – Solaris 10

Solaris 10 で iSCSI Initiator を設定したときのメモ。

Solaris 10 で iSCSI Initiator を利用する場合、 Solaris 10 が 1/06 以降のリリースである必要があります。

以下の文書を参考にしています。

Solaris では iSCSI Initiator を設定するためのコマンドとして iscsiadm というモノが用意されています。

iSCSI Initiator が iSCSI Target を利用しようとした場合、 iSCSI Initiator はネットワーク上の iSCSI Target を何らかの方法で認識しなければならないわけですが、 iSCSI Initiator が iSCSI Target を発見するための方法として、以下の 3 つの方法が用意されています。

  1. 静的デバイス発見 – iSCSI Target を静的に構成する方法
  2. SendTargets による動的デバイス発見 – iSCSI Target の IP アドレスとポートの組み合わせから iSCSI Target を発見する方法
  3. iSNS による動的デバイス発見 – iSNS サーバの IP アドレスとポートの組み合わせから iSCSI Target を発見する方法

ここでは SendTargets による動的デバイス発見で iSCSI Target を認識させます。

なお、前回の例で iSCSI Target として利用した Solaris Express では iSNS は利用できませんが、将来的には iSNS も実装することになっているようです。Solaris Express の iSCSI Target で iSNS が利用できるようになったら評価してみようと思っています。

まずは iSCSI Target を SendTargets の発見アドレスとして登録します。以下で 192.168.1.15 は iSCSI Target の IP アドレスで、 3260 はポート番号です。

bash-3.00# iscsiadm add discovery-address 192.168.1.15:3260

そして SendTargets を有効化します。

bash-3.00# iscsiadm modify discovery --sendtargets enable

これで 192.168.1.15 に登録された iSCSI Target が利用できるようになります。

iscsiadm コマンドで現在認識している iSCSI Target の一覧を表示することができます。

bash-3.00# iscsiadm list target
Target: iqn.1986-03.com.sun:02:5185308e-59e1-efe5-dcac-b4ce033808ba.target01
Alias: target01
TPGT: 1
ISID: 4000002a0000
Connections: 1
Target: iqn.1986-03.com.sun:02:66dbbe37-13fa-6637-c597-cf1f57b3d85c.target02
Alias: target02
TPGT: 1
ISID: 4000002a0000
Connections: 1
Target: iqn.1986-03.com.sun:02:861c6552-3a19-43b8-ccff-91ef396f98de.target03
Alias: target03
TPGT: 1
ISID: 4000002a0000
Connections: 1

試しに format コマンドを実行してみると、以下のようにデバイスが増えています。

bash-3.00# format
Searching for disks...done
AVAILABLE DISK SELECTIONS:
0. c1t0d0 <DEFAULT cyl 2607 alt 2 hd 255 sec 63>
/pci@0,0/pci1000,30@10/sd@0,0
1. c2t0100000C29AE111100002A0046CD8AAFd0 <DEFAULT cyl 97 alt 2 hd 64 sec 32>
/scsi_vhci/disk@g0100000c29ae111100002a0046cd8aaf
2. c2t0100000C29AE111100002A0046CD8C5Dd0 <DEFAULT cyl 97 alt 2 hd 64 sec 32>
/scsi_vhci/disk@g0100000c29ae111100002a0046cd8c5d
3. c2t0100000C29AE111100002A0046CD8C5Ed0 <DEFAULT cyl 97 alt 2 hd 64 sec 32>
/scsi_vhci/disk@g0100000c29ae111100002a0046cd8c5e
Specify disk (enter its number):

あとは普通の SCSI ディスクと同じように扱えます。

例えば上記 3 つで raidz pool を作りたければこんな感じです。

bash-3.00# zpool create tank raidz c2t0100000C29AE111100002A0046CD8AAFd0 \
> c2t0100000C29AE111100002A0046CD8C5Dd0 \
> c2t0100000C29AE111100002A0046CD8C5Ed0
bash-3.00# zpool status
pool: tank
state: ONLINE
scrub: none requested
config:
NAME                                       STATE     READ WRITE CKSUM
tank                                       ONLINE       0     0     0
raidz1                                   ONLINE       0     0     0
c2t0100000C29AE111100002A0046CD8AAFd0  ONLINE       0     0     0
c2t0100000C29AE111100002A0046CD8C5Dd0  ONLINE       0     0     0
c2t0100000C29AE111100002A0046CD8C5Ed0  ONLINE       0     0     0
errors: No known data errors
bash-3.00# df -k
Filesystem            kbytes    used   avail capacity  Mounted on
/dev/dsk/c1t0d0s0    20093023 3593070 16299023    19%    /
/devices                   0       0       0     0%    /devices
ctfs                       0       0       0     0%    /system/contract
proc                       0       0       0     0%    /proc
mnttab                     0       0       0     0%    /etc/mnttab
swap                  684520     724  683796     1%    /etc/svc/volatile
objfs                      0       0       0     0%    /system/object
/usr/lib/libc/libc_hwcap1.so.1
20093023 3593070 16299023    19%    /lib/libc.so.1
fd                         0       0       0     0%    /dev/fd
swap                  683832      36  683796     1%    /tmp
swap                  683824      28  683796     1%    /var/run
tank                  144552      32  144462     1%    /tank

Comments are closed.