3 台の ESXi ホストに外部の iSCSI ストレージを 2 本の経路で接続し、VMFS の共有データストアを作って、パス選択ポリシーを Round Robin にする手順です。最後に、経路を 1 本切っても仮想マシンが動き続けること、共有データストア上の仮想マシンを vMotion で移せることを確認します。
この記事の前提
参照した公式ドキュメント
- vSphere Storage(vSphere 8.0)- iSCSI と Fibre Channel のストレージの設定、マルチパス
- Broadcom KB 2038869:Considerations for using software iSCSI port binding in ESXi
構成
| 項目 | 内容 |
|---|---|
| iSCSI ターゲット | iqn.2026-10.local.lab:vsphere-lun、LUN 100 GB(Linux の LIO で作成) |
| ターゲットのポータル | 10.20.81.10(経路 A)、10.20.82.10(経路 B) |
| ESXi 側 | ソフトウェア iSCSI アダプター(vmhba64)、VMkernel vmk2(iSCSI-A、10.20.81.x)・vmk3(iSCSI-B、10.20.82.x) |
| データストア | iscsi-ds01(VMFS 6) |
VMkernel アダプターは、ネットワーク設定手順で作りました。
ポートバインドを使うかどうか
ソフトウェア iSCSI で複数の経路を使う方法は、構成によって 2 通りあります。KB 2038869 では次のように説明されています。
| 構成 | ポートバインド |
|---|---|
| すべての iSCSI 用 VMkernel とターゲットのポータルが同じサブネット(同じブロードキャストドメイン) | 使う必要があります。VMkernel ごとにアクティブなアップリンクを 1 本にして、iSCSI アダプターに結び付けます |
| VMkernel やポータルが別々のサブネットにある | 使いません。ESXi はサブネットごとの VMkernel から、それぞれのポータルへ接続します |
この記事の構成は、経路 A と経路 B を別々のサブネットに分けているので、ポートバインドを使いません。
【検証結果】別サブネットの構成でポートバインドを設定したところ、到達できない組み合わせ(10.20.81.x の VMkernel から 10.20.82.10 など)も経路として試され、スキャンが遅くなりました。ポートバインドを外すと、各ホストで 2 つのセッション(10.20.81.x→10.20.81.10、10.20.82.x→10.20.82.10)と 2 つの経路になりました。
ストレージ側の準備(参考)
ターゲットには、3 台のホストのソフトウェア iSCSI アダプターの IQN(iSCSI Name)を登録して、アクセスを許可します。IQN はこの後の手順のアダプターの [Properties] で確認できます。
ソフトウェア iSCSI アダプターの有効化
(1) ホスト(192.168.1.114)を選び、[Configure] → [Storage] → [Storage Adapters] を開きます。ソフトウェア iSCSI アダプターがない場合は、[ADD SOFTWARE ADAPTER] → [Add iSCSI adapter] で追加します。ホストに 1 つだけ追加でき、追加済みの場合はメニューがグレーになります。

(2) [iSCSI Software Adapter](vmhba64)を選び、[Properties] で [Status] が [Enabled] であること、[iSCSI Name](IQN)を確認します。

ターゲットの登録
(1) [Dynamic Discovery] タブで [ADD] をクリックし、[iSCSI Server] にポータルの IP アドレス(10.20.81.10)を入力して [OK] をクリックします。ターゲットが公開しているほかのポータル(10.20.82.10)も自動で見つかります。

| 項目 | 説明 | 設定値 |
|---|---|---|
| iSCSI Server | ターゲットのポータルの IP アドレスか FQDN です | 10.20.81.10 |
| Port | iSCSI のポートです | 3260(既定) |
| Inherit authentication settings from parent | アダプターの CHAP 認証の設定を引き継ぎます | オン(既定) |
(2) 「Due to recent configuration changes, a rescan of “vmhba64” is recommended.」と表示されます。[RESCAN STORAGE] をクリックし、[Rescan Storage] で [OK] をクリックします。

(3) [Static Discovery] タブに、見つかったターゲットとポータルが表示されます。

検証環境の iSCSI サーバーには Proxmox VE 用のターゲット(pvedoc-lun)もあり、同じく表示されています。そのターゲットは ESXi の IQN を許可していないので、LUN は見えません。
(4) [Network Port Binding] タブは、前提のとおり何も設定しません。

(5) [Paths] タブで、LUN 0 に 2 つの経路(10.20.81.10 と 10.20.82.10)があることを確認します。

(6) ほかの 2 台のホスト(192.168.1.115・116)でも、同じようにターゲットを登録して再スキャンします。
VMFS データストアの作成
(1) クラスタ(Cluster-doc)を選び、[ACTIONS] → [Storage] → [New Datastore] をクリックします。

(2) [Type] で [VMFS] を選んで [NEXT] をクリックします。

(3) [Name and device selection] で、データストアの名前を入力し、[Select a host] でホストを 1 台選び、iSCSI の LUN(LIO-ORG iSCSI Disk、100 GB)を選んで [NEXT] をクリックします。データストアは、同じ LUN が見えるすべてのホストで使えます。

