1. iSCSIサービスの有効化
グローバルゾーンでiSCSIイニシエータのサービスが動作しているか確認し、無効であれば有効にします。
# サービス状態の確認
svcs network/iscsi/initiator
# 無効(disabled)な場合は有効化
svcadm enable network/iscsi/initiator
2. 自サーバーのIQNを確認
ストレージ(ターゲット)側でアクセス許可を設定するために、自サーバーのIQN(iSCSI Qualified Name)を確認します。
iscsiadm list initiator-node
注: 出力された
Initiator node name: iqn.1986-03.com.sun:01:xxxxをストレージ側に登録し、LUNの割り当て(LUN Masking)を行ってください。
3. ターゲットの探索(Discovery)設定
ストレージのIPアドレスを指定して、ターゲットを見つけられるようにします。一般的には「SendTargets」方式を使用します。
# 1. SendTargets探索を有効化
iscsiadm modify discovery -t enable
# 2. ストレージのIPアドレスを追加(デフォルトポート 3260)
iscsiadm add discovery-address <ストレージのIPアドレス>:3260
4. デバイスの認識と確認
探索設定が完了すると、OSが自動的にターゲットを検出します。
- iSCSIターゲットとしての接続確認
iscsiadm list targetここでStatus: activeになっていれば通信は成功です。 - OS上のディスクデバイスとしての確認
devfsadm -c disk # 新規デバイスの再スキャンformat # ディスク一覧に現れるか確認してマウントするディスクを特定しておきます。
終了はctrl+dで抜ける
AVAILABLE DISK SELECTIONS:
0. c1t0d0
/pci@0,0/pci15ad,1976@10/sd@0,0
1. c0t6001405663731346261313531303233d0
/scsi_vhci/ssd@g6001405663731346261313531303233
太字がiSCSIディスクです。
5. ZFSプールの作成
認識したディスクを使用して、ZFSプールを作成します。
# 例: c0t6001405663731346261313531303233d0 という名前で認識された場合
zpool create <プール名> /dev/dsk/c0t6001405663731346261313531303233d0
テストとしたい場合は以下でエラーが無いことを確認
zpool create -n <プール名> /dev/dsk/c0t6001405663731346261313531303233d0
パスなしでも自動的に見つけてくれます。
zpool create -n <プール名> c0t6001405663731346261313531303233d0
zfsが作成できたら、以下のコマンドで確認します。
zpool list
#プール名とディスク容量を確認
zfs list
# /<プール名>でマウントされていることを確認
補足:静的設定が必要な場合(認証など)
ストレージ側で CHAP認証 が必要な場合は、以下の設定を追加で行う必要があります。
# ユーザー名とパスワードの設定例
iscsiadm modify initiator-node --authentication-type CHAP
iscsiadm modify initiator-node --CHAP-secret
# (この後パスワード入力を求められます)
注意点
持続性: iscsiadm で設定した内容はリブート後も保持されます。
ネットワーク設計: iSCSIトラフィックは非常に帯域を消費するため、可能であれば管理用や業務用のLANとは別の、iSCSI専用のNIC(VNIC)とサブネットを使用することを強く推奨します。
6.ゾーンにiSCSIディスクをマウントする
既存ゾーンに「追加ディスク」として渡す
※この場合、グローバルゾーン側であらかじめ mkdir / をしておく必要があります。
# グローバルゾーンで実行
mkdir //
※ プール全体(/
#グローバルゾーンで以下のコマンドを入力します。
zonecfg -z <割り当てるzone名>
zonecfg:newzone> add fs
zonecfg:newzone> set dir=/data # ゾーン内での見え方
zonecfg:newzone> set special=// # グローバルゾーン側(iSCSI)のパス
zonecfg:newzone> set type=lofs # ZFSを渡す場合の標準形式
zonecfg:newzone> end
zonecfg:newzone> commit
zonecfg:newzone> exit
7. 仕上げ:ゾーンの起動と確認
最後にゾーンを起動して中から確認します。
# ゾーンの起動
zoneadm -z boot
# ゾーンにログインしてディスク容量を確認
zlogin df -h
df -h の結果に、iSCSIで作成したサイズの領域が表示されていれば成功です。
ご参考まで