10.8.4. ネットワークインターフェイスボンディング
複数の物理 NIC をバンドルして、単一の論理チャネルを形成することができます。この設定はボンディングとも呼ばれます。ボンディングを設定して、高可用性システム用の冗長性またはスループットの向上を実現することができます。
Red Hat OpenStack Platform では、Open vSwitch (OVS) カーネルボンディング、OVS-DPDK ボンディング、および Linux カーネルボンディングがサポートされます。
| ボンディング種別 | 種別の値 | 許可されるブリッジ種別 | 許可されるメンバー |
|---|---|---|---|
| OVS カーネルボンディング |
|
|
|
| OVS-DPDK ボンディング |
|
|
|
| Linux カーネルボンディング |
|
|
|
ovs_bridge と ovs_user_bridge を同じノード上で組み合わせないでください。
ovs_bondOpen vSwitch (OVS) で、複数の
interfacesを結合するボンディングを定義します。これにより、冗長性や帯域幅が向上します。Expand 表10.7 ovs_bond オプション オプション デフォルト 説明 name
ボンディング名
use_dhcp
False
DHCP を使用して IP アドレスを取得します。
use_dhcpv6
False
DHCP を使用して v6 の IP アドレスを取得します。
addresses
ボンディングに割り当てられる IP アドレスのリスト
routes
ボンディングに割り当てられるルートのリスト。詳細は、「routes」 を参照してください。
mtu
1500
接続の最大伝送単位 (MTU: Maximum Transmission Unit)
primary
False
プライマリーインターフェイスとしてインターフェイスを定義します。
members
ボンディングで使用するインターフェイスオブジェクトのリスト
ovs_options
ボンディング作成時に OVS に渡すオプションのセット詳細は、表10.8「OVS ボンディングの
ovs_optionsパラメーター」 を参照してください。ovs_extra
ボンディングのネットワーク設定ファイルで OVS_EXTRA パラメーターとして設定するオプションのセット
defroute
True
DHCP サービスにより提供されるデフォルトのルートを使用します。
use_dhcpまたはuse_dhcpv6を選択した場合に限り有効です。persist_mapping
False
システム名の代わりにデバイスのエイリアス設定を記述します。
dhclient_args
None
DHCP クライアントに渡す引数
dns_servers
None
ボンディングに使用する DNS サーバーのリスト
Expand 表10.8 OVS ボンディングの ovs_options パラメーター ovs_option説明 bond_mode=balance-slb送信元負荷分散 (slb) は、送信元 MAC アドレスと出力 VLAN に基づいてフローのバランスを取り、トラフィックパターンの変化に応じて定期的に再調整します。
balance-slbボンディングオプションを使用して結合を設定する場合は、リモートスイッチで必要な設定はありません。Networking サービス (neutron) は、ソース MAC と VLAN の各ペアをリンクに割り当て、その MAC と VLAN からのすべてのパケットをそのリンクを介して送信します。トラフィックパターンの変化に応じて定期的にリバランスを行う、送信元 MAC アドレスと VLAN の番号に基づいた簡単なハッシュアルゴリズム。balance-slbモードは、Linux ボンディングドライバーで使用されるモード 2 ボンドに似ています。このモードを使用すると、スイッチが LACP を使用するように設定されていない場合でも、負荷分散機能を有効にすることができます。bond_mode=active-backupactive-backupボンドモードを使用してボンドを設定すると、Networking サービスは 1 つの NIC をスタンバイ状態に保ちます。アクティブな接続に障害が発生すると、スタンバイ NIC がネットワーク操作を再開します。物理スイッチに提示される MAC アドレスは 1 つのみです。このモードはスイッチ設定を必要とせず、リンクが別のスイッチに接続されている場合に機能します。このモードは、負荷分散機能は提供しません。lacp=[active | passive | off]Link Aggregation Control Protocol (LACP) の動作を制御します。LACP をサポートしているのは特定のスイッチのみです。お使いのスイッチが LACP に対応していない場合には
bond_mode=balance-slbまたはbond_mode=active-backupを使用してください。other-config:lacp-fallback-ab=trueLACP が失敗した場合は、ボンドモードとしてアクティブバックアップを設定します。
other_config:lacp-time=[fast | slow]LACP のハートビートを 1 秒 (高速) または 30 秒 (低速) に設定します。デフォルトは低速です。
other_config:bond-detect-mode=[miimon | carrier]リンク検出に miimon ハートビート (miimon) またはモニターキャリア (carrier) を設定します。デフォルトは carrier です。
other_config:bond-miimon-interval=100miimon を使用する場合には、ハートビートの間隔をミリ秒単位で設定します。
bond_updelay=1000フラッピングを防止するためにリンクがアクティブになっている必要がある間隔 (ミリ秒) を設定します。
other_config:bond-rebalance-interval=10000ボンドメンバー間でフローがリバランスする間隔 (ミリ秒) を設定します。この値をゼロに設定すると、ボンドメンバー間のフローのリバランスが無効になります。
- 例 - OVS ボンディング
... edpm_network_config_template: | --- {% set mtu_list = [ctlplane_mtu] %} {% for network in nodeset_networks %} {{ mtu_list.append(lookup(vars, networks_lower[network] ~ _mtu)) }} {%- endfor %} {% set min_viable_mtu = mtu_list | max %} network_config: ... members: - type: ovs_bond name: bond1 mtu: {{ min_viable_mtu }} ovs_options: {{ bond_interface_ovs_options }} members: - type: interface name: nic2 mtu: {{ min_viable_mtu }} primary: true - type: interface name: nic3 mtu: {{ min_viable_mtu }}- 例 - OVS DPDK ボンディング
この例では、OVS ユーザースペースブリッジの一部としてボンディングが作成されます。
edpm_network_config_template: | --- {% set mtu_list = [ctlplane_mtu] %} {% for network in nodeset_networks %} {{ mtu_list.append(lookup(vars, networks_lower[network] ~ _mtu)) }} {%- endfor %} {% set min_viable_mtu = mtu_list | max %} network_config: ... members: - type: ovs_user_bridge name: br-dpdk0 members: - type: ovs_dpdk_bond name: dpdkbond0 rx_queue: {{ num_dpdk_interface_rx_queues }} members: - type: ovs_dpdk_port name: dpdk0 members: - type: interface name: nic4 - type: ovs_dpdk_port name: dpdk1 members: - type: interface name: nic5