Tumblrはじめにとある環境の話。internalのLinuxサーバでbonding(ボンディング)を組んでいました。802.3ad(LACP)準拠のリンクアグリケーションなモードです。ちなみに、bondingとは・・・ちなみに、"bonding"とは、ネットワークインターフェースを冗長化(または負荷分散)する方法で、複数のNICを束ねて1本に見せることができます。チーミング(teaming)と呼ばれたりもしますね。Linuxではbondingにもいくつかモードがあって、複数のポリシーの中から選択することができます。耐障害性とロードバランシングのためラウンドロビンポリシーを設定します。インターフェースからそれぞれのボンディングされたスレーブインターフェースで送受信が順次行われます。耐障害性のためアクティブなバックアップポリシーを設定します。ボンディングされたスレーブインターフェースにより送受信が行われます。別のボンディングされたスレーブインターフェースは、アクティブなボンディングされたスレーブインターフェースが失敗した場合にのみ使用されます。ポリシーを設定します。アドレスが一致します。インターフェースから送信が順次行われます。耐障害性のためブロードキャストポリシーを設定します。全ての送信は、全てのスレーブインターフェースで行われます。動的リンクアグリゲーションのポリシーを設定します。同一の速度とデュプレックス設定を共有するアグリゲーショングループを作成します。アクティブなアグリゲーターの全てのスレーブで送受信を行います。対応するスイッチが必要です。ポリシーを設定します。発信トラフィックは、各スレーブインターフェースの現在の負荷に従って分散されます。受信トラフィックは、現在のスレーブにより受信されます。アドレスを引き継ぎます。ポリシーを設定します。トラフィック用の送受信ロードバランシングが含まれます。ネゴシエーションにより、受信ロードバランシングが可能です。Portalはい、ここまでがおさらい。スタイルとなるので、これまでも多少偏っているサーバはそれなりに見てきました。駄菓子菓子!今回は違ったのです。偏り方のレベルが・・・!!まずはグラフを見てください以下は、そのサーバのeth0とeth1のトラフィックのグラフです。eth0のグラフ(before)eth1のグラフ(before)トラフィックの偏りがパないwここまで、くっきり偏ったのは初めて見たので、さすがに驚きました。使用してハッシュを生成します。2となっているわけですね。いうわけで、主な送信元のMACアドレスを調べてみます。(とあるサーバ)のMACアドレスとの排他的論理和(XOR)が、ほっとんど"偽"という結果にwwというわけで、トラフィックがNICによって偏ってしまうのは当然の結果であったわけです。調べていくと送信ハッシュポリシーは"layer2"、"layer3+4"、"layer2+3"の3種類から選択できることがわかります。いうことで、今回は"layer2+3"に送信ハッシュポリシーを変更してみました。プロトコル情報の組み合わせを使用して、ハッシュを生成します。使用して、ハッシュを生成します。Portal設定は、"/etc/modprobe.conf"に以下のような感じで記載して、(念のため)リブートしました。xmit_hash_policy=layer2+3すると、こうなりました!以下が、上記設定後の各ネットワークインターフェースでのトラフィックのグラフです。見辛いですが、eth0とeth1のトラフィックが奇麗に分散できていることがわかります。eth0のグラフ(after)eth1のグラフ(after)おわりにbondingの設定パラメータは、たくさんの種類があるので、しっかり読んでおいた方がよいですね。ちなみに、(ここまでも紹介してきましたが)以下のRedHatさんのドキュメントが結構詳しいです。このエントリは、はてなグループ終了に伴う、サブブログから...2012-06-29複数のbondingインターフェースごとにmode等の設定を分けたいとき若者が苦しんでいたので、ちょっと調べてみた。読者になる@namikawaをフォローメールアドレス執筆・講演依頼や、その他ご連絡は、以下のメールアドレスまでお願いします。お問い合わせスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。