目次
2.Weighted Round Robin(ウエイテッド・ラウンド・ロビン)略称:WRR
1.クラスター紹介
負荷分散がない場合、nginx サーバーは動的リクエストを Tmocat にプロキシしますが、Tomcat ごとのリクエスト数は制限されており、リクエスト数がそれを超えると、Tomcat サーバーがクラッシュし、なだれが発生します。
1.クラスターの意味
クラスター、クラスター、クラスター
複数のホストで構成されていますが、外部の値は全体として表現され、アクセス エントリ (ドメイン名と IP アドレス) は 1 つだけ提供され、大型のコンピューターに相当します。
2. クラスターを使用する必要がある理由
インターネット アプリケーションでは、ハードウェア パフォーマンス、対応する速度、サーバーの安定性、およびデータの信頼性に対するサイトの要件がますます高くなるため、単一のサーバーでは負荷分散と高可用性の要件を満たすことができなくなります。
クラスタ ソリューション
高価なミニコンピュータとメインフレームを使用します。
複数の比較的安価な共通サーバーを使用して
複数のサーバーを統合することで これは、
エンタープライズで一般的に使用されるクラスター技術です - LVS (Linux Virtual Server、Linux 仮想サーバー)
3.クラスタータイプ
クラスターのターゲットの違いによって、3つのタイプに分けることができます
負荷分散クラスター (LB)
高可用性クラスター (HA)
ハイパフォーマンスクラスター
1. 負荷分散クラスタ ---- 略称:LB
① アプリケーションシステムの応答性を向上させ、できるだけ多くのアクセス要求を処理し、目標として遅延を減らし、高並行性と高負荷 (LB) の全体的なパフォーマンスを取得します。
②LBの負荷分散は、マスターノードの分散アルゴリズムに依存します。
例として、nginx と 2 つの tomcat の組み合わせを取り上げます: クライアントの最初のバッチが nginx ダイナミクスにアクセスすると、負荷分散が使用されて、クライアント アクセス ページのリクエストが 2 つの tomcat に均等に分散されます。しばらくすると、クライアントの 2 番目のバッチがアクセスします。一部の顧客訪問の最初のバッチが終了しても、2 つの tomcat によって残された接続の数が必ずしも同じであるとは限らず、この時点で顧客要求の 2 番目のバッチが配布されると、最初のポーリング方法は使用できなくなります. . ですが、バックグラウンドの tomcat 接続の数に応じて分散されます。
2. 高可用性クラスター ---- 略称: HA
①アプリケーションシステムの信頼性を向上させ、端末時間を極力短縮し、サービスの継続性を確保し、高可用性(HA)によるフォールトトレランス効果を実現する。
②HAの動作モードには、デュプレックスモードとマスタースレーブモードが含まれます
3. 高性能コンピュータ クラスタ
①アプリケーションシステムのCPU演算速度を向上させ、ハードウェア資源や解析能力を徹底的に追求し、大規模コンピュータやスーパーコンピュータと同等のHPC(ハイパフォーマンスコンピューティング)を実現 ②高性能は「分散コンピューティング」と「並列計算」に依存専用のハードウェアとソフトウェアは、複数のサーバーの CPU やメモリなどのリソースを統合し、大規模なスーパーコンピューターだけが持つ計算能力を実現します。
2. 負荷分散クラスター アーキテクチャ
1.負荷分散の仕組み
第 1 層: ロード スケジューラ (ロード バランサまたはディレクター)
第 2 層: Server Pool (サーバー プール)
第 3 層: 共有ストレージ (Share Storage)
ロード スケジューラ (ロード バランサまたはディレクター)
クラスタ システム全体にアクセスするための唯一の入り口は、クラスタ IP アドレスとも呼ばれる、すべてのサーバーで共有される VIP アドレスを使用します。通常、プライマリとバックアップの 2 つのスケジューラーが構成され、ホット バックアップが実行されますが、プライマリー スケジューラーが故障した場合、スタンバイ スケジューラーにスムーズに置き換えられるため、高可用性が確保されます。
サーバープール
クラスタによって提供されるアプリケーション サービスは、各ノードが独立した RIP アドレス (実際の IP) を持つサーバー プールによって引き受けられ、スケジューラによって分散されたクライアント要求のみを処理します。ノードに一時的な障害が発生すると、ロード スケジューラのフォールト トレラント メカニズムによってノードが分離され、エラーが解消されるまで待機してから、サーバー プールに再導入されます。
共有ストレージ
サーバー・プール内のすべてのノードに安定した一貫したファイル・アクセス・サービスを提供し、クラスタ全体の均一性を確保します.共有ストレージには、NASデバイスまたはNFS共有サービスを提供する専用サーバーを使用できます.
2.負荷分散クラスターの動作モードの分析
負荷分散クラスターは、現在、企業で最も一般的に使用されているクラスター タイプです。
クラスター負荷スケジューリング技術には 3 つの動作モードがあります
アドレス変換: NAT アドレス マッピング
IP トンネル: トンネル モード オーバーレイ ネットワーク
直接ルーティング: DR
1. NATモード(アドレス変換)
①NAT モードと呼ばれる NetworkAddress Translation
②ファイアウォールのプライベートネットワーク構造と同様に、負荷スケジューラはすべてのサーバーノードのゲートウェイ、つまりクライアントのアクセス入口として機能し、クライアントに応答する各ノードのアクセス出口としても機能します。
③サーバーノードはプライベートIPアドレスを使用し、負荷スケジューラと同じ物理ネットワーク上にあるため、他の2つの方法よりもセキュリティが優れています。
2. TUNモード(IPトンネル)
①IPトンネル。略してTUNモード
②オープンなネットワーク構造を採用し、ロードスケジューラはクライアントのアクセス入口としてのみ使用し、各ノードはロードスケジューラを経由せず、自身のインターネット接続を通じてクライアントに直接応答します。
③サーバーノードは、独立したパブリックIPアドレスを使用してインターネット内のさまざまな場所に分散しており、専用のIPトンネルを介してロードスケジューラと通信します
3.DRモード(ダイレクトルーティング) ☆
①DRモードと呼ばれるダイレクトルーティング
②TUNの構造と同様のセミオープンネットワーク構造を採用しているが、ノードは分散配置されておらず、スケジューラーと同じ物理ネットワーク上に配置されている
③負荷スケジューラーと各ノードサーバーはローカルネットワークで接続され、専用のIPトンネルを構築する必要がありません。
3.LVS仮想サーバー
1、Linux仮想サーバー
①Linux カーネル用に開発された負荷分散ソリューション
②1998 年 5 月、中国の Zhang Wensong 博士によって作成されました
③公式 Web サイト: http://www.linuxvirtualserver.org
④LVS は、実際には IP アドレスに基づく仮想化アプリケーションに相当します。 IPベース アドレスとコンテンツ要求分散の負荷分散は効率的な解決策を提案する.
LVSを使用することによって達成できる技術的目標は: LVSによって実現される負荷分散技術によって高性能で高可用性のLinuxサーバークラスターを実現することである.信頼性、スケーラビリティ、操作性に優れた Linux オペレーティング システム。その結果、低コストで最適なパフォーマンスが得られます。LVS は、負荷分散クラスターを実装するオープン ソース ソフトウェア プロジェクトです. LVS アーキテクチャは、スケジューリング レイヤー、サーバー クラスター レイヤー、および共有ストレージ レイヤーに論理的に分割できます。
使用シーン
勤務地
①LVSサーバーが1台の場合:LVSはLBロードスケジューラとしてのみ動作し、4階で動作し、4階で動作するLVSロードバランサーは、LVSなどの一般的に使用されるいくつかのロードバランサーの中で最も強力です、Nginx、Apache、Haproxy はい。K8S では、デフォルトのロード バランシング テクノロジーは LVS です。
②HA 高可用性負荷分散、LVS+keepalived として使用する場合は、レイヤー 4 とレイヤー 7 に取り組みます。
2. LVSとNginxの機能比較
Nginx と比較して、LVS はより強力なアンチロード機能、高性能、およびメモリと CPU リソースの低消費を備えています.LVS は
ネットワーク層で動作し、特定のトラフィックはオペレーティング システム カーネルによって処理されます.Nginx はアプリケーション層で動作し、また、いくつかのディストリビューション戦略を実装できます;
LVS のインストールと構成は複雑で、ネットワークへの依存度が高く、安定性が高いです。Nginx のインストールと設定は比較的簡単で、ネットワークへの依存は小さく、
LVS は通常のマッチング処理をサポートしておらず、動的および静的な分離の効果を達成できません。Nginx はこの機能を実現でき、
LVS は幅広いプロトコルに適用されます。Nginx は HTTP、HTTPS、および電子メール プロトコルのみをサポートし、その適用範囲は狭いです。
3. ソフトウェア負荷分散の種類
Nginx: レイヤー 4/レイヤー 7 負荷分散をサポート、HTTP、HTTPS、電子メール プロトコルをサポート;
LVS: 純粋なレイヤー 4 負荷分散、カーネル モードで実行、ソフトウェア負荷分散の中で最高のパフォーマンス;
HAproxy: レイヤー 7 負荷バランシング ソフトウェアは 7 層ルールの設定をサポートし、パフォーマンスも良好です; 利点
:
シンプル、柔軟、安価 (上記のソフトウェア ロード バランシングを Linux オペレーティング システムに直接インストールすると、展開とメンテナンスは比較的簡単です、および
4層と7層の負荷分散は、ビジネスに応じて選択するか、ビジネスの特性に応じて選択でき、機能を拡張およびカスタマイズする方が便利です)
4. LVS ロード スケジューリング アルゴリズム
1.ラウンドロビン ----- 略称:RR
受信したアクセス要求は、クラスタ内の各ノード (実サーバー) に順番に割り当てられ、実際の接続数やサーバーのシステム負荷に関係なく、各サーバーは均等に扱われます。
2.Weighted Round Robin(ウエイテッド・ラウンド・ロビン)略称:WRR
リクエストは、スケジューラによって設定された重み値に従って分散されます. 重みが大きいノードが最初にタスクを取得し、より多くのリクエストが割り当てられます.
強力なパフォーマンスを持つサーバーがより多くのアクセス トラフィックを負担するようにします。
3. Least Connections 略称: LC
実サーバが確立しているコネクション数に応じて振り分けられ、受信したアクセス要求はコネクション数の少ないノードに優先的に振り分けられます。
4.加重最小接続
サーバーノードのパフォーマンスが大きく異なる場合、実サーバーの重みを自動的に調整できます
パフォーマンスの高いノードは、アクティブな接続負荷の大部分を負担します
ラウンドロビンと最小接続の違い
割り当てをポーリングする場合、バックグラウンド接続の数は気にせず、ポーリング方法に従って割り当てるだけです。
加重ラウンド ロビンは、サーバーが割り当てられる回数を手動で増やします。
最小接続を割り当てる場合、バックグラウンド接続の数を考慮し、最初に最小接続のバックグラウンド サーバーにアクセス要求を割り当てます。
加重最小接続は、他のサーバーと同じ接続数になるように最小接続数でサーバーを自動的に完成させてから配布できます。
五、LVS 管理ツール ipvsadm
1. ipvsadm を導入する
①ipvs (ip virtual server) : LVSは、カーネル状態のnetfilterフレームワークに基づいて実装されたIPVS機能であり、カーネル状態で動作します。ユーザーは、ipvsadm ツールを使用して VIP およびその他の関連情報を構成し、それを IPVS に渡す必要があります。
②ipvsadm : ipvsadm は VIP と RS の追加、削除、変更、およびクエリ機能を実現できる LVS ユーザー モードのサポート ツールです. netlink または raw ソケットに基づいてカーネル LVS と通信します. LVS が netfilter に類似している場合、 ipvsadm は iptables に似たツールです。
2. ipvsadm の役割
効果:
① 主に複数のサーバーの負荷分散に使用されます。
②ネットワーク層で動作し、高性能で高可用性のサーバークラスター技術を実現できます。
③安価で低性能のサーバーを多数組み合わせてスーパーサーバーを形成できます。
④使いやすく、設定が簡単で、複数の負荷分散方法があります。
⑤ 安定性と信頼性。クラスター内のサーバーが正常に動作しなくても、全体的な効果には影響しません。
⑥スケーラビリティの良さ
3.lvs関連用語
用語 | 説明 |
DS(ディレクターサーバー) | フォアグラウンド負荷分散サーバー |
RS(リアルサーバー) | バックエンド実サーバー |
CIP(クライアントIP) | クライアント IP アドレス |
VIP(仮想IP) | ロード バランサによって提供される IP アドレス。通常、ロード バランシング IP は仮想 IP を介して使用できます。 |
RIP(リアルサーバーIP) | 負荷分散バックエンドの実サーバー IP アドレス |
浸漬 | バックエンド サーバーと通信するためにロード バランサーが使用する IP アドレス |
CMAC | クライアント MAC アドレス、LVS が接続されているルーターの MAC アドレス |
VMAC | 負荷分散 LVS の VIP に対応する MAC アドレス |
DMAC | 負荷分散 LVS の DIP に対応する MAC アドレス |
RMAC | バックエンド実サーバーの RIP アドレスに対応する MAC アドレス |
4. ipvsadm ツールのオプション
オプション | 関数 |
-A | 仮想サーバーを追加 |
-D | 仮想サーバー全体を削除する |
-s | 負荷スケジューリング アルゴリズムを指定します (ラウンド ロビン: rr、加重ラウンド ロビン: wrr、最小接続数: lc、加重最小接続数: wlc)。 |
-a | 実サーバー(ノードサーバー)の追加を示します |
-d | ノードを削除する |
-t | VIPアドレスとTCPポートを指定 |
-r | RIPアドレスとTCPポートを指定 |
-m | NAT モードの使用を示します |
-g | DR モードの使用を示します |
-私 | TUNモードの使用を示します |
-w | 重みを設定します (重みが 0 の場合、ノードが停止していることを意味します) |
-p 60 | 60 秒間長い接続を維持することを示します |
-l | LVS 仮想サーバーを表示するためのリスト (デフォルトではすべて表示) |
-n | アドレス、ポートなどの情報は芸術的な言葉の形で表示され、long は「-l」オプションと組み合わせて使用されます |
-C | 古いポリシーをクリアする |