仮想トンネル エンドポイント (TEP) に関連付けられているワークロード(仮想マシンまたはコンテナ)の接続が失われないようにするには、TEP HA ホスト スイッチ プロファイルを構成し、クラスタ トランスポート ノードまたは個々のトランスポート ノードに適用します。
L2 または L3 ネットワークにまたがるオーバーレイ ネットワークはカプセル化プロトコルを使用するため、ワークロード(仮想マシンまたはコンテナ)からの出力方向または入力方向のパケットは、仮想トンネル エンドポイント (TEP) の外側のパケット内にカプセル化されます。TEP が障害状態になると、TEP に関連付けられた仮想マシンは到達不能になります。仮想マシンと TEP の間には 1 対 1 のマッピングがあります。
次のいずれかに該当する場合、TEP に障害が発生します。
- アンダーレイ ファブリックの問題が原因で、TEP のすべての BFD セッションが停止している。
- TEP に IP アドレスがない。
健全な TEP には次の特徴があります。
- IP アドレスがある。
- TEP に関連する少なくとも 1 つの BFD セッションが稼動している。
NSX が TEP の停止を検出すると、仮想マシンの vNIC は、障害のある TEP から同じ ESXi ホスト上の健全な TEP に移行されます。ESXi に 2 つの TEP があり、両方に障害がある場合、仮想マシンの vNIC は移行できません。
各仮想マシンに複数の vNIC が存在する場合があります。各 vNIC は単一の TEP に関連付けられます。vNIC からのパケットは、アップリンクから送信される前にカプセル化されます。1 つの TEP に複数の vNIC をマッピングできます。マッピングは、アップリンク チーミング ポリシーに基づいて決定されます。
注: TEP HA は IPv4 TEP のみをサポートします。
前提条件
1 台の ESXi ホストに少なくとも 2 つの TEP が構成されていること。トランスポート ノード プロファイル (TNP) の作成に使用するアップリンク プロファイル、または個々のトランスポート ノード構成で少なくとも 2 つのアクティブ アップリンク (TEP) が使用されていることを確認します。
手順
- TEP HA ホスト スイッチ プロファイルを作成します。
PUT https://<nsx-policy-manager>/policy/api/v1/infra/host-switch-profiles/vtephaprofile1
{
"enabled": "true",
"failover_timeout":"5",
"auto_recovery" : "true",
"auto_recovery_initial_wait" : "300",
"auto_recovery_max_backoff" : "86400",
"resource_type": "PolicyVtepHAHostSwitchProfile",
"display_name": "VtepHAProfile1"
}
以下に、各コマンドについて説明します。
- enabled:TEP HA が有効かどうかを示します。値が true の場合、TEP HA は有効です。false の場合は無効です。
- failover_timeout:TEP 高可用性フェイルオーバー タイムアウト(秒単位)。このプロパティは、vmknic で障害が検出されてから仮想マシン vNIC を健全な別の TEP に移動するまでの時間を制御します。デフォルトのタイムアウトは 5 秒です。サポートされる最大値は 60 秒です。
- auto_recovery:TEP 高可用性機能の自律リカバリ オプションの状態を指定します。auto_recovery が true に設定されている場合、障害が発生した vmknic は、すべての循環シーケンスの後に内部的にチェックされます。障害のある vmknic がリカバリされるときに、仮想マシンの vNIC がその TEP にマッピングされていれば、仮想マシンは最初の TEP マッピングに戻されます。デフォルトでは、auto_recovery は true に設定されています。自動リカバリ中に TEP が引き続き障害状態になっていると、仮想マシンが停止します。廃止時間は、次の式を使用して計算されます。
failover_timeout + bfd timeout + 1
。デフォルトの bfd timeout
は 4 秒です。
- auto_recovery_initial_wait:このプロパティは、自律リカバリの開始時間を制御します。最初の最小待機時間は 300 秒で、最大待機時間は 3,600 秒です。最初の待機時間が 300 秒の場合、自動リカバリは 300 秒から開始します。
- auto_recovery_max_backoff:auto_recovery_initial_wait 後に初期リカバリが試行されます。このリカバリが失敗した場合は、前回の遅延時間を 2 倍にした後に追加の試行が行われます。遅延が auto_recovery_max_backoff に達すると、遅延が増加しなくなり、以降のすべての試行が auto_recovery_max_backoff ごとに実行されます。
- TEP HA プロファイルをすべての ESXi ホストに適用するには、ホスト スイッチ プロファイル セクションに追加された TEP HA プロファイル キーと値プロパティを使用して TNP を作成するか、TEP HA プロファイル キーと値のプロパティを使用して個々のトランスポート ノードを準備します。
PUT https://<nsx-policy-manager>/policy/api/v1/infra/host-transport-node-profiles/<tnp-id>
<tnp-id>
パラメータに、トランスポート ノード プロファイル ID を入力します。
{
"host_switch_spec": {
"host_switches": [
{
"host_switch_name": "vtepha_vds",
"host_switch_id": "50 22 ee c4 f6 40 79 8b-0e a4 2b da 6a 4c 36 b3",
"host_switch_type": "VDS",
"host_switch_mode": "ENS_INTERRUPT",
"host_switch_profile_ids": [
{
"key": "UplinkHostSwitchProfile",
"value": "/infra/host-switch-profiles/b32e6ce6-f1ba-4e31-a2c4-33d550505cdd"
},
{
"key": "VtepHAHostSwitchProfile",
"value": "/infra/host-switch-profiles/vtephaprofile1"
}
],
"uplinks": [
{
"vds_uplink_name": "Uplink 1",
"uplink_name": "uplink-1"
},
{
"vds_uplink_name": "Uplink 2",
"uplink_name": "uplink-2"
}
],
"is_migrate_pnics": false,
"ip_assignment_spec": {
"ip_pool_id": "/infra/ip-pools/v4",
"resource_type": "StaticIpPoolSpec"
},
"cpu_config": [],
"transport_zone_endpoints": [
{
"transport_zone_id": "/infra/sites/default/enforcement-points/default/transport-zones/de47a6b9-fa4c-4bf3-bd75-385859895949",
"transport_zone_profile_ids": []
}
],
"not_ready": false
}
],
"resource_type": "StandardHostSwitchSpec"
},
"ignore_overridden_hosts": false,
"resource_type": "PolicyHostTransportNodeProfile"
}
注: TEP HA を使用して TNP を構成しない場合は、NSX はデフォルトの TEP HA プロファイルを作成します。このデフォルトの TEP HA プロファイルは、デフォルト値で構成されています。TEP HA は無効です。
- 手順 1 で作成した TEP HA プロファイル ID を確認するには、次の API を実行します。
get https://<nsx-manager>/policy/api/v1/infra/host-switch-profiles/vtephaprofile1
GET 応答で、id
フィールドから TEP HA プロファイルの値を取得できます。
- TEP HA ホスト スイッチ プロファイルがトランスポート ノードに適用されているかどうかを確認するには、次の API を実行します。
GET https://<nsx-manager>/policy/api/v1/infra/host-transport-nodes-profiles/<tnp_id>
"host_switch_profile_ids": [
{
"key": "VtepHAHostSwitchProfile",
"value": "/infra/host-switch-profiles/<vtephaprofile1>"
}
],
<vtephaprofile1>
は、手順 1 で TEP HA プロファイルの作成時に返される ID です。
- また、障害のある TEP の手動リカバリをトリガし、自動リカバリの開始を待たずに、関連する仮想マシンを健全な TEP に移行することもできます。
POST https://<nsx-mgr>/policy/api/v1/infra/sites/<site-id>/enforcement-points/<enforcementpoint-id>/host-transport-nodes/<host-transport-node-id>/vteps/actions
{
"action_type": "TransportNodeVtepRecoveryRequest",
"device_name": "vmk10"
}
ここで、vmk10 は TEP 名です。
- TEP の vmknic に障害が発生した場合は、アラーム API を実行してエラーに関連する詳細を確認するか、NSX Manager のダッシュボードでエラーを確認します。
vmknic に障害がある場合、NSX でアラームが発生するまでに 60 秒以上かかる場合があります。同様に、TEP が障害状態になった後に再び稼動させると、NSX が新しい状態を反映するまでに最大 60 秒かかる場合があります。
GET https://<nsx-manager>/api/v1/alarms?feature_name=tep_health
- IP または BFD 関連のエラーを修正した後、state パラメータで vmknic または TEP の状態を確認します。
GET https://<nsx-manager>/api/v1/transport-nodes/<node-id>/network/interfaces?source=realtime
{
"interfaceId": "vmk10",
"linkStatus": "UP",
"adminStatus": "UP",
"mtu": "1600",
"interfaceAlias": [{
"broadcastAddress": "133.117.22.255",
"ipAddress": {
"ipv4": 2239043120
},
"ipConfiguration": "STATIC",
"netmask": "255.255.255.0",
"macAddress": "00:50:56:66:67:a6"
}],
"state": "NORMAL"
},
結果
BFD が停止している場合、NSX は、障害のある TEP が自動リカバリ メカニズムまたは手動リカバリ メカニズムを使用して稼動状態に戻ったかどうかを判断します。
初期状態では IP が使用できず、障害のある TEP に再度割り当てられた場合、NSX は組み込みのメカニズムを使用して、TEP がいつ稼動状態に戻されるかを判断します。手動または自動リカバリ メカニズムには依存しません。
障害のある TEP が稼動状態に戻らない場合:
- 自動リカバリまたは手動リカバリ プロセス中に、仮想マシンの vNIC で一時的なネットワーク障害が発生することがあります。
- ネットワークの停止は、BFD チェック中に仮想マシンの vNIC が障害のある TEP にマッピングされたままであることが原因である可能性があります。
- ネットワーク停止時間は、式
failover_timeout + bfd timeout + 1
(10 秒)でて計算されます。デフォルトの bfd timeout
は 4 秒です。
障害のある TEP がまだ起動しない場合、仮想マシンの vNIC は、ホストで使用可能な健全な TEP に再マッピングされます。TEP が良好でない場合、仮想マシンの vNIC は元の TEP にマッピングされます。