web-dev-qa-db-ja.com

仮想IPを提示する単一のマシン上の複数のNICの負荷分散

NFS/Samba linux RAIDサーバー(「Ubuntu14.04.5 LTS」)が1つのNICを介してすべてを提供するネットワーク設定を継承しました。その結果、1Gbネットワーク帯域幅が飽和状態になります。

残念ながら、サブネット全体が直接IPを介してこのサーバーに接続します。

現在のサーバーIPアドレスを仮想サーバーIPに再割り当てし、その仮想IPへのトラフィックを2つ以上のNIC間で負荷分散できる負荷分散ソリューションを見つけようとしています同じ(実際のNFS)サーバー内に存在します。

現在、すべての着信イーサネットケーブルを接続する従来のスイッチがあり、サーバーのNICに出力されるケーブルは1本だけです。

私がこれまでに見つけた唯一の解決策は Kemp LoadMaster LM-X ハードウェア解決策です。

LACPについても調べましたが、これが仮想IPをサポートするかどうかはわかりません。発信パケットのみを集約しているようです(または、個別のIPを持つために複数のNICが必要です)。ただし、おそらくこの用途では、発信パケットのみが負荷分散されていれば問題ありません。

より良い解決策はありますか?

1
BurningKrome

サーバーはどのような種類のLinuxを実行していますか?ネットワークチーミングが機能すると思いますか?これは、インターフェイスボンディングの更新バージョンです。チーム化を使用すると、アクティブ/アクティブ、アクティブ/バックアップ、またはラウンドロビンアーキテクチャのチームに複数のインターフェイスを参加させることができます。チームはすべて同じL2インターフェイスと見なされ、vIPはチーム(親)仮想インターフェイスに属します。チーミングにより、複数の異なる「ランナー」(別名メソッド)が可能になります。

broadcast-すべてのポートを介してパケットを送信するようにチームデバイスに指示する単純なランナー。

roundrobin-ラウンドロビン方式でパケットを送信するようにチームデバイスに指示する単純なランナー。

activebackup-リンクの変更を監視し、データ転送に使用するアクティブなポートを選択します。

(*)loadbalance-パッシブロードバランシングを実行するために、ランナーはパケット送信のポートを決定するBPFハッシュ関数のみを設定します。アクティブな負荷分散を行うために、ランナーは完全なバランスに到達しようとして、使用可能なポート間でハッシュを移動します。

lacp-802.3adLACPプロトコルを実装します。ロードバランスランナーと同じTxポート選択の可能性を使用できます。

あなたの要件から、私はロードバランスランナーが働くことができると思います。これはチーム化のための良いガイドです: https://www.rootusers.com/how-to-configure-network-teaming-in-linux/

それが役に立てば幸い

3
relevantRope