GNU/Linux >> Linux の 問題 >  >> Linux

Linux でのイーサネット ボンディングの基本

はじめに

Linux 結合ドライバーは、複数のネットワーク インターフェイスを 1 つの論理的な「結合された」インターフェイスに集約する方法を提供します。結合されたインターフェイスの動作は、モードによって異なります。一般的に言えば、モードはホット スタンバイ サービスまたは負荷分散サービスのいずれかを提供します。さらに、リンクの完全性監視が実行される場合があります。

ボンディング ドライバーの最新バージョンは、http://kernel.org にある最新バージョンの Linux カーネルにあります。最新バージョンと完全なドキュメントは、最新のカーネル ソース (Documentation/networking/bonding.txt という名前) か、bonding sourceforge サイト http://www.sourceforge.net/projects/bonding

にあります。

構成

Enterprise Linux では、ethX デバイスが IP アドレスで構成されていない限り、システムはネットワーク アダプター ドライバーを自動的にロードしません。この制約のため、ユーザーは、bondX リンクのメンバーとなるすべての物理アダプターに対してネットワーク スクリプト ファイルを手動で構成する必要があります。ネットワーク スクリプト ファイルは次のディレクトリにあります:

/etc/sysconfig/network-scripts

ファイル名の前に「ifcfg-eth」を付ける必要があります 」の末尾に、アダプターの物理アダプター番号が付きます。たとえば、eth0 のスクリプト /etc/sysconfig/network-scripts/ifcfg-eth0 という名前になります .次のテキストをファイルに配置します:

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none

DEVICE=」 」行は ethX デバイスごとに異なり、ファイルの名前に対応している必要があります。つまり、ifcfg-eth1 には「DEVICE=eth1」のデバイス行が必要です。 「MASTER=」の設定 」行は、ボンドに選択された最終的なボンディング インターフェイス名にも依存します。他のネットワーク デバイスと同様に、これらは通常 0 から始まり、デバイスごとに 1 ずつ増加します。つまり、最初のボンディング インスタンスは bond0、2 番目は bond1 などです。

次に、結合ネットワーク スクリプトを作成します。このスクリプトのファイル名は /etc/sysconfig/network-scripts/ifcfg-bondX になります ここで X 債券の番号です。 bond0 の場合、ファイルの名前は「ifcfg-bond0」、bond1 の場合は「ifcfg-bond1」というようになります。そのファイル内に、次のテキストを配置します:

# vi /etc/sysconfig/network-scripts/ifcfg-bondX
DEVICE=bond0
IPADDR=192.168.1.1
NETMASK=255.255.255.0
NETWORK=192.168.1.0
BROADCAST=192.168.1.255
ONBOOT=yes
BOOTPROTO=none
USERCTL=no

ネットワーク構成に合わせて、ネットワーク固有の行 (IPADDR、NETMASK、NETWORK、および BROADCAST) を必ず変更してください。

最後に、/etc/modules.conf を編集する必要があります。 bond0 インターフェースが立ち上がったときに、bonding モジュールに必要なオプションをロードします。 /etc/modules.conf (または modprobe.conf の次の行 ) は、bonding モジュールをロードし、そのオプションを選択します:

# vi /etc/modprobe.conf
alias bond0 bonding
options bond0 mode=balance-alb miimon=100
CentOS/RHEL 5 の場合 結合モードは、ファイル /etc/modprobe.conf ではなく、ファイル /etc/sysconfig/network-scripts/ifconfig-bond0 で設定されます。

CentOS/RHEL 6 の場合 、ディレクトリ /etc/modprobe.d/ に /etc/modprobe.d/bonding.conf という名前の新しいファイルを作成し、内容は「alias bond0 bond」です。また、/etc/modprobe.d/bonding.conf ではなく、ファイル /etc/sysconfig/network-scripts/ifconfig-bond0 でボンディング モードを設定します。

/etc/sysconfig/network-scripts/ifcfg-bond0 ファイルのサンプル パラメータを、構成に適した一連のオプションに置き換えます。最後に、「/etc/rc.d/init.d/network restart」または「service network restart」を root として実行します。これにより、ネットワーク サブシステムが再起動され、結合リンクが稼働しているはずです。

結合構成の照会

各ボンディング デバイスには、/proc/net/bonding にある読み取り専用ファイルがあります。 ディレクトリ。ファイルの内容には、ボンディング構成、オプション、および各スレーブの状態に関する情報が含まれます。

たとえば、ドライバーが mode=0 および miimon=1000 のパラメーターでロードされた後の /proc/net/bonding/bond0 の内容は、一般的に次のようになります。

# cat /proc/net/bonding
Ethernet Channel Bonding Driver: 2.6.1 (October 29, 2004)
Bonding Mode: load balancing (round-robin)
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 1000
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth1
MII Status: up
Link Failure Count: 1

Slave Interface: eth0
MII Status: up
Link Failure Count: 1

正確な形式と内容は、結合構成、状態、および結合ドライバーのバージョンによって異なります。

高可用性のためのボンディングの構成

ハイ アベイラビリティとは、ホストと他の世界との間に冗長またはバックアップ デバイス、リンク、またはスイッチを配置することにより、最大のネットワーク アベイラビリティを提供する構成を指します。目標は、ネットワーク接続の可用性を最大限に高めること (つまり、ネットワークが常に機能すること) ですが、他の構成でより高いスループットを実現することもできます。

単一スイッチ トポロジでの高可用性

2 つのホスト (またはホストと 1 つのスイッチ) が複数の物理リンクを介して直接接続されている場合、最大帯域幅を最適化しても可用性が低下することはありません。この場合、スイッチ (またはピア) は 1 つしかないため、障害が発生した場合、フェイルオーバー先の代替アクセスはありません。さらに、結合負荷分散モードはメンバーのリンク監視をサポートしているため、個々のリンクに障害が発生した場合、残りのデバイス間で負荷が再調整されます。

結合モード

複数のスイッチ トポロジ (以下を参照) 用のアクティブ バックアップ (1) およびブロードキャスト (3) モードとは別に、単一のスイッチ トポロジには次のモードを使用できます。

  • バランス-rr(0) :ラウンド ロビン ポリシー:使用可能な最初のスレーブから最後のスレーブまで順番にパケットを送信します。このモードは、ロード バランシングとフォールト トレランスを提供します。これがデフォルトのモードです。そのため、/etc/modprobe.conf にモードが指定されていない場合、ボンディング ドライバーは balance-rr モードで動作します。ただし、上記のように /etc/modprobe.conf でモードを指定することをお勧めします。
  • balance-xor(2) :XOR ポリシー:選択した送信ハッシュ ポリシーに基づいて送信します。これは、XOR 演算を使用した MAC アドレスのハッシュ関数に基づいています。このモードは、負荷分散とフォールト トレランスを提供します。
  • 802.3ad (4) :IEEE 802.3ad ダイナミック リンク アグリゲーション。同じ速度とデュプレックス設定を共有するアグリゲーション グループを作成します。 802.3ad 仕様に従って、アクティブ アグリゲーター内のすべてのスレーブを利用します。前提条件:
    • 各スレーブの速度とデュプレックスを取得するためのベース ドライバでの ethtool のサポート
    • IEEE 802.3ad ダイナミック リンク アグリゲーションをサポートするスイッチ
    • ほとんどのスイッチでは、802.3ad モードを有効にするために何らかの構成が必要です。
  • balance-tlb(5) :アダプティブ送信ロード バランシング:特別なスイッチ サポートを必要としないチャネル ボンディング。発信トラフィックは、各スレーブの現在の負荷 (速度に関連して計算) に従って分散されます。着信トラフィックは現在のスレーブによって受信されます。受信側スレーブに障害が発生した場合、別のスレーブが障害が発生した受信側スレーブの MAC アドレスを引き継ぎます。前提条件:
    • 各スレーブの速度を取得するためのベース ドライバーでの ethtool のサポート
  • balance-alb(6) :アダプティブ ロード バランシング:Balance-tlb と IPV4 トラフィック用の受信ロード バランシング (rlb) が含まれており、特別なスイッチ サポートは必要ありません。サーバーによって作成された接続からの受信トラフィックもバランスが取れています。リンクが再接続されるか、新しいスレーブがボンドに参加すると、受信トラフィックはボンド内のすべてのアクティブなスレーブに再分配されます。前提条件:
    • 各スレーブの速度を取得するためのベース ドライバーでの ethtool のサポート
    • 開いているデバイスのハードウェア アドレスを設定するためのベース ドライバ サポート

複数スイッチ トポロジでの高可用性

複数のスイッチを使用すると、ボンディングとネットワークの構成が劇的に変化します。複数のスイッチ トポロジでは、ネットワークの可用性と使用可能な帯域幅の間にトレードオフがあります。

以下は、ネットワークの可用性を最大化するように構成されたサンプル ネットワークです:

この構成では、2 つのスイッチ間のリンク (ISL、またはスイッチ間リンク) と、外部に接続する複数のポート (各スイッチの「ポート 3」) があります。これを 3 番目のスイッチに拡張できなかったという技術的な理由はありません。

結合モード

上記の例のようなトポロジでは、アクティブ バックアップ モードとブロードキャスト モードが、可用性を最適化する際に役立つ唯一のボンディング モードです。他のモードでは、合理的に動作するために、すべてのリンクが同じピアで終了する必要があります。

  • アクティブ バックアップ (または 1) :これは、特にスイッチに ISL があり、うまく連携する場合に、一般的に推奨されるモードです。 1 つのスイッチが特にバックアップ スイッチであるようなネットワーク構成の場合 (たとえば、容量が少ない、コストが高いなど)、プライマリ オプションを使用して、優先リンクが利用可能なときに常に使用されるようにすることができます。
  • ブロードキャスト (または 3) :このモードは実際には特別な目的のモードであり、非常に特定のニーズにのみ適しています。たとえば、2 つのスイッチが接続されておらず (ISL なし)、それらの先のネットワークが完全に独立している場合です。この場合、特定の一方向トラフィックが両方の独立したネットワークに到達する必要がある場合は、ブロードキャスト モードが適している可能性があります。


Linux
  1. Linux –すべてがファイルですか?

  2. Linuxでファイルの名前を変更するにはどうすればよいですか?

  3. UNIX/Linux :アクセス制御リスト (ACL) の基本

  1. Linuxでファイルを移動する方法

  2. Linuxファイルのアクセス許可について

  3. Linuxファイルパーミッションの基本

  1. Linuxテールコマンド

  2. Linuxタッチコマンド

  3. LinuxでのCatコマンド