チーミングとは
チーミングとは複数の物理 NIC を1つに束ねる技術を指します。Windows では「LBFO (Load Balancing and FailOver:負荷分散とフェールオーバー)」と言ったりします。
ボンディング
ボンディングという言葉があります。これは厳密には Linux のカーネルモジュールである bonding を指します。できることはチーミングとほぼ同じです。なのでボンディングとチーミングは同じような意味で使われますが、チーミングの方がより広義な(広範な)表現のようです。
ちなみに、Redhat Enterprise Linux 7 からはボンディングだけではなくチーミングも実装されています。bonding はカーネルモジュールにすべての機能が実装されており、拡張が困難という問題点があるようです。team を使った方がいいかもしれませんね。
チーミングには「フォールトトレランス」、「ロードバランシング」、「リンクアグリゲーション」の3種類があります。
Windows はOSレベルでチーミングを実現
チーミングの機能は,ネットワークドライバーのレベルでは昔から提供されていましたが,これでは汎用性がなく,異なるメーカーのイーサネットアダプターを束ねて使うといったことができません。また,Windows Server 2008 R2 SP1 以前では,ドライバーのレベルでチーミングを行っていたため,イーサネットアダプターのメーカーごとに注意事項がありました。 しかし Windows Server 2012 以降では,OS レベルでネットワークのチーミングを行うことで,メーカー間のバラつきをなくし,安定したチーミングを実現します。さらに,OS レベル でのチーミングをサポートすることで,仮想マシン内のゲスト OS からもチーミングを行うことが可能になりました。
Microsoft Windows Server 2012 R2 Hyper-V仮想化技術活用ガイド より引用
Microsoft Windows Server 2012 R2 Hyper-V改訂新版
posted with ヨメレバ遠山藤乃 技術評論社 2014年07月
フォールトトレランス
フォールトトレランスは1本をアクティブ(稼働系)、もう1本をスタンバイ(待機系)として使用する形態です。アクティブリンクがダウンした場合、スタンバイ側の NIC が自動的にアクティブリンクに切り替わります。
Windows で設定する場合はチーミングモードが「スイッチに依存しない」の場合だけ待機系を設定できます。よって以下の3パターンになります。
リンクアグリゲーション
複数の物理 NIC を論理的に1本のリンクにする形態です。完全な負荷分散と同時に障害時の縮退運用も可能。
この形態の場合、サーバ接続先のスイッチでもリンクアグリゲーションの設定が必要です(チーミングモードが “LACP” の場合は LACPの設定も必要)。
また、スイッチをまたいでリンクアグリゲーションの設定はできないため、チーミングを構成するサーバの NIC は1台のスイッチに接続されることになります。当然ここは SPOF となり得るため、スイッチをスタック(アライドで言うバーチャルシャーシスタック)構成にしたうえで配線をわけたりします。
Windows で設定する場合は以下の6パターンになります。
「静的チーミング」と「LACP」の違いについて
静的チーミングは別名「静的リンクアグリゲーション」と言います。LACPは別名「動的リンクアグリゲーション」と呼ばれます。
これらの違いは対向のスイッチをどのような設定にするかです。静的チーミングの場合、対向スイッチの設定はただのリンクアグリゲーショングループでいいですが、LACP はプロトコルとして LACP を動作させる必要があります。
LAG について
リンクアグリゲーションはよく LAG と表現されます。これは「リンクアグリゲーション」と表記されることもあれば、リンクアグリゲーショングループと表記されることもあります。つまりリンクアグリゲーション=リンクアグリゲーショングループと思って結構です。複数の NIC を仮想的に1本のリンクにする技術をリンクアグリゲーション(グループ)と言います。
リンクアグリゲーションと LACP の違いについて
参考サイト:リンクアグリゲーションやLACPとは何ですか?利用方法も教えてください | NETGEAR
リンクアグリゲーションと LACP の関係は下図のようになります。
つまり LACP を利用するリンクアグリゲーションは、ただのリンクアグリゲーショングループの上位互換ということになります。言い換えればただのリンクアグリゲーションではできないことを LACP というプロトコルが可能にするということです。具体的に LACP が可能にすることは以下のようなことです。
- 制御パケットを定期的に送受信することにより通信可能か判断(LACP 無しの場合はリンクアップのみで判断)
- リンクアップ状態だが通信が不可能な故障も検知可能(LACP 無しの場合はリンクアップのみで判断するため検知不可能)
- 対向ポートのLAGが未構成の場合に自動構成を促すことが可能(LACP active機能)
ただし、安全策として LACP を利用しないという選択をすることはあります。対向同士が LACP に対応している場合でも、静的リンクアグリゲーションより不安定な動きをすることがあるようです(私自身は経験ありませんが、聞いた話です)。
まあ、そんな話がある以上は動作検証をしなければならないのですが、その動作検証をする時間と LACP 利用時の旨味を天秤にかけた際に前者に傾く場合がままあるということです。
Windows の話に戻ると、じゃあどんな場合に「静的チーミング」を選択するのか、ということになりますが、対向のスイッチが LACP に対応していない場合と、対向スイッチが LACP に対応しているが動作検証をするのが難儀なときです。
ロードバランシング
物理NICを束ねて冗長性を持たせるだけでなく、同時に複数の物理NICを使用してトラフィックを負荷分散を行います。
サーバ接続先のスイッチで LACP が動作していなくても負荷分散が行えるという事で便利です。リンクアグリゲーションと違い、完全にサーバ側で負荷分散(ロードバランシング)を実行します。
Windows で設定する場合は以下の3パターンになります。