【Windows】Windows NLB(Network Load Balancing)ネットワーク負荷分散

今回は、Windows 付属で無料で利用できるネットワーク負荷分散ツールの Windows NLB(Network Load Balancing)の機能及び構築手順について解説します。

 

 

 

 

Windows NLB(Network Load Balancing)とは

Windows NLB とは Windows Server で無料で提供されているネットワーク負荷分散機能(ロードバランサ―)です。

 

複数のホストでクラスターを構築し、クラスタにホストを作成し、ホストは 1つの仮想 IP(VIP)を持ちます。

また、1つのクラスターは 32 のホストを作成できます。

 

クライアントは各サーバーの IP アドレスに対してアクセスするのではなく、仮想 IP(VIP)に対してアクセスをします。

 

 

 

Windows NLB のインストール

Windows NLB は簡単にインストールできます。

 

「サーバーマネージャー」を起動して左側ペインより「機能」を選択します。

 

 

 

 

「機能の追加」をクリックします。

 

 

 

 

「機能の選択」画面で「ネットワーク負荷分散」にチェックを入れて「次へ」ボタンをクリックします。

 

 

 

 

 

「インストール」ボタンをクリックします。

 

 

 

 

 

 

下図のようにインストールが正常に完了したことを確認します。

 

 

 

 

 

下図のように「ネットワーク負荷分散」が追加されていることを確認します。

 

 

 

 

Windows NLB の設計

簡単ですが、Windows NLB の設計です。

■IPアドレス

  • ノード① IPアドレス     :172.31.20.11
  • ノード② IPアドレス     :172.31.20.12
  • クラスタ IPアドレス(VIP):172.31.20.13

 

■負荷分散対象ポート

  • 0 – 65535(すべてのポート)

 

後ほど解説しますが、デフォルトでは全てのポートに対して負荷分散します。

 

 

■フィルターのモード

  • フィルターのモード : 複数ホスト
  • アフィニティ       : 単一

 

 

 

 

 

Windows NLB 構成図

以下、Windows NLB 構成図です。

 

 

 

 

【ノード①】ネットワーク負荷分散クラスターへの追加手順

Windows NLB はネットワーク負荷分散マネージャーで管理・設定します。

 

 

Windowsのスタートボタンより「ネットワーク負荷分散マネージャー」をクリックします。

 

 

 

 

 

「ネットワーク負荷分散マネージャー」が起動したら「ネットワーク負荷分散クラスター」を選択して「新しいクラスター」をクリックします。

 

 

 

 

2台あるうちのノード①の方のIPアドレス(172.31.20.11)を入力して「接続」ボタンをクリックします。

 

 

 

 

ホストでIPアドレス(172.31.20.11)が設定されているインタフェースを選択して「次へ」ボタンをクリックします。

 

 

 

 

 

「優先順位(一意なホストの識別子)」「1(デフォルト)」であることを確認し、「次へ」ボタンをクリックします。

 

 

 

 

■補足

下図のようにホストの優先順位は「32」まで設定することができます。

つまり32台までクラスターに所属させることができます。

 

 

 

 

 

「クラスターIPアドレス」画面で「追加」ボタンをクリックします。

 

 

 

 

 

「IPアドレス」「サブネットマスク」を設定して「OK」ボタンをクリックします。

 

 

 

 

「クラスターIPアドレス」の設定を確認して「次へ」ボタンをクリックします。

 

 

 

 

 

 

「クラスターパラメーター」の画面で「フルインターネット名(必要な場合は)」を設定して「クラスター操作モード」「ユニキャスト」に設定します。

設定が完了したら「次へ」ボタンをクリックします。

※フルインターネット名ですが、ここに FQDN を入力したとしても自動的に DNS サーバーに登録されて名前解決がされるわけではありません。あくまでも管理画面上分かりやすくなるだけです。DNS サーバーへの登録は別途行う必要があります。

 

 

 

 

 

「ポートの規則」画面で「編集」ボタンをクリックします。

 

 

 

 

 

必要な場合は以下の設定をします。

  • プロトコル : 両方
  • フィルターのモード : 複数ホスト、単一

設定が終わったら「OK」ボタンをクリックします。

 

 

 

 

 

設定が完了したら「完了」ボタンをクリックします。

 

 

 

 

 

下図のようにクラスターにホストが追加されていることを確認します。

 

 

 

 

 

 

【ノード①】ネットワークアダプターに NLB 用クラスター IP を追加されていることを確認する(追加されていなかったら追加する)

次にノード①でネットワークアダプターに「NLB 用クラスター IPアドレス」が追加されていることを確認します。

 

 

Windowsのスタートボタンより「ネットワーク」「プロパティ」をクリックします。

 

 

 

 

 

クラスターに追加したホストのIPアドレスが設定されているネットワークアダプターをクリックします。

 

 

 

 

 

「プロパティ」ボタンをクリックします。

 

 

 

 

 

 

「インターネットプロトコルバージョン4(TCP/IP)」を選択して「プロパティ」ボタンをクリックします。

 

 

 

 

「詳細設定」ボタンをクリックします。

 

 

 

下図のように「クラスターIPアドレス(172.31.20.13)」が追加されていることを確認します。

もし追加されていなかった場合は「追加」ボタンをクリックして手動で「クラスターIPアドレス」を追加します。

 

 

 

 

 

【ノード②】ネットワーク負荷分散クラスターへの追加手順

次に、もう片系(ノード②)をクラスターに追加します。

 

ノード①からでもノード②からでもどちらでも設定できます。

以下はノード①から設定しています。

 

ネットワーク負荷分散マネージャーの画面より、対象のクラスターを選択して右クリックし「ホストをクラスターに追加」を選択します。

 

 

 

 

 

「ホストをクラスターに追加」画面で追加するホストのIPアドレスを入力して「接続」ボタンをクリックします。

 

 

 

ホストでIPアドレス(172.31.20.12)が設定されているインタフェースを選択して「次へ」ボタンをクリックします。

 

 

 

 

 

優先順位を設定(自動的に次の番号が入ります)して「次へ」ボタンをクリックします。

 

 

 

 

 

「完了」ボタンをクリックします。

 

 

 

 

 

下図のようにクラスターに2台のホストが所属していることを確認します。

 

 

 

 

【ノード②】ネットワークアダプターに NLB 用クラスター IP を追加されていることを確認する(追加されていなかったら追加する)

次にノード②でネットワークアダプターに「NLB 用クラスター IPアドレス」が追加されていることを確認します。

 

ノード②にログインして Windows のスタートボタンより「ネットワーク」「プロパティ」をクリックします。

 

 

 

クラスターに追加したホストの IP アドレスが設定されているネットワークアダプターをクリックします。

 

 

 

 

「プロパティ」ボタンをクリックします。

 

 

 

「インターネットプロトコルバージョン4(TCP/IP)」を選択して「プロパティ」ボタンをクリックします。

 

 

 

 

 

 

「詳細設定」ボタンをクリックします。

 

 

 

 

下図のように「クラスターIPアドレス(172.31.20.13)」が追加されていることを確認します。

もし追加されていなかった場合は「追加」ボタンをクリックして手動で「クラスターIPアドレス」を追加します。

 

 

 

 

 

NLB は単純な負荷分散しかしない

NLB は、単純な負荷分散機能しかありません。

 

  • ステートレス(Stateless) ← 単純に要求に対して同じ応答を返します。アマゾンのショッピングカートのようにページを移動したり、戻るボタンをクリックしたりブラウザを閉じたりしてもカートの内容を保持するようなことはしません。HTTPなど。
  • ステートフル(Stateful) ← サーバー上でクライアントとのやり取り(セッション)の情報を保持しています。

 

 

 

要件

  • NLBクラスターの各ノードのIPアドレスは同一サブネットかつ静的
  • DHCPが有効になっているとエラーになる

 

 

DHCPが有効になっているとエラーになる

DHCPが有効になっていると下図のようにエラーが出力されます。

 

 

 

 

 

クラスター操作モード

クラスター操作モードで以下の3つから選択できます。

 

  • ユニキャスト
  • マルチキャスト
  • IGMP マルチキャスト ← IGMP(インターネット グループ管理プロトコル)

 

 

■ユニキャストモード

全てのクラスターホスト(クラスターに所属する各サーバー)は同一のユニキャスト MAC アドレスを共有します。

クラスターホストが送信するパケットの MAC ヘッダーには、すべてのクラスターに所属するホストが共有するクラスター仮想 MAC アドレス(ユニキャスト用の MAC アドレス)が使用されます。

これにより、スイッチがクラスター仮想 MAC アドレスを特定のスイッチポートに関連付けないようにしています。

このため、NLB クラスターのホストが接続されたスイッチに NLB クラスター宛のパケットが送られてくると、スイッチが全ポートからパケットを送出する「フラッディング」が発生します。

フラッディングが発生することで、すべてのクラスターホスト(クラスターに所属している各サーバー)がパケットを受信できるようになります。

この定期的なフラッディングがセッションを維持するために必要です。

ただし、同一 VLAN 上に NLB クラスター以外のサーバーが存在する場合、フラッディングの発生により、それらのサーバーのネットワークパフォーマンスが低下する可能性があります。

 

 

 

■マルチキャストモード

クラスターホストはネットワークアダプター(NIC)に割り当てられている MAC アドレスを維持します。

ネットワークアダプターには更にマルチキャスト MAC アドレスが割り当てられ、この MAC アドレスをすべてのクラスターホストが共有します。

マルチキャストで送信するため、全サーバがパケットを受信できるようになります。

マルチキャストモードを選択すると、ルーターに手動で ARP(Address Resolution Protocol)の設定が必要になる場合があります。

 

 

マルチキャストとユニキャストの違い(ブロードキャストも)

  • マルチキャスト ← 特定の 1つのノードから特定の複数ノードに対してデータを通信します。(1対複数間通信)
  • ユニキャスト ← 特定の 1つのノードから特定の 1つのノードに対してデータを送信します。(1対1間通信)
  • ブロードキャスト ← 特定ノードから全体(不特定多数)に対してデータを送信します。(1対不特定多数間通信)(マルチキャストとは異なり不特定多数です)

 

 

 

 

 

 

 

 

フィルターのモード(負荷分散アルゴリズム)

「フィルターのモード」を設定することで負荷分散アルゴリズムを設定することができます。

 

複数ホスト

すべての NLB のノードは各自に割り当てられた重み付け(負荷分散の値)に基づいて応答します。

各ノードの重み付けはノードの物理的なスペックに応じて設定します。

ノードに障害が発生した場合は、他のノードが応答を続けます。

クライアントからの要求を複数のノードに分散させることでアプリケーションの可用性と拡張性を向上させます。

複数ホストは全部のノードに対してトラフィックを分散します。負荷分散が可能な構成です。

Active-Active構成です。

 

単一ホスト

優先順位が最も高い(「優先順位」の値が最も小さい)NLB ノードのみが応答します。

 

最も優先度が高いノードに障害が発生したら、次に優先順位が高いノードが応答を開始します。

Active-Standby構成です。

 

 

優先順位とは

Windows NLB のクラスターを構成する各ノードには「優先順位」が割り当てられます。

ポートの規則で指定した条件に合致しないトラフィックをどのノードが処理するか決定します。

ホストの優先順位は上図のように32まで選択ができます。

 

 

 

複数ホストを選択した場合はアフィニティを決定する

「単一ホスト」を選択した場合は、Active-Standby で、1つのノードのみが通信するのでセッション情報の保持の問題は発生しませんが、「複数ホスト」を選択した場合はアフィニティを決定します。

 

 

アフィニティ(affinity)とは?

  • affinity ← 親近感、一体感

 

 

 

障害発生時の動作

クラスタにて 1つのノードに障害が発生するとクラスタから除外されます。

障害が発生したかどうかの判断は「ハートビート」が成功したか否かです。

 

 

 

 

 

 

参考サイト

ネットワーク負荷分散

https://forsenergy.com/ja-jp/nlbmgr/html/11dfa41c-f49e-4ee5-8664-8b81f6fb8af3.htm

 

NLB利用時のセッション維持について

https://social.technet.microsoft.com/Forums/office/ja-JP/14daa9c1-17f7-4008-87a7-c6fa7bc0ed48/nlb210332999226178123981247512483124711251912531321732534512395?forum=windowsserver2008ja

 

 

 

 

 

 

 

 

 

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

AlphaOmega Captcha Medica  –  What Do You See?
     
 

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください