6.5. ボンディングデバイス
6.5.1. ボンディング方法
互換性のある複数のネットワークデバイスをボンディングしてまとめることができます。このタイプの設定を使用することで帯域幅が増加し信頼度が高まります。
ホストが使用するスイッチのポートに対して、ボンディングを有効にする必要があります。ボンディングを有効化する手順は、スイッチによって若干異なります。ボンディング有効化に関する詳しい情報は、そのスイッチのメーカーが提供しているマニュアルを参照してください。
モード 4 のボンディングの場合には、スイッチで全スレーブを正しく設定する必要があります。正しく設定されていないと、ad_partner_mac
は 00:00:00:00:00:00 となり、Manager により ネットワークインターフェース タブのボンディングに警告を表す感嘆符のアイコンが表示されます。いずれかのスレーブが稼働している場合には警告は表示されません。
ボンディングデバイスの作成には、2 とおりの方法があります。
- 特定のホストで、管理ポータルから手動で作成する。「管理ポータルを使用したボンディングデバイスの作成」を参照してください。
- 全クラスターホストのボンディングされていない NIC に対して、LLDP Labeler サービスを使用して自動で作成する。「ボンディングデバイスの自動作成」を参照してください。
6.5.2. 管理ポータルを使用したボンディングデバイスの作成
管理ポータルを使用して、複数のネットワークインターフェース、既存のボンディングデバイス、この 2 つを組み合わせたものに対してボンディングを適用することができます。ボンディングは VLAN タグ付きのトラフィックと、VLAN タグなしのトラフィックの両方を伝送することができます。
Link Layer Discovery Protocol (LLDP) 情報を提供するようにスイッチが設定されている場合、カーソルで物理ネットワークインターフェースをポイントして、スイッチポートの現在の集約設定を表示することができます。Red Hat では、ボンディングデバイスを作成する前に設定を確認することを推奨します。
手順
-
をクリックします。 - ホスト名をクリックし、詳細ビューを表示します。
- ネットワークインターフェース タブをクリックし、ホストにアタッチされた物理ネットワークインターフェースを一覧表示します。
- ホストネットワークを設定 をクリックします。
- オプションとして、カーソルでホストネットワークインターフェースをポイントして、スイッチから提供される設定情報を表示します。
一方のデバイスを選択して、他方のデバイスの上にドラッグアンドドロップすると、新規ボンディングの作成 ウィンドウが開きます。または、一方のデバイスを右クリックして、他方のデバイスをドロップダウンメニューから選択します。
デバイスに互換性がない場合には、ボンディングの操作は失敗し、互換性の問題を解決する方法を示したメッセージが表示されます。ボンディングロジックについては、「Red Hat Virtualization におけるボンディングロジック」を参照してください。
ドロップダウンメニューから ボンディング名 および ボンディングモード を選択します。
ボンディングモード 1、2、4、5 を選択することができます。その他のモードを設定するには、カスタム オプションを使用します。ボンディングモードの詳細については、「ボンディングモード」を参照してください。
- OK をクリックしてボンディングを作成し、新規ボンディングの作成 ウィンドウを閉じます。
- 新規作成したボンディングデバイスに論理ネットワークを割り当てます。
- オプションとして、ホストと Engine 間の接続を検証 および ネットワーク設定を保存、またはそのどちらかを選択することができます。
- OK をクリックします。
複数のネットワークデバイスが 1 つのボンディングデバイスにリンクされ、単一のインターフェースとして編集できるようになりました。このボンディングデバイスは、選択したホストの ネットワークインターフェース タブに表示されます。
ホストの設定が更新されている間、そのステータスが以下のように表示されます。
- ホストの ネットワークインターフェース タブの各ネットワークインターフェースの下に、更新中であることを示すアイコン が表示されます。
Networks updating のステータスが以下のように表示されます。
-
ホストの ステータス 列 (
ウィンドウ) - ホストの ステータス 列 (コンピュート > クラスター ウィンドウでクラスターを選択し、ホスト タブにアクセス)
- ホストの ネットワークデバイスのステータス 列 (ネットワーク > ネットワーク ウィンドウでネットワークを選択し、ホスト タブにアクセス)
-
ホストの ステータス 列 (
ホストが使用するスイッチのポートに対して、ボンディングを有効にする必要があります。ボンディングを有効化する手順は、スイッチによって若干異なります。ボンディング有効化に関する詳しい情報は、そのスイッチのメーカーが提供しているマニュアルを参照してください。
モード 4 のボンディングの場合には、スイッチで全スレーブを正しく設定する必要があります。スイッチで正しく設定されているスレーブが 1 つもない場合には、ad_partner_mac
は 00:00:00:00:00:00 として報告されます。Manager は ネットワークインターフェース タブのボンディングに感嘆符のアイコンで警告を表示します。いずれかのスレーブが稼働している場合には警告は表示されません。
6.5.3. ボンディングデバイスの自動作成
1 つもしくは複数のクラスターまたはデータセンター全体について、LLDP Labeler を使用してボンディングされていない NIC をボンディングするプロセスを自動化することができます。ボンディングモード 4 を使用してボンディングが作成されます。ボンディングモードの詳細については、「ボンディングモード」を参照してください。
デバイスの自動ボンディング
デフォルトでは、LLDP Labeler サービスは 1 時間毎に実行するように設定されています。このオプションは、NIC、スイッチ、ケーブル等のハードウェアを変更する場合、またはスイッチ設定を変更する場合に役立ちます。
前提条件
- インターフェースが Juniper スイッチに接続されていること
- LLDP を使用して Link Aggregation Control Protocol (LACP) に対応するように Juniper スイッチが設定されていること
手順
テキストエディターで
/etc/ovirt-lldp-labeler/conf.d/ovirt-lldp-credentials.conf
を開き、以下のように Manager のユーザー名およびパスワードを設定します。-
username
: Manager の管理者のユーザー名。デフォルトはadmin@internal
です。 -
password
: Manager の管理者のパスワード。デフォルトは123456
です。
-
テキストエディターで
etc/ovirt-lldp-labeler/conf.d/ovirt-lldp-credentials.conf
を開き、以下のように LLDP Labeler サービスを設定します。-
clusters
: サービスを実行するクラスターのコンマ区切りリスト。ワイルドカードを使用することができます。たとえば、Cluster*
と定義すると、Cluster
で始まるすべてのクラスターで LLDP Labeler が実行されます。データセンター内の全クラスターでサービスを実行するには、*
と入力します。デフォルトはDef*
です。 -
api_url
: Manager の API の完全な URL。デフォルトはhttps://ovirt-engine/ovirt-engine/api
です。 -
ca_file
: カスタム証明書ファイルへのパス。カスタム証明書を使用しない場合には、この値は空欄のままにしてください。デフォルトは空欄です。 -
auto_bonding
: LLDP Labeler のボンディング機能を有効にします。デフォルトはtrue
です。 -
auto_labeling
: LLDP Labeler のラベル機能を有効にします。デフォルトはtrue
です。
-
-
オプションとして、異なる時間間隔でサービスが実行されるように設定します。テキストエディターで
etc/ovirt-lldp-labeler/conf.d/ovirt-lldp-labeler.timer
を編集し、OnUnitActiveSec
の値を変更します。デフォルトは1h
です。 以下のコマンドを実行してサービスを有効にします。
# systemctl enable --now ovirt-lldp-labeler
オプションとして、サービスを手動で呼び出すには、以下のコマンドを実行します。
# /usr/bin/python /usr/share/ovirt-lldp-labeler/ovirt_lldp_labeler_cli.py
デバイスに互換性がない場合には、これらのルールに違反する NIC はボンディングされません。ボンディングロジックについては、「Red Hat Virtualization におけるボンディングロジック」を参照してください。
複数のネットワークデバイスが 1 つのボンディングデバイスにリンクされ、単一のインターフェースとして編集できるようになりました。このボンディングデバイスは、選択したホストの ネットワークインターフェース タブに表示されます。NIC がまだ論理ネットワークに接続されていない場合には、論理ネットワークを新たに作成したボンディングデバイスに割り当てます。詳細については、「ホストネットワークインターフェースの編集とホストへの論理ネットワークの割り当て」を参照してください。
6.5.4. Red Hat Virtualization におけるボンディングロジック
ボンディング作成には複数の異なるシナリオがあり、それぞれに独自のロジックが適用されます。
ボンディングロジックに影響を及ぼす 2 つの要素:
- いずれかのデバイスが論理ネットワークをすでに伝送しているかどうか。
- デバイスが互換性のある論理ネットワークを伝送しているかどうか。
複数の論理ネットワークが 1 つの NIC に接続されている場合、VLAN への割り当てを除外できるネットワークはどれか 1 つだけです。それ以外の論理ネットワークは、すべて固有の VLAN 用に割り当てる必要があります。
さらに、各 NIC はスイッチの同一ポートに接続する必要があります。
ボンディングシナリオ | 結果 | 方法 |
---|---|---|
NIC + NIC |
新規ボンディングの作成 ウィンドウが表示され、新規ボンディングデバイスを設定することができます。 ネットワークインターフェースが互換性のない論理ネットワークを伝送している場合には、新規ボンディングを形成するデバイスから互換性のない論理ネットワークをデタッチするまで、ボンディング操作は失敗します。 |
管理ポータルまたは LLDP Labeler |
NIC + ボンディング |
NIC がボンディングデバイスに追加されます。NIC とボンディングデバイスが伝送する各論理ネットワークに互換性がある場合には、それらの論理ネットワークはすべて、この操作で作成されるボンディングデバイスに追加されます。 ボンディングデバイスが互換性のない論理ネットワークを伝送している場合には、新規ボンディングを形成するデバイスから互換性のない論理ネットワークをデタッチするまで、ボンディング操作は失敗します。 |
管理ポータル |
ボンディング + ボンディング |
ボンディングデバイスが論理ネットワークにアタッチされていない場合、または互換性のある論理ネットワークにアタッチされている場合には、新規ボンディングデバイスが作成されます。これには、すべてのネットワークインターフェースが含まれ、ボンディングを構成するデバイスの全論理ネットワークを伝送します。新規ボンディングの作成 ウィンドウが表示され、新規ボンディングを設定することができます。 ボンディングデバイスが互換性のない論理ネットワークを伝送している場合には、新規ボンディングを形成するデバイスから互換性のない論理ネットワークをデタッチするまで、ボンディング操作は失敗します。 |
管理ポータル |
6.5.5. ボンディングモード
ボンディングとは、複数のネットワークインターフェースをソフトウェアで定義したデバイス 1 つに集約することです。ボンディングされたネットワークインターフェースは、ボンディングで含まれているネットワークインターフェースカード (NIC) の伝送機能を統合して、1 つのネットワークインターフェースとして機能するため、単一の NIC よりも伝送速度が早くなります。また、ボンディング内の NIC すべてに障害が発生しない限り、ボンディング自体には障害が発生しないため、ボンディングすることでフォールトトレランスが向上します。ただし、一点制約があり、ボンディング内のすべてのネットワークインターフェースカードが同じオプションやモードをサポートするように、ネットワークインターフェースをボンディングする NIC は、必ず同じメーカーおよびモデルでなければなりません。
ボンディングのパケット分散アルゴリズムは、使用するボンディングモードによって決定されます。
モード 1、2、3、4 は、仮想マシン (ブリッジ) および物理マシン (ブリッジなし) のネットワークタイプをサポートします。モード 0、5、6 は、物理マシン (ブリッジなし) のネットワークのみをサポートします。
Red Hat Virtualization は、デフォルトでモード 4 を使用しますが、以下にあげる一般的なボンディングモードに対応しています。
モード 0 (round-robin ポリシー)
- このモードは、ネットワークインターフェースカードを順番に使用してパケットを送信します。パケットの送信は、ボンディングで最初に利用可能なネットワークインターフェースカードから、最後に利用可能なネットワークインターフェースカードまでループで使用をくり返します。それ以降のループでもすべて、最初に利用可能なネットワークインターフェースカードから使用されます。モード 0 では、耐障害性やボンディング内の全ネットワークインターフェースカード間での負荷分散が提供されますが、ブリッジと併用できないため、仮想マシンの論理ネットワークとの互換性はありません。
モード 1 (active-backup ポリシー)
- このモードは、1 つのネットワークインターフェースカードをアクティブにし、それ以外のネットワークインターフェースカードはすべてバックアップ状態にします。アクティブなネットワークインターフェースカードで障害が発生すると、バックアップに設定されていたネットワークインターフェースカードの 1 つが、障害の発生したネットワークインターフェースカードに代わって、ボンディング内で唯一アクティブなネットワークインターフェースカードになります。新たにアクティブになったネットワークインターフェースカードの MAC アドレスを反映するためにボンディングの MAC アドレスが変更されると、混乱が生じる可能性があます。このような混乱を避ける目的で、このボンディングの MAC アドレスはネットワークアダプターポートでのみ表示されます。モード 1 は耐障害性を提供し、Red Hat Virtualization でサポートされています。
モード 2 (XOR ポリシー)
-
このモードは、送信元と送信先の MAC アドレスの
XOR
(排他的理論和) をネットワークインターフェースカード数で除算したmodulo
(剰余) の結果を使用して、パケット送信に用いるネットワークインターフェースカードを選択します。この計算により、各送信先の MAC アドレスに必ず同じネットワークインターフェースカードが選択されるようになります。モード 2 は耐障害性と負荷分散を提供し、Red Hat Virtualization でサポートされています。 モード 3 (broadcast ポリシー)
- このモードは、全パケットをすべてのネットワークインターフェースカードに送信します。モード 3 は耐障害性を提供し、Red Hat Virtualization でサポートされています。
モード 4 (dynamic link aggregation ポリシー)
- このモードは、任意の集約グループを作成し、このグループ内のインターフェースが速度およびデュプレックスの設定を共有します。モード 4 は、IEEE 802.3ad 仕様に従ってアクティブな集約グループ内のネットワークインターフェースカードをすべて使用します。このモードも、Red Hat Virtualization でサポートされています。
モード 5 (adaptive transmit load-balancing ポリシー)
- このモードは、ボンディング内の各ネットワークインターフェースカードの負荷に応じて発信トラフィックを分散し、アクティブなネットワークインターフェースカードで着信トラフィックを受信するようにします。着信トラフィックを受信するネットワークインターフェースカードに障害が発生した場合には、別のネットワークインターフェースカードが割り当てられます。モード 5 はブリッジと併用できないため、仮想マシンの論理ネットワークとの互換性はありません。
モード 6 (adaptive load-balancing ポリシー)
- このモードは、モード 5 (adaptive transmit load-balancing ポリシー) に IPv4 トラフィックの受信負荷分散を組み合わせたポリシーで、特別なスイッチ要件はありません。受信負荷の分散に ARP ネゴシエーションが使用されます。モード 6 はブリッジと併用できないため、仮想マシンの論理ネットワークとの互換性はありません。
6.5.6. ホストインターフェースのカスタムボンディングオプションの使用例
新規ボンディングの作成 ウィンドウで ボンディングモード から カスタム を選択すると、カスタマイズされたボンディングデバイスを作成することができます。以下の例は、必要に応じて適用してください。ボンディングオプションとその説明をまとめた包括的なリストは、Kernel.org の『Linux Ethernet Bonding Driver HOWTO』を参照してください。
例6.1 xmit_hash_policy
このオプションは、ボンディングモード 2 および 4 の送信負荷分散ポリシーを定義します。たとえば、多数の異なる IP アドレス間のトラフィックが大半の場合には、IP アドレス別に負荷分散するようにポリシーを設定することができます。この負荷分散ポリシーを設定するには、カスタム ボンディングモードを選択して、テキストフィールドに以下の値を入力します。
mode=4 xmit_hash_policy=layer2+3
例6.2 ARP モニタリング
ARP モニターは、ethtool を介して適切にリンク状態を報告できない、もしくは報告しないシステムに有用です。ホストのボンディングデバイスに arp_interval
を設定するには、カスタム ボンディングモードを選択して、テキストフィールドに以下の値を入力します。
mode=1 arp_interval=1 arp_ip_target=192.168.0.2
例6.3 プライマリー
ボンディングデバイス内のプライマリーインターフェースとして、特定の NIC により高いスループットを指定する必要がある場合があります。プライマリーとなる NIC を指定するには、カスタム ボンディングモードを選択して、テキストフィールドに以下の値を入力します。
mode=1 primary=eth0