1.クラスターの意味
クラスターとクラスターは複数のホストで構成されていますが、外部的には全体としてのみ表示され、1つのアクセスエントリ(ドメイン名またはIP)のみを提供します。これは、大規模なコンピューターに相当します。
1.クラスターの必要性
インターネットアプリケーションでは、サイトのハードウェアパフォーマンス、応答速度、サービスの安定性、およびデータの信頼性に対する要件がますます高くなっているため、単一のサーバーで負荷分散と高可用性の要件を満たすことはできません。
2.解決する
- 高価なミニコンピューターとメインフレームを使用してください。
- 複数の比較的安価な通常のサーバーを使用して、サービスクラスターを構築します。
複数のサーバーを統合することにより、LVSを使用してサーバーの高可用性と負荷分散を実現し、同じIPアドレスから外部に同じサービスを提供します。
これは、企業で一般的に使用されているクラスターテクノロジーであるLVS(Linux Virtual Server、Linux Virtual Server)です。
2.クラスターは3つのタイプに分けることができます
クラスターのターゲットの違いに応じて、3つのタイプに分けることができます
- 負荷分散クラスター
- 高可用性クラスター
- 高性能クラスター
詳細な説明:
-
負荷分散クラスター(負荷分散クラスター)
は、アプリケーションシステムの応答性を向上させ、可能な限り多くのアクセス要求を処理し、目標としての待ち時間を短縮し、高い同時実行性と高い負荷(LB)の全体的なパフォーマンスを実現します。
LBの負荷分散は、マスターノードのオフロードアルゴリズムに依存しています。マスターノードは、クライアントからのアクセス要求を複数のサーバーノードに分散するため、システム全体の負荷が軽減されます。 -
高可用性クラスター
1.アプリケーションシステムの信頼性を向上させ、中断時間を可能な限り短縮し、サービスの継続性を確保し、高可用性(HA)のフォールトトレランス効果を実現します。
HAの動作モードには、デュプレックスモードとマスタースレーブモードが含まれます。デュプレックスとは、すべてのノードが同時にオンラインになることを意味します。マスタースレーブとは、マスターノードのみがオンラインになることを意味しますが、スレーブノードは次の場合に自動的にマスターノードに切り替えることができます。障害が発生します。
例:「フェイルオーバー」、「デュアルシステムホットバックアップ」など。 -
ハイパフォーマンスコンピューティングクラスター(ハイパフォーマンスコンピュータークラスター)
1。アプリケーションシステムのCPUコンピューティング速度を向上させ、ハードウェアリソースと分析機能を拡張することを目的として、大型スーパーコンピューターと同等のハイパフォーマンスコンピューティング(HPC)機能を取得します。 。
高性能は「分散コンピューティング」と「並列コンピューティング」に依存し、専用のハードウェアとソフトウェアを通じて、複数のサーバーのCPU、メモリ、その他のリソースが統合され、大型のスーパーコンピューターだけが持つコンピューティング機能を実現します。たとえば、「クラウドコンピューティング」、「グリッドコンピューティング」などです。
3、負荷分散クラスターアーキテクチャ
負荷分散構造
最初のレベルでは、ロードスケジューラ(ロードバランサーまたはディレクター)がクラスターシステム全体の一意の入り口にアクセスし、
すべてのサーバーに共通のVIPアドレス(クラスターIPアドレスとも呼ばれます)を外部で使用します。通常、メインスケジューラとバックアップスケジューラの2つのスケジューラは、ホットバックアップを実現するように構成されています。メインスケジューラに障害が発生した場合は、バックアップスケジューラにスムーズに置き換えて、高可用性を確保できます。2番目の層で
あるサーバープール(サーバープール)クラスターによって提供されるアプリケーションサービスは、サーバープールによって支えられます。サーバープールでは、各ノードが独立したRIPアドレス(実際のIP)を持ち、スケジューラーによって分散されたクライアント要求のみを処理します。ノードに一時的な障害が発生すると、ロードスケジューラのフォールトトレラントメカニズムがノードを分離し、エラーが解消されるのを待ってからサーバープールに再入します。3番目のレイヤーである共有ストレージ(共有ストレージ)は、サーバープール内のすべてのノードに安定した一貫性のあるファイルアクセスサービスを提供し、
クラスター全体の統合を保証します。共有ストレージは、NASデバイスを使用するか、NFS共有サービス専用のサーバーを提供できます。
4、負荷分散クラスターの動作モード分析
1.負荷分散クラスターは、現在、企業で最も一般的に使用されているクラスタータイプです
。2 。クラスター負荷スケジューリングテクノロジには、3つの動作モードがあります。
- アドレス変換(NATモード)
- IPトンネル(TUNモード)
- 直接ルーティング(DRモード)
5、3の負荷スケジューリング作業モード
(1)NATモード
アドレス変換
●NATモードと呼ばれるネットワークアドレス変換●
ファイアウォールのようなプライベートネットワーク構造と同様に、ロードスケジューラは、すべてのサーバーノードのゲートウェイ、つまりクライアントのアクセス入口として機能し、各ノードはに応答します。クライアントのアクセス出口
●サーバーノードは、ロードスケジューラと同じ物理ネットワーク上にあるプライベートIPアドレスを使用します。セキュリティは、他の2つの方法よりも優れています。
(2)、TUNモード
IPトンネル
●IPトンネル、略してTUNモード
●オープンネットワーク構造を採用し、ロードスケジューラはクライアントのアクセス入口としてのみ機能し、各ノードはロードスケジューラを通過するのではなく、独自のインターネット接続を介してクライアントに直接応答します
●独立したパブリックIPアドレスを使用して、インターネット上のさまざまな場所に分散され、専用のIPトンネルを介してロードスケジューラと通信するサーバーノード
(3)、DRモード
直接ルーティング
●直接ルーティング、DRモードと呼ばれる
●TUNモードの構造と同様のセミオープンネットワーク構造を採用していますが、ノードはさまざまな場所に分散しておらず、同じ物理ネットワーク上にあります。
スケジューラ。●負荷スケジューラが、各ノードサーバは、ローカルネットワークを介して接続され、専用のIPトンネルを確立する必要はありません
6、LVS仮想サーバー
1、Linux仮想サーバー
- Linuxカーネル用に開発された負荷分散ソリューション
- 1998年5月に私の国で張文松博士によって設立されました
- 公式ウェブサイト:http://www.linuxvirtualserver.orgl
- LVSは、実際にはIPアドレスに基づく仮想化アプリケーションと同等であり、IPアドレスとコンテンツ要求の分散に基づく負荷分散のための効率的なソリューションを提案します。
2. LVSはLinuxカーネルの一部になり、デフォルトでip_ vsモジュールとしてコンパイルされ、必要に応じて自動的に呼び出すことができます。CentOS 7システムでは、次の操作でip_ vsモジュールを手動でロードし、現在のシステムのip_vsモジュールのバージョン情報を表示できます。
modprobe ip_vs
cat /proc/net/ip_vs #确认内核对LVS的支持
7、LVSロードスケジューリングアルゴリズム
1.ラウンドロビン
●受信したアクセス要求をクラスター内の各ノード(実サーバー)に順番に割り当て、実際の接続数やサーバーのシステム負荷に関係なく、各サーバーを平等に扱います。
2.加重ラウンドロビン
は、スケジューラーによって設定された加重値に従って要求を分散します。加重値が高いノードが最初にタスクを取得します。割り当てられる要求が多いほど、
パフォーマンスの高いサーバーがより多くのアクセストラフィックを処理することが保証されます。
3.最小接続
数は、実サーバーによって確立された接続数に応じて割り当てられ、受信したアクセス要求は、接続数が最も少ないノードに優先されます。
4.加重最小接続
は、サーバーノードのパフォーマンスが大きく異なる場合に、実サーバーの加重を自動的に調整できます。
パフォーマンスが高いノードは、アクティブな接続負荷のより大きな割合を負担します。
8.実験構成
(1)NFS共有サービスを構成します(サーバーIP:192.168.90.70)
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
yum -y install nfs-utils rpcbind
systemctl start rpcbind.service
systemctl start nfs.service
systemctl enable nfs.service
systemctl enable rpcbind.service
mkdir /opt/lfp
mkdir /opt/accp
chmod 777 /opt/lfp
chmod 777 /opt/accp
vim /etc/exports
/usr/share *(ro,sync)
/opt/lfp 192.168.90.0/24(rw,sync)
/opt/accp 192.168.90.0/24(rw,sync)
exportfs -rv
(2)Web1ノード構成(サーバーIP:192.168.90.20)
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
yum install httpd -y
systemctl start httpd.service
systemctl enable httpd.service
yum -y install nfs-utils rpcbind
showmount -e 192.168.90.70
systemctl start rpcbind
systemctl enable rpcbind
mount.nfs 192.168.90.70:/opt/lfp /var/www/html
echo 'this is lfp web!' > /var/www/html/index.html
(2)Web2ノード構成(サーバーIP:192.168.90.50)
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
yum install httpd -y
systemctl start httpd.service
systemctl enable httpd.service
yum -y install nfs-utils rpcbind
showmount -e 192.168.90.70
systemctl start rpcbind
systemctl enable rpcbind
mount.nfs 192.168.90.70:/opt/lfp /var/www/html
echo 'this is lfp web!' > /var/www/html/index.html
(3)ロードスケジューラを設定します(内部ゲートウェイens33:192.168.90.10、外部ゲートウェイens37:12.0.0.1)
デュアルネットワークカード構成
- 追加デバイスでネットワークアダプタNATモードを追加できます
- 次に、ifconfigは他のネットワークカード名をensXXとして表示します
- cd / etc / sysconfig / network-scripts ifcfg-ens33ネットワークカードファイルをコピーして、2番目のネットワークカードの名前に名前を変更します
- 最後に、2番目のネットワークカードの構成を変更し、ネットワークカードを再起動します。
SNAT転送ルールを構成する
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
方法一
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
方法二
echo '1' > /proc/sys/net/ipv4/ip_forward
sysctl -p
iptables -t nat -F
iptables -F
iptables -t nat -A POSTROUTING -s 192.168.90.0/24 -o ens36 -j SNAT --to-source 12.0.0.1
LVSカーネルモジュールをロードします
modprobe ip_vs #加载 ip_vs模块
cat /proc/net/ip_vs #查看 ip_vs版本信息
ipvsadm管理をインストールします
yum -y install ipvsadm
启动服务前须保存负载分配策略
ipvsadm-save > /etc/sysconfig/ipvsadm
或
ipvsadm --save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm.service
負荷分散戦略を構成します(NATモードはサーバーでのみ構成する必要があります)
ipvsadm -C #清除原有策略
ipvsadm -A -t 12.0.0.1:80 -s rr
ipvsadm -a -t 12.0.0.1:80 -r 192.168.184.30:80 -m
ipvsadm -a -t 12.0.0.1:80 -r 192.168.184.40:80 -m
ipvsadm #启用策略
ipvsadm -ln #查看节点状态,Masq代表 NAT模式
ipvsadm-save > /etc/sysconfig/ipvsadm #保存策略