20 GB と 60 GB のローカルディスクは、HCI 構成(vSAN)で使うので選びません。
(4) [VMFS version] で [VMFS 6] を選んで [NEXT] をクリックします。

(5) [Partition configuration] で、[Use all available partitions](ディスク全体)のまま [NEXT] をクリックします。

| 項目 | 説明 | 設定値 |
|---|---|---|
| Partition Configuration | ディスク全体を使うか、一部を使うかです | Use all available partitions |
| Datastore Size | データストアの容量です | 100 GB |
| Block size | VMFS のブロックサイズです | 1 MB |
| Space Reclamation Granularity / Priority | 削除された領域を LUN に返す(UNMAP)単位と優先度です | 1 MB / Low(既定) |
(6) [Ready to complete] で内容を確認して [FINISH] をクリックします。

(7) クラスタの [Datastores] タブに iscsi-ds01 が表示されます。3 台のホストすべてにマウントされます。

パス選択ポリシーの変更(Round Robin)
LIO のターゲットは、既定では Most Recently Used(MRU)になり、2 本の経路のうち 1 本だけを使います。Round Robin に変えて、2 本の経路に I/O を振り分けます。
ストレージ装置ごとの推奨のパス選択ポリシーは、装置のベンダーのドキュメントを確認してください。多くのアクティブ/アクティブ型・ALUA 型の装置では Round Robin が推奨されています。
(1) [Storage] のビューでデータストア(iscsi-ds01)を選び、[Configure] → [Connectivity and Multipathing] を開きます。ホストを選び、[Multipathing Policies] の [ACTIONS] → [Edit Multipathing] をクリックします。

(2) [Path selection policy] の一覧で、パス選択ポリシーを選びます。

| ポリシー | 動作 |
|---|---|
| Most Recently Used (VMware) | 1 本の経路を使い、故障したら別の経路に切り替えます。元の経路が戻っても切り替えません |
| Round Robin (VMware) | 使える経路に順番に I/O を振り分けます |
| Fixed (VMware) | 優先する経路(Preferred)を使い、故障したら別の経路に切り替えます。優先する経路が戻ったら戻します |
(3) [Round Robin (VMware)] を選んで [OK] をクリックします。

(4) [Path Selection Policy] が [Round Robin (VMware)] になり、2 つの経路が両方とも [Active (I/O)] になったことを確認します。

(5) ほかの 2 台のホストでも同じように変更します。ESXi の SSH で変更する場合は、次のコマンドです(naa. で始まる ID は LUN ごとに異なります)。
esxcli storage nmp device set -d naa.6001405a7d9c7b6f38d4d94866a3e0a1 -P VMW_PSP_RR
esxcli storage nmp device list -d naa.6001405a7d9c7b6f38d4d94866a3e0a1
Working Paths に 2 つの経路が表示されれば Round Robin で動いています。
動作の確認
経路の障害
検証のための手順です。本番環境で行う場合は、メンテナンスの時間に行ってください。
(1) 仮想マシン(rocky01)を作り(仮想マシン作成手順)、iscsi-ds01 に置いて 192.168.1.115 で動かします。
(2) 192.168.1.115 の経路 A の NIC(vmnic1)のケーブルを抜いた状態にします(検証環境では、入れ子の ESXi の仮想 NIC をリンクダウンしました)。約 40 秒後、[Connectivity and Multipathing] で 192.168.1.115 を選ぶと、10.20.81.10 の経路が [Dead]、10.20.82.10 の経路が [Active (I/O)] になっています。

この間も、仮想マシンの中でのディスクへの書き込み(200 MiB)は問題なく行えました。
(3) NIC を戻すと、約 1 分で 2 つの経路が両方とも [Active (I/O)] に戻ります。

vMotion
共有データストアにある仮想マシンは、ディスクをコピーせずにほかのホストへ移せます。
(1) 仮想マシン(rocky01)を選び、[ACTIONS] → [Migrate] をクリックします。

(2) [Select a migration type] で [Change compute resource only] を選んで [NEXT] をクリックします。

| 種類 | 説明 |
|---|---|
| Change compute resource only | 動かすホスト(クラスタ)だけを変えます。ストレージはそのままです(vMotion) |
| Change storage only | ストレージだけを変えます(Storage vMotion) |
| Change both compute resource and storage | ホストとストレージの両方を変えます |
| Cross vCenter Server export | SSO ドメインで連携していない別の vCenter Server へ移します |
(3) [Select a compute resource] で移動先のホスト(192.168.1.116)を選び、「Compatibility checks succeeded.」を確認して [NEXT] をクリックします。

(4) [Select networks] で、移動先のネットワーク(VM Network のまま)を確認して [NEXT] をクリックします。

(5) [Select vMotion priority] で [Schedule vMotion with high priority (recommended)] のまま [NEXT] をクリックします。

(6) [Ready to complete] で内容を確認して [FINISH] をクリックします。

(7) [Recent Tasks] の [Relocate virtual machine] が [Completed] になり、[Related Objects] の [Host] が 192.168.1.116 に変わります。

【検証結果】タスクは約 10 秒で完了しました。vMotion の間、別の PC から仮想マシンへ 0.2 秒ごとに ping を送ったところ、300 回のうち失われたのは 1 回でした。