LBFO (Load Balancing and Failover:負荷分散とフェールオーバー) をクラスター環境で使う場合の注意事項について

こんにちは。Windows プラットフォーム サポートの加藤です。
本日は、最近お問い合わせのあった LBFO (Load Balancing and Failover:負荷分散とフェールオーバー) をクラスター環境で使う場合の注意事項についてご紹介します。

<現象>
LBFO とは Windows Server 2012 から新しく実装された NIC のチーミング機能ですが、クラスター環境で、本機能を Active - Standby モードで設定していると、ハートビート通信の unreachable や場合によってはフェールオーバーが発生する可能性がございます。

<原因>
LBFO を Active - Standby モードで使用している場合、Active 側の NIC がリンクダウンし、全ての Active NIC が無くなると LBFO から上位のドライバーにメディアの切断が通知される仕様のため、この問題が発生します。
Active 側の NIC がリンクダウンした場合、以下のように状態が瞬時に遷移します。

(1) 1 つの Active NIC がダウンします。
(2) チーミングで Active NIC が存在しなくなるため、メディアの切断が上位ドライバ (netft.sys など) に通知されます。
(3) Standby NIC が Active に変化します。
(4) メディアの接続が上位ドライバーに通知されます。

クラスターでは、(2) でメディアの切断が通知されると、当該 NIC を使用して、他のノードとハートビート通信できなくなると判断され、直ちに unreachable となります。
(ハートビートのダウンのしきい値まで待つことなく直ちに unreachable となります。)
そのため、すべてのクラスター ネットワークでこの事象が発生するとすべてのノード間通信のルートが失われるため、リグループ処理が発生し、何れかのノードのクラスター サービスが停止します。
また、IP アドレス リソースを所有しているノードのパブリックネットワークでこの事象が発生すると、IP アドレス リソースが障害となりフェールオーバーが発生します。

<対処策>

この現象を回避するためには、クラスター環境で LBFO を使用する際、チーム内に Active モードの NIC を複数構成し、Active モードの NIC が同時にすべて失われないように構成を見直すことを検討してください。
(3 枚以上の NIC で Active 2 枚以上のチームを構成する、もしくは、2 枚の NIC で Active - Active の構成とする)
なお、Windows Server 2012 R2 にてチーム内に Active モードの NIC が複数構成されている場合には、以下の技術情報で公開されている問題が発生する可能性があります。そのため、チーム内に Active モードの NIC が複数存在する場合には、以下の技術情報で公開されている修正の適用も併せて実施をお願いします。

LBFO Dynamic Teaming mode may drop packets in Windows Server 2012 R2
https://support.microsoft.com/en-us/kb/3137691

本 Blog が少しでも皆様のお役に立てれば幸いです。