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 つの方法が用意されています。
- 静的デバイス発見 – iSCSI Target を静的に構成する方法
- SendTargets による動的デバイス発見 – iSCSI Target の IP アドレスとポートの組み合わせから iSCSI Target を発見する方法
- 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
