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

スポンサーリンク

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

冗長化設定まとめ

最小限設定

分散仮想スイッチ(VDS)で冗長化を実現する最小限の設定は、複数のアップリンクをNICに割り当てる事のみです。

vCenterの管理画面にて、「仮想ネットワークのアイコン」「分散仮想スイッチ」の順に選択し右クリックメニューを表示させます。その後、「ホストの追加と管理」を選択します。

VDS 冗長化の最小限設定 01

途中操作は省略しますが、アップリンクを複数の物理NICに割り当てます。もし、予算が許すならば、カード単位での障害を考慮し、冗長化するアップリンクは別のカードになるように設定すると良いでしょう(例:vmnic0とvmnic2で冗長化)。

途中操作の解説が必要な方は「分散仮想スイッチ(VDS)の基本操作01」を参照ください。

VDS 冗長化の最小限設定 02

リンク検出

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

リンク検出を設定するには、分散仮想スイッチ(VDS)を右クリックメニューで開き、「設定」「設定の編集」の順に押下します。

VDSのリンク検出 01

モードは「待機」「アドバタイズ」「両方」のいずれかを選択し、VMware ESXi自身がCDPまたはLLDPを発信するか否かを選択できます。以下スクリーンショットのようにESXiがLLDPを発信するように設定すると、ネットワーク機器がESXiを認識している事が読み取れます。

VDSのリンク検出 02

Switch#show lldp neighbors 
Capability codes:
    (R) Router, (B) Bridge, (T) Telephone, (C) DOCSIS Cable Device
    (W) WLAN Access Point, (P) Repeater, (S) Station, (O) Other

Device ID           Local Intf     Hold-time  Capability      Port ID
esxi01              Fa0/4          175        B               000a.f703.141c
esxi01              Fa0/3          175        B               000a.f703.141e

Total entries displayed: 2

Switch#

ロードバランシング

標準仮想スイッチ(VSS)はスイッチ単位でロードバランシングアルゴリズムを指定しましたが、分散仮想スイッチ(VDS)はポートグループ毎に異なるロードバランシングアルゴリズムの指定が可能です。ロードバランシングアルゴリズムを指定するには、ポートグループを右クリックメニューで開き、「設定の編集」を押下します。

VDS デフォルトのロードバランシング設定 01

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

VDS デフォルトのロードバランシング設定 02

ポート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

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

分散仮想スイッチ(VDS)固有のロードバランシングのみを説明します。標準仮想スイッチ(VSS)と共通の機能は「標準仮想スイッチ(VSS)の冗長化設定」を参照ください。

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

明示的なフェイルオーバーを使用する場合は、どのアップリンクが「スタンバイ」になるかを指定しましょう。

スタンバイとして指定したいアップリンクを選択し、「下へ移動」を押下します。

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

アップリンクが「スタンバイ アップリンク」の欄に移動した事を確認します。

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

使わないアップリンクを選択し、「下へ移動」を押下します。

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

アップリンクが「未使用のアップリンク」の欄に移動した事を確認します。

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

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

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

物理 NIC 負荷に基づいたルート

「物理 NIC 負荷に基づいたルート」は標準仮想スイッチ(VSS)ではサポートされず分散仮想スイッチ(VDS)のみで使用可能な機能です。ESXiが30秒毎に負荷を計測し使用率が75%を超えるならば、使用するアップリンクを変更します。

物理 NIC 負荷に基づいたルート

LACP

「LACP」は標準仮想スイッチ(VSS)ではサポートされず分散仮想スイッチ(VDS)のみで使用可能な機能です。

トラブル事例が多いのかVMware製品のみで完結しない設定であるためなのか理由は定かではありませんが、ヴイエムウェア コンサルの方々はこの設定を嫌う傾向があります。最も均等に負荷分散されるだけでなく、リンクアップしているものの疎通不能というようなレアケース障害にも対応できるので、個人的には最もオススメしたい機能です。

LAGの作成

「仮想スイッチ」「設定」「LACP」「新規」の順に押下します。

LACPの作成 01

LACPとして必要なパラメタを選択し、「OK」を押下します。

LACPの作成 02

物理NICとの紐付け

先ほど作成したLAGの設定をESXiの物理NICと紐付けます。「仮想スイッチ」の右クリックメニューの「ホストの追加と管理」を押下します。

物理NICとの紐付け 01

「物理アダプタの管理」の画面にて、LAGを構成したいvmnicを選択した状態で「アップリンクの割り当て」を押下します。

物理NICとの紐付け 02

LAGを構成するアップリンクを選択し、「OK」を押下します。

物理NICとの紐付け 03

アップリンクが変わった事を確認します。

物理NICとの紐付け 04

「物理アダプタの管理」の画面にて、LAGを構成したいvmnicを選択した状態で「アップリンクの割り当て」を押下します。

物理NICとの紐付け 05

LAGを構成するアップリンクを選択し、「OK」を押下します。

物理NICとの紐付け 06

アップリンクが変わった事を確認します。

物理NICとの紐付け 07

チーミングポリシー

チーミングポリシーの画面でLAGのみが「アクティブ アップリンク」として構成されるように設定します。

チーミングポリシー

動作確認

ネットワーク機器側でLACPの設定をします。

Switch(config)#int range f0/3 - 4
Switch(config-if-range)#channel-group 1 mode ?
  active     Enable LACP unconditionally
  auto       Enable PAgP only if a PAgP device is detected
  desirable  Enable PAgP unconditionally
  on         Enable Etherchannel only
  passive    Enable LACP only if a LACP device is detected

Switch(config-if-range)#channel-group 1 mode on
Creating a port-channel interface Port-channel 1

Switch(config-if-range)#

LAG(etherchannel)が構成されている事を確認します。

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#

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

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

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

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

分散仮想スイッチ(VDS)固有のロードバランシングのみを説明します。標準仮想スイッチ(VSS)と共通の機能は「標準仮想スイッチ(VSS)の冗長化設定」を参照ください。

物理 NIC 負荷に基づいたルート

「物理 NIC 負荷に基づいたルート」を使用するメリットは以下の通りです。

  • Distributed Switch が仮想マシンのアップリンクの負荷を計算するのは 1 度のみで、アップリンクの確認の影響は最小限であるため、リソース使用量が低く抑えられます。
  • Distributed Switch がアップリンクの負荷を認識し、必要に応じて負荷を軽減するための処理を行います。
  • 物理スイッチに変更を加える必要がありません。

「物理 NIC 負荷に基づいたルート」を使用するデメリットは以下の通りです。

  • 仮想マシンで使用できるバンド幅が、Distributed Switch に接続されたアップリンクによる制限を受けます。
タイトルとURLをコピーしました