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 portLISTENされるようになる

 

 


コメント

このブログの人気の投稿

vSwitchにSTPが不要な理由

ESXi に DNS サーバを何個まで登録できるか

障害でVDSから切断されたVCSAの復旧方法