2つのIIS7WebサーバーをNLBに結合し、同じWebサービスを公開します(同じWebサービスの2つのインスタンスをWebサーバーごとに1つ)。
前もって感謝します!
短い:NLBは気にしません。
NLBはあなたのアプリケーションについてネズミのロバを与えません。ユーザーモードの問題はsoユーザーモードです。
ネットワークスタックがNLBブロードキャスト(またはマルチキャスト!)を送受信できる限り、NLBはトラフィックを受け入れ続けます。
長い:NLB本当には気にしません。
NLBはレイヤー2NDISフィルターとして実行され、すべての着信トラフィックに対してハッシュアルゴリズムを実行し、ポートルールに一致するビットを受け入れます。
すべてのノードはすべての着信トラフィック(スイッチによるマルチキャスト/ブロードキャスト)を確認する必要があり、すべてのノードはハッシュ基準を満たさないパケットをドロップします。
NLBは、統計ロードバランサーです。思いやりのあるものではありません。
それちょうど。 しません。 ケア。
NLBのベストケースの失敗は、次の(1つ)に対するものです。
これらはいずれも、ネットワークスタックが着信パケットを処理したり、 "I'm alive!"ブロードキャストメッセージを他のNLBノードに送信したりするのを停止します。これにより、クラスターはすべての内省を取得します。少しの間(秒)、どのノードがまだ存在しているかを把握し、再収束します。
次に、残りのノードがノードの数を明確にすると、ハッシュを再開し、関心のない新しいパケットをすべてドロップします。
必要な場合
NLBはあなたのための解決策ではありません。アプリがそれで問題ない場合、またはアプリ層で問題が発生したときにNLB STOPを実行するのに十分なNLBについて知っている場合は、おそらく問題ありません。しかし、それを行うアプリはほとんどありません(ISA/TMGが思い浮かびます)。
少し前に書いたようです ここ 。
他の場所を探す低コストの(読み取り:無料)Windowsベースのソリューションを探している場合は、IIS 7 +-探しているように聞こえるヘルスモニタリング機能のほとんどを備えています。
ただし、通常はアプリケーションと同じボックスで実行することはありません。可用性を確保するために、通常はARRの下でNLBを実行して、ロードバランサーのネットワークレベルの可用性とアプリ層のスマートさを組み合わせます。レベル。
答えは、ロードバランサーがどれだけ洗練されているかによって異なります。最も簡単な設定は、ロードバランサーがラウンドロビンベースで1つのWebサーバーに別のWebサーバーに要求を送信し、pingを使用してホストが稼働しているかどうかを判断することです。
負荷分散サーバーが負荷分散プールに配置される前に合格する必要がある、より複雑なヘルスチェックを使用できます。
ヘルスチェックを実行するには、通常、Webサーバーの動作のすべての側面に依存するWebサーバー上のページを構成します。おそらく、データベースで何かを検索し、すべてが機能した場合は画面に「OK」と書き込むphpがあります。次に、このページを見て「OK」と表示されるようにロードバランサーのヘルスチェックを構成します
ヘルスチェックが失敗した場合、失敗したサーバーはプールから削除され、トラフィックはプールに送信されません。すべてのサーバーに障害が発生した場合、通常、ロードバランサーに保留ページを提供させることができます。
ここでも、ロードバランサーの洗練度に応じて、さまざまなロードバランシングメカニズムを使用できます。実際、サーバーの負荷、サーバーへの接続数に基づいて負荷分散を行うことができます。一部のサーバーに他のサーバーよりも多くの負荷を受信させることができます。「スティッキー」セッションを使用すると、同じクライアントが常に同じWebサーバーに送信されます。可能性はたくさんあります。