標準仮想スイッチ(VSS)の冗長化設定とロードバランシングアルゴリズムまとめ

スポンサーリンク

VMware ESXiの標準仮想スイッチ(VSS)でNIC冗長化を実現する方法をまとめます。さらに、トラブルに発展しやすい(宗教戦争になりやすい)ロードバランシングアルゴリズムのメリット・デメリットを整理します。

冗長化設定まとめ

最小限設定

ESXiの管理画面にて、「ネットワーク」「標準スイッチ」の順に押下し、冗長化したいスイッチをさらに選びます。

VSSの冗長化設定 01

初期状態ではアップリンクが1つしかなく、NICやネットワーク機器の障害によって疎通不能になりうる事に着目してください。この画面で「アップリンクの追加」を押下すると、NICの冗長化が可能です。

VSSの冗長化設定 01

冗長化するNICを選びます。もし、予算が許すならば、カード単位での障害を考慮し、冗長化するアップリンクは別のカードになるように設定すると良いでしょう(例:vmnic0とvmnic2で冗長化)。

VSSの冗長化設定 03

リンク検出

標準仮想スイッチ(VSS)はCDP(Cisco Discovery Protocol)を用いた障害の検出が可能です。レアケースではありますが、リンクアップしているものの疎通不能になるような特殊な壊れ方をした場合の障害を検知できます。

標準仮想スイッチ(VSS)はCDPのみ選択可能のためCisco機器以外では障害を検知できませんが、分散仮想スイッチ(VDS)ではCDPとLLDPの選択が可能でCisco機以外でも障害の検出が可能です。

モードは「待機」「アドバタイズ」「両方」「なし」のいずれかを選択し、VMware ESXi自身がCDPを発信するか否かを選択できます。

CDPによる障害検知 01

デフォルト設定の「待機」では、ESXiに接続されたCisco機はESXiを認識していません。

Switch#show cdp neighbors 
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
                  S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, 
                  D - Remote, C - CVTA, M - Two-port Mac Relay 

Device ID        Local Intrfce     Holdtme    Capability  Platform  Port ID
Switch#

これを以下スクリーンショットのように「両方」に変更すると、VMware ESXiもCDPを発信している事が分かり、Cisco機器はESXiを認識するようになります。

CDPによる障害検知 02

Switch#show cdp neighbors 
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
                  S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, 
                  D - Remote, C - CVTA, M - Two-port Mac Relay 

Device ID        Local Intrfce     Holdtme    Capability  Platform  Port ID
esxi01.gokatei.go
                 Fas 0/4           172               S    VMware ES vmnic2
esxi01.gokatei.go
                 Fas 0/3           172               S    VMware ES vmnic3
Switch#

ロードバランシング

ロードバランシングアルゴリズムはデフォルト設定は「送信元ポートID」に基づいたルートです。

VSSのロードバランス設定 01

ポートIDとは各仮想スイッチのポート番号のようなもので、以下コマンドで出力される「PortNum」の値です。

最も仮想スイッチの負荷が少ないロードバランス方式でヴイエムウェア コンサルの方々はこの方式を勧める事が多い傾向が見られます。業務要件を加味すると他のロードバランス方式の方が望ましい事もありますが、コンサルの方々を説得するのは非常に骨の折れる作業です。もし、コンサルが入る案件ならば、コンサルへの説明コストも加味した上で方式を決定しましょう。

[root@esxi01:~] net-stats -l
PortNum          Type SubType SwitchName       MACAddress         ClientName
33554434            4       0 vSwitch0         18:e7:28:b6:a5:20  vmnic0
33554436            3       0 vSwitch0         18:e7:28:b6:a5:20  vmk0
33554438            5       9 vSwitch0         00:0c:29:00:95:c1  193-vcenter
33554439            5       9 vSwitch0         00:0c:29:f6:2b:d5  142-esxi
33554440            5       9 vSwitch0         00:0c:29:f6:2b:cb  142-esxi
33554441            5       9 vSwitch0         00:0c:29:f6:2b:c1  142-esxi
33554442            5       9 vSwitch0         00:0c:29:f6:2b:b7  142-esxi
33554443            5       9 vSwitch0         00:0c:29:bc:10:62  143-esxi
33554444            5       9 vSwitch0         00:0c:29:bc:10:58  143-esxi
33554445            5       9 vSwitch0         00:0c:29:bc:10:4e  143-esxi
33554446            5       9 vSwitch0         00:0c:29:bc:10:44  143-esxi
33554447            5       9 vSwitch0         00:50:56:80:9d:64  144-esxi
33554448            5       9 vSwitch0         00:50:56:80:15:35  144-esxi
83886087           11       0 DvsPortset-0     00:00:00:00:00:00  lag1
83886092            4       0 DvsPortset-0     00:0a:f7:03:14:1c  vmnic2
83886094            4       0 DvsPortset-0     00:0a:f7:03:14:1e  vmnic3
83886096            5       9 DvsPortset-0     00:50:56:b7:b6:30  013-sandbox.eth0
83886097            5       9 DvsPortset-0     00:50:56:b9:f7:77  014-sandbox.eth0

ロードバランシング 補足説明

明示的なフェイルオーバー順序を使用

ロードバランシングアルゴリズムを「明示的なフェイルオーバー順序を使用」とする場合は、どのNICがスタンバイになるかを明示指定して下さい。スタンバイとするNICを選択した状態で「スタンバイとしてマーク」を押下します。

VSSのロードバランス設定 02

vmnic3が「スタンバイ」との表示に変わった事を確認します。

VSSのロードバランス設定 03

「フェイルバック」はアクティブのvmnicが復旧した時に戻るか否かの設定です。ネットワーク機器で言う「preempt」「no preempt」相当の設定です。vmnicの切り替わりは十分高速であるので「フェイルバック」を「いいえ」にするのは過剰な冗長化のような気もしますが、フラッピングを極度に恐る宗教もありますので、政治色の強いプロジェクトでは十分警戒すべきパラメタの1つです。

VSSのロードバランス設定 04

IP ハッシュに基づいたルート

送信元IPアドレスや宛先IPアドレスに基づいたハッシュ値によって負荷分散する方式です。スイッチ側のMACアドレステーブルがフラップしないよう、スイッチ側はEtherchannelを構成する必要があります。なお、標準仮想スイッチ(VSS)はLACPをサポートしないため、スイッチ側はstatic LAGの設定しか選べません。以下に設定例を載せます。

標準仮想スイッチ(VSS)はLACPをサポートしませんが、分散仮想スイッチ(VDS)ではLACPをサポートします。

Switch(config)#interface range FastEthernet 0/3 - 4
Switch(config-if-range)#channel-group 1 mode on 
Creating a port-channel interface Port-channel 1

Switch(config-if-range)#end
Switch#
Switch#
Switch#show etherchannel summary 
Flags:  D - down        P - bundled in port-channel
        I - stand-alone s - suspended
        H - Hot-standby (LACP only)
        R - Layer3      S - Layer2
        U - in use      f - failed to allocate aggregator

        M - not in use, minimum links not met
        u - unsuitable for bundling
        w - waiting to be aggregated
        d - default port


Number of channel-groups in use: 1
Number of aggregators:           1

Group  Port-channel  Protocol    Ports
------+-------------+-----------+-----------------------------------------------
1      Po1(SU)          -        Fa0/3(P)    Fa0/4(P)    

Switch#

トラブル事例が多いのかVMware製品のみで完結しない設定であるためなのか理由は定かではありませんが、ヴイエムウェア コンサルの方々はこの設定を嫌う傾向があります。

ロードバランシングアルゴリズム まとめ

ロードバランシングアルゴリズムのメリット・デメリットは以下の公式ドキュメントにもまとめられています。

まずは公式のメリット・デメリットに沿った考え方で方式設計ができるかどうかを考えましょう。考えた結果、上記デメリット・メリットに当てはまらないプロジェクト固有の要件があると判明した場合は、それなりに説明の手間がかかります。説明コストを十分に考慮してプロジェクト推進しましょう。

以下に公式見解を転記します。

発信元の仮想ポートに基づいたルート

「発信元の仮想ポートに基づいたルート」を使用するメリットは以下の通りです。

  • 仮想 NIC の数がチームの物理 NIC の数より多い場合に、トラフィックを均等に配分できます。
  • ほとんどの場合、仮想スイッチは仮想マシンのアップリンクを 1 回のみ計算するため、リソースの消費量が少なくなります。
  • 物理スイッチに変更を加える必要がありません。

「発信元の仮想ポートに基づいたルート」を使用するデメリットは以下の通りです。

  • 仮想スイッチではアップリンク上のトラフィック負荷を認識せず、使用頻度の低いアップリンクへのトラフィックのロード バランシングが行われません。
  • 仮想マシンで使用可能なバンド幅は、仮想マシンで複数の仮想 NIC を使用しない限り、関連 ポート ID に関連付けられているアップリンクの速度までに制限されます。

発信元 MAC ハッシュに基づいたルート

「発信元 MAC ハッシュに基づいたルート」を使用するメリットは以下の通りです。

  • 仮想スイッチはパケットごとにアップリンクを計算するため、発信元の仮想ポートに基づいたルートよりも平等にトラフィックを分散できます。
  • MAC アドレスは固定されているため、仮想マシンでは同じアップリンクが使用されます。仮想マシンをパワーオンまたはパワーオフしても、仮想マシンで使用されるアップリンクは変わりません。
  • 物理スイッチに変更を加える必要がありません。

「発信元 MAC ハッシュに基づいたルート」を使用するデメリットは以下の通りです。

  • 仮想マシンで複数の発信元 MAC アドレスを使用している場合を除き、仮想マシンで使用できるバンド幅は、関連するポート ID に関連付けられているアップリンクの速度に制限されます。
  • 仮想スイッチはパケットごとにアップリンクを計算するため、発信元の仮想ポートに基づいたルートよりもリソース消費量が多くなります。
  • アップリンクの負荷が仮想スイッチで認識されないため、アップリンクが過負荷になる可能性があります。

IP ハッシュに基づいたルート

「IP ハッシュに基づいたルート」を使用するメリットは以下の通りです。

  • 仮想スイッチはパケットごとにアップリンクを計算するため、発信元の仮想ポートに基づいたルートや発信元 MAC ハッシュに基づいたルートよりも平等に負荷を分散できます。
  • 複数の IP アドレスと通信する仮想マシンのスループットが高くなる可能性があります。

「IP ハッシュに基づいたルート」を使用するデメリットは以下の通りです。

  • 他のロード バランシング アルゴリズムと比べてリソース消費量が最も高くなります。
  • 実際のアップリンクの負荷が仮想スイッチで認識されません。
  • 物理ネットワークの変更が必要です。
  • トラブルシューティングが複雑になります。
タイトルとURLをコピーしました