質問
サーバの負荷分散技術のチーミングについて、メリットは何ですか? またどのような不可抗力が発生しますか? |
解答
いいテーマですね。 「サーバの負荷分散におけるチーミング(NICチーミング/リンクアグリゲーション)」について整理します。 1. チーミングとは 複数のNIC(ネットワークインターフェースカード)を論理的に1つのNICとして束ねる技術です。 Linux では bonding、Windows では NIC Teaming と呼ばれることもあります。 標準化された規格では IEEE 802.3ad (LACP) が有名です。 2. メリット (1) 帯域幅の向上 * 例えば 1Gbps NIC × 2枚をチーミングすれば、論理的に 最大2Gbps のスループットを実現可能。 * 特に大量のクライアントからアクセスされるサーバでは有効。 (2) 冗長化・可用性の向上 * 片方のNICやケーブルが故障しても、もう一方のNICが動作を継続。 * 単一障害点(SPOF)を減らす効果がある。 (3) 負荷分散 * パケットの送信元/宛先MACアドレスやIPアドレス、ポート番号に基づいてトラフィックを分散。 * 特に複数クライアントが同時アクセスする環境で効果的。 3. 不可抗力(発生しうる問題・制約) チーミングは万能ではなく、次のような制約やトラブルが生じる可能性があります。 (1) 帯域幅は「セッション単位」で分散 * 1つの通信セッション(例: クライアント1台が大容量ファイルをDL)では、基本的に 1本のNICしか使えない。 * 「複数セッションがあるとき」に初めて帯域が広がる。 (2) スイッチ側の対応が必要な場合 * LACPなどを使う場合、スイッチ側も設定が必要。 * スイッチが非対応なら冗長化はできても本当の負荷分散は機能しない。 (3) フェイルオーバー時の瞬断 * NIC障害時には自動的に切り替わるが、数秒の瞬断が発生することがある。 * 特にリアルタイム性が重要なアプリケーションでは影響あり。 (4) ネットワーク経路の不整合 * スイッチ間やルーティング構成が複雑な場合、パケットの順序乱れやループが発生するリスク。 * 適切なハッシュアルゴリズムを選ばないと、特定のNICに負荷が集中する。 (5) スイッチ障害には弱い場合がある * 2本のNICが同じスイッチに接続されている場合、スイッチ自体が故障すると両方ダウン。 * 本当の冗長化には「別スイッチへの接続」が望ましい。 4. まとめ * メリット: 帯域幅向上、冗長化、負荷分散 * 不可抗力や制約: セッション単位制限、スイッチ依存、瞬断、負荷の偏り、スイッチ障害への脆弱性 |
|
|
この記事へのコメント