RHEL/CentOS 7 でネットワーク ボンディングまたはチーミングをセットアップおよび構成する方法 - パート 11
システム管理者が利用可能な帯域幅を増やし、データ転送の冗長性と負荷分散を提供したい場合、 ネットワークボンディングと呼ばれるカーネル機能を使用すると、コスト効率の高い方法でジョブを実行できます。
Linux で帯域幅スロットルを増やす方法またはスロットルを増やす方法について詳しく読む
Trickle を使用して Linux でアプリケーションが使用するネットワーク帯域幅を制限する方法http://t.co/It2ccJeAih
@tecmint経由 pic.twitter.com/nzKwF3ec2O— TecMint.com (@tecmint) 2015 年 9 月 17 日
簡単に言うと、ボンディングとは、2 つ以上の物理ネットワーク インターフェイス (スレーブと呼ばれます) を 1 つの論理ネットワーク インターフェイス (マスターと呼ばれます) に集約することを意味します。特定の NIC (ネットワーク インターフェイス カード) に問題が発生した場合でも、他の NIC (ネットワーク インターフェイス カード) がアクティブである限り、通信には大きな影響はありません。
Linux システムにおけるネットワーク ボンディングの詳細については、こちらをご覧ください。
- RHEL/CentOS 6/5 のネットワーク チーミングまたは NiC Bondin
- Debian ベースのシステムでのネットワーク NIC ボンディングまたはチーミング
- Ubuntu でネットワーク ボンディングまたはチーミングを構成する方法
ネットワークボンディングまたはチーミングの有効化と構成
デフォルトでは、ボンディング カーネル モジュールは有効になっていません。したがって、それをロードし、起動後も永続的であることを確認する必要があります。 --first-time
オプションとともに使用すると、モジュールのロードが失敗した場合に modprobe が警告を発します。
modprobe --first-time bonding
上記のコマンドは、現在のセッションのボンディング モジュールをロードします。永続性を確保するには、/etc/modules-load.d
内に /etc/modules-load などのわかりやすい名前の
:.conf
ファイルを作成します。 .d/bonding.conf
echo "# Load the bonding kernel module at boot" > /etc/modules-load.d/bonding.conf
echo "bonding" >> /etc/modules-load.d/bonding.conf
ここでサーバーを再起動し、 再起動したら、 ボンディング モジュールが自動的にロードされていることを確認します (図 2)。 1:
この記事では、3 つのインターフェイス (enp0s3
、enp0s8
、および enp0s9
) を使用して、便宜的に bond0
という名前の結合を作成します。。
bond0
を作成するには、NetworkManager を制御するためのテキスト インターフェイスである nmtui を使用できます。コマンドラインから引数なしで nmtui を呼び出すと、既存の接続の編集、接続のアクティブ化、またはシステムのホスト名の設定を行うことができるテキスト インターフェイスが表示されます。
図 に示すように、[接続の編集] –> [追加] –> [ボンド] を選択します。 2:
[接続の編集] 画面で、スレーブ インターフェイス (この例では enp0s3
、enp0s8
、および enp0s9
) を追加します。わかりやすい (プロファイル) 名を付けます (たとえば、それぞれ NIC #1
、NIC #2
、NIC #3
)。
さらに、ボンドの名前とデバイス (図 3 のそれぞれ TecmintBond
と bond0
)、および bond0
の IP アドレスを設定する必要があります。 に、ゲートウェイ アドレスと DNS サーバーの IP を入力します。
各インターフェースの MAC アドレスは nmtui が自動的に入力するため、入力する必要がないことに注意してください。他の設定はすべてデフォルトのままにすることができます。詳細については、図 3 を参照してください。
完了したら、画面の下部に移動して [OK] を選択します (図 4 を参照)。
これで完了です。これで、テキスト インターフェイスを終了してコマンド ラインに戻り、ip コマンドを使用して新しく作成したインターフェイスを有効にすることができます。
ip link set dev bond0 up
その後、図 5 に示すように、bond0
が稼働し、192.168.0.200 が割り当てられていることがわかります。
ip addr show bond0
Linux でのネットワーク ボンディングまたはチーミングのテスト
bond0
が実際に機能することを確認するには、別のマシンからその IP アドレスに ping を実行するか、さらに良い方法として、カーネル インターフェイス テーブルをリアルタイムで監視することができます (秒単位のリフレッシュ時間は、 -n
オプション) を使用して、図 6 に示すように、ネットワーク トラフィックが 3 つのネットワーク インターフェイス間でどのように分散されるかを確認します。
-d
オプションは、変更が発生したときに変更を強調表示するために使用されます。
watch -d -n1 netstat -i
いくつかの結合モードがあり、それぞれに特徴があることに注意することが重要です。これらについては、『Red Hat Enterprise Linux 7 ネットワーク管理ガイド』のセクション 4.5 に記載されています。ニーズに応じて、どちらかを選択します。
現在の設定ではラウンドロビン モード (図 3 を参照) を選択しました。これにより、パケットは最初のスレーブから順番に送信され、最後のスレーブで終了し、最初のスレーブで送信されます。もう一度最初に。
ラウンドロビンの代替手段は mode 0
とも呼ばれ、負荷分散とフォールト トレランスを提供します。ボンディング モードを変更するには、前に説明したようにnmtui を使用できます (図 7 も参照)。
これをアクティブ バックアップに変更すると、特定の時点で唯一のアクティブ インターフェイスとなるスレーブを選択するよう求められます。そのようなカードに障害が発生すると、残りのスレーブの 1 つが代わりにアクティブになります。
enp0s3
をプライマリ スレーブとして選択し、bond0
を停止してから再度起動し、ネットワークを再起動して、カーネル インターフェイス テーブルを表示しましょう (図 8 を参照)。
データ転送 (TX-OK および RX-OK) が enp0s3
のみを介して行われるようになったことに注目してください。
ip link set dev bond0 down
ip link set dev bond0 up
systemctl restart network
あるいは、カーネルが認識するように結合を表示することもできます (図 9 を参照)。
cat /proc/net/bonding/bond0
まとめ
この章では、Red Hat Enterprise Linux 7 でボンディングをセットアップおよび構成する方法について説明しました (CentOS 7 および Fedora 22 以降でも機能します) ) データ転送の負荷分散と冗長性とともに帯域幅を増やすため。
時間をかけて他のボンディング モードを探索すると、この認定トピックに関連する概念と実践を習得できるようになります。
この記事についてご質問がある場合、またはコミュニティの他のメンバーと共有する提案がある場合は、以下のコメント フォームを使用してお気軽にお知らせください。