vSAN iSCSI Targetでちょっと苦戦した話。
ちょっとしたメモとして投稿。
事象
vSAN iSCSI Targetを作成したのにESXiホストでiSCSIサービスがLISTENされない
原因
vSAN iSCSI ターゲットの設定画面にて、「デフォルトのiSCSI ネットワーク」で指定したvmkernel portがIPv4無効な場合に発生する
説明
vSAN iSCSI Target を有効化する際に、デフォルトのiSCISネットワークとして既存のvmkernel portを選択する項目がある。
この項目は、その後のステップでiSCSI ターゲットを作成する際に任意のvmkernel
portで上書きできるため、この時点で実際に利用するvmkernel portを指定する必要はない。
しかしながら、実際にiSCSI ターゲットのインターフェースとして利用可能なvmkernel
portを利用する必要がある。
たとえば、VxRailなどのアプライアンス製品ではvmk0は自動検知用(IPv6利用)としてipv4が無効化されているケースがある。
このようなケースにおいて、ipv4が無効化されているvmkernel port を「デフォルトのiSCSI ネットワーク」として指定した場合、vSAN iSCSIターゲットサービスの起動時に該当のポートをiSCSIターゲットとしてバインドすることができず、正常に起動できなくなる。結果として、iSCSIターゲット作成時に上書きした他のvmkernel portも含めてiSCSI接続ができなくなる。
仮に以下の設定をしたとする。
・デフォルトのiSCSI ネットワークとしてvmk0 (IPv4が無効)を指定
・作成したiSCSI ターゲットでvmk5を指定
この状況でiSCSI Target (vmk5利用)に対してiSCSI接続を試みても接続ができない。
vitd.logを確認すると以下の実際には使われないvmk0に対してiSCSIサービスのバインドができないため、vmk5へのバインドも実施されていないことがわかる。
(vitd.log)
2024-01-17T08:32:41.542Z vitd[14330827]: Thread-0x530b63c700 Applying config generation 25 2024-01-17T08:32:41.542Z vitd[14330827]: Thread-0x52e7f98e80 received SIGHUP, reloading configuration 2024-01-17T08:32:41.547Z vitd[14330827]: Thread-0x52e7f98e80 Failed to fetch target interface vmk0 address for host 6502cb4d-a4cb-00d4-6784-246e96e0f702 2024-01-17T08:32:41.547Z vitd[14330827]: Thread-0x52e7f98e80 Unable to find CMMDS entry for interface vmk0 for host 6502cb4d-a4cb-00d4-6784-246e96e0f702 with error: Not found 2024-01-17T08:32:41.547Z vitd[14330827]: Thread-0x52e7f98e80 getaddrinfo for vmk0:3260 failed: Name or service not known 2024-01-17T08:32:41.547Z vitd[14330827]: Thread-0x52e7f98e80 invalid listen address vmk0:3260 2024-01-17T08:32:41.547Z vitd[14330827]: Thread-0x52e7f98e80 Failed to parse config file /vmfs/volumes/vsan:5257f0ac25cb2143-622849f027fdea74/.iSCSI-CONFIG/etc/vit.conf: Inappropriate ioctl for device 2024-01-17T08:32:41.548Z vitd[14330827]: Thread-0x52e7f98e80 configuration error, continuing with old configuration 2024-01-17T08:33:08.678Z vitd[14330827]: Thread-0x530b63c700 Applying config generation 26 2024-01-17T08:33:08.678Z vitd[14330827]: Thread-0x52e7f98e80 received SIGHUP, reloading configuration 2024-01-17T08:33:08.682Z vitd[14330827]: Thread-0x52e7f98e80 Failed to fetch target interface vmk0 address for host 6502cb4d-a4cb-00d4-6784-246e96e0f702 2024-01-17T08:33:08.682Z vitd[14330827]: Thread-0x52e7f98e80 Unable to find CMMDS entry for interface vmk0 for host 6502cb4d-a4cb-00d4-6784-246e96e0f702 with error: Not found 2024-01-17T08:33:08.682Z vitd[14330827]: Thread-0x52e7f98e80 getaddrinfo for vmk0:3260 failed: Name or service not known 2024-01-17T08:33:08.682Z vitd[14330827]: Thread-0x52e7f98e80 invalid listen address vmk0:3260 2024-01-17T08:33:08.682Z vitd[14330827]: Thread-0x52e7f98e80 Failed to parse config file /vmfs/volumes/vsan:5257f0ac25cb2143-622849f027fdea74/.iSCSI-CONFIG/etc/vit.conf: Inappropriate ioctl for device 2024-01-17T08:33:08.684Z vitd[14330827]: Thread-0x52e7f98e80 configuration error, continuing with old configuration |
ESXiホストでTCPの待ち受け(LISTEN)確認できる esxcli network ip connection list を利用しても、設定したiSCSI ポートである3260ではLISTENされていないことがわかる
# esxcli network ip connection list | grep 3260 # echo $? 1 |
解決方法
vSAN iSCSI サービスの設定を編集してデフォルトのvmkernel
port をIPv4が利用可能なものに変更すればよい。
変更後すぐに構成が適用されて、指定したvmkernel portでLISTENされるようになる
コメント
コメントを投稿