LVSロードバランシングクラスターの実際の展開の詳細な説明(理論と実際の戦闘)

LVSロードバランシングクラスターの実際の展開の詳細な説明(理論と実際の戦闘)

目次

1.エンタープライズクラスターアプリケーションの概要

(1)クラスターの意味

クラスター、クラスター、クラスターは
複数のホストで構成されていますが、全体としては外部のみです

(2)、問題

インターネットアプリケーションでは、サイトのハードウェアパフォーマンス、応答速度、サービスの安定性、データの信頼性などに対する要件がますます高くなっているため、単一のサーバーではそうすることができません。

(3)解決策

高価なミニコンピューターとメインフレームを
使用する通常のサーバーを使用してサービスクラスターを構築する

2、エンタープライズクラスター分類

(1)クラスターのターゲットの違いにより、3つのタイプに分類できます。

負荷分散クラスター
高可用性クラスター
高性能コンピューティングクラスター

(2)ロードバランスクラスター

アプリケーションシステムの応答性を改善し、できるだけ多くのアクセス要求を処理し、目標としての待ち時間を短縮し、高い同時実行性と高い負荷(LB)の全体的なパフォーマンスを実現し
ます。LBの負荷分散は、マスターノードの分散アルゴリズムに依存します。

(3)、高可用性クラスター(高可用性クラスター)

目標は、アプリケーションシステムの信頼性を向上させ、中断時間を可能な限り短縮し、サービスの継続性を確保し、高可用性(HA)の障害耐性効果を実現すること
です。HAの動作モードには、デュプレックスモードとマスタースレーブモードがあります。

(4)高性能コンピュータクラスター

目標は、アプリケーションシステムのCPUコンピューティング速度を向上させ、ハードウェアリソースと分析機能を拡張し、大型およびスーパーコンピューターと同等の高性能コンピューティング(HPC)機能を取得することです。
高性能は、専用ハードウェアによる「分散コンピューティング」と「並列コンピューティング」に依存します。また、このソフトウェアは、複数のサーバーのCPU、メモリ、その他のリソースを統合して、大型のスーパーコンピューターだけが持つ計算能力を実現します。

3、負荷分散クラスターアーキテクチャ

(1)負荷分散の構造

第1層、ロードバランサー(ロードバランサーまたはディレクター)
第2層、サーバープール(サーバープール)
第3層、共有ストレージ(共有ストレージ)

(2)、負荷分散クラスターは現在、企業で最も使用されているクラスタータイプです

(3)クラスターロードスケジューリングテクノロジーには3つの動作モードがあります

アドレス変換(NATモード)
IPトンネル(TUNモード)
直接ルーティング(DRモード)
ここに写真の説明を挿入

1.NATモード

アドレス変換:

ネットワークアドレス変換(NATモードと呼ばれます)。
ファイアウォールのプライベートネットワーク構造と同様に、ロードスケジューラは、すべてのサーバーノードのゲートウェイ、つまりクライアントのアクセス入口として機能し、各ノードはクライアントのアクセスに応答します。
サーバーノードはプライベートIPアドレスを使用し、ロードスケジューラは同じ物理ネットワークに配置されており、セキュリティは他の2つの方法よりも優れています

2.IPトンネル

IPトンネル、略してTUNモード:
オープンネットワーク構造を採用し、ロードスケジューラはクライアントのアクセス入口としてのみ機能し、各ノードは、ロードスケジューラ
サーバーノードを介してインターネット分散するのではなく、独自のインターネット接続を介してクライアントに直接応答します。さまざまな場所に独立したパブリックIPアドレスがあり、専用のIPトンネルを介してロードスケジューラと通信します。

3.直接ルーティング

DRモードと呼ばれるダイレクトルーティング
は、TUNモードの構造と同様のセミオープンネットワーク構造を採用していますが、ノードはどこにでも散在しているわけではなく、
スケジューラと同じ物理ネットワーク上にあります。スケジューラと各ノードサーバーはローカルネットワークを通過します。接続、専用IPトンネルを確立する必要はありません

4、LVS仮想サーバーについて

(一)、Linux仮想サーバー

Linuxカーネルの負荷分散ソリューションは、
1998年5月に中国のZhang Wensong博士によって作成されました。
公式ウェブサイト:http://www.linuxvirtualserver.org/

カーネルによるLVSのサポートを確認します。

modprobe ip_vs					#加载 ip_vs模块
cat /proc/net/ip_vs				#查看 ip_vs版本信息

(2)、LVSロードスケジューリングアルゴリズム

1.ラウンドロビン

受信したアクセス要求は、クラスター内の各ノード(実サーバー)に順番に割り当てられ、実際の接続数やサーバーのシステム負荷に関係なく、各サーバーは同等に扱われます。

2.加重ラウンドロビン

スケジューラによって設定された重み値に従って要求を分散します。重み値が大きいノードが最初にタスクを取得します。割り当てられる要求の数が多いほど、
より多くのトラフィックを処理できる高性能サーバーが保証されます。

3.最小の接続

実サーバーによって確立された接続の数に従って割り当て、接続の数が最も少ないノードに受信されたアクセス要求に優先順位を付けます

4.加重最小接続

サーバーノードのパフォーマンスの差が大きい場合は、実サーバーの重みを自動的に調整できます
。パフォーマンスが高いノードほど、アクティブな接続負荷の割合が大きくなります

5、ipvsadmツール

(1)ipvsadmツールの概要

バージョン2.4以降、LinuxカーネルはデフォルトでLVSをサポートします。LVSの機能を使用するには、LVS管理ツールipvsadmをインストールするだけです。

LVSの構造は、主に2つの部分に分かれています。

  • カーネル空間で動作するIPVSモジュール。LVSの機能は、実際にはIVPSモジュールによって実現されます。
  • ユーザースペースで機能するipvsadm管理ツール。その機能は、構成された仮想サービスと実際のサービスをIPVSモジュールに送信するためのコマンドインターフェイスをユーザーに提供することです。

(2)、ipvsadmツールのインストール

ipvsadm工具支持yum安装

yum -y install ipvsadm
也可以编译源码安装,下载地址:

http://www.linuxvirtualserver.org/software/ipvs.html

(3)ipvsadmツールの使用

ipvsadm工具常用的参数选项有:

-A:添加虚拟服务器
-D:删除整个虚拟服务器

-E :编辑虚拟服务

-C:清除所有的虚拟服务规则

-R:恢复虚拟服务规则

-s:指定负载调度算法(轮询:rr、加权轮询:wrr、最少连接:lc、加权最少连接:wlc)
-a:表示添加真实服务器(节点服务器)
-d:删除某一个节点服务器

-e:编辑某个真实服务器

-t:指定 VIP地址及 TCP端口
-r:指定 RIP地址及 TCP端口
-m:表示使用 NAT群集模式
-g:表示使用 DR模式
-i:表示使用 TUN模式
-w:设置权重(权重为 0 时表示暂停节点)
-p 60:表示保持长连接60秒
-l:列表查看 LVS 虚拟服务器(默认为查看所有)
-n:以数字形式显示地址、端口等信息,常与“-l”选项组合使用。ipvsadm -ln

例:

1.仮想サービスを管理する

- 添加一个虚拟服务192.168.1.100:80,使用轮询算法

  ipvsadm -A -t 192.168.1.100:80 -s rr
- 修改虚拟服务的算法为加权轮询

  ipvsadm -E -t 192.168.1.100:80 -s wrr
- 删除虚拟服务

  ipvsadm -D -t 192.168.1.100:80

2.実際のサービスを管理する

- 添加一个真实服务器192.168.1.123,使用DR模式,权重2

  ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.123 -g -w 2
修改真实服务器的权重

  ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.123 -g -w 5
- 删除真实服务器

  ipvsadm -d -t 192.168.1.100:80 -r 192.168.1.123

3.統計を表示する

- 查看当前配置的虚拟服务和各个RS的权重

  ipvsadm -Ln
- 查看当前ipvs模块中记录的连接(可用于观察转发情况)

  ipvsadm -lnc
- 查看ipvs模块的转发情况统计

  ipvsadm -Ln --stats | --rate

6、NATモードLVS負荷分散クラスター展開シミュレーション実際の戦闘

1.実験環境

5つのLinux仮想マシン

负载调度器:内网关 ens33:192.168.126.10,外网关 ens36:12.0.0.1
Web节点服务器1:192.168.126.20
Web节点服务器2:192.168.126.30
NFS服务器:192.168.80.40
客户端:192.168.80.50

2.実験ステップ

1.共有ストレージを展開します(NFSサーバー:192.168.126.40)

systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
yum install nfs-utils rpcbind -y
systemctl start nfs.service
systemctl start rpcbind.service
systemctl enable nfs.service
systemctl enable rpcbind.service
mkdir /opt/kgc /opt/benet
chmod 777 /opt/kgc /opt/benet

ここに写真の説明を挿入

vim /etc/exports
/usr/share *(ro,sync)
/opt/kgc 192.168.80.0/24(rw,sync)
/opt/benet 192.168.80.0/24(rw,sync)
--发布共享---
exportfs -rv

ここに写真の説明を挿入

2.ノードサーバーを構成します(192.168.126.20、192.168.126.30)

systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
yum install httpd -y
systemctl start httpd.service
systemctl enable httpd.service
yum install nfs-utils rpcbind -y
showmount -e 192.168.80.13
systemctl start rpcbind
systemctl enable rpcbind

ここに写真の説明を挿入
ここに写真の説明を挿入
ここに写真の説明を挿入

192.168.126.20

mount.nfs 192.168.126.40:/opt/kgc /var/www/html
echo 'this is kgc web!' > /var/www/html/index.html
vim /etc/fstab
192.168.126.40:/opt/kgc		/myshare	nfs defaults,_netdev	0  0 #永久挂载

192.168.126.30

mount.nfs 192.168.126.40:/opt/benet /var/www/html
echo 'this is benet web!' > /var/www/html/index.html
vim /etc/fstab
192.168.126.40/opt/benet		/myshare	nfs defaults,_netdev	0  0 #永久挂载

3.ロードスケジューラを構成します(内部ゲートウェイens33:192.168.126.10、外部ゲートウェイens36:12.0.0.1)

systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0

ここに写真の説明を挿入

(1)SNAT転送ルールを構成します

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.126.0/24 -o ens37 -j SNAT --to-source 12.0.0.1

ここに写真の説明を挿入

(2)LVSカーネルモジュールをロードします

modprobe ip_vs					#加载 ip_vs模块
cat /proc/net/ip_vs				#查看 ip_vs版本信息

(3)ipvsadm管理ツールをインストールします

yum -y install ipvsadm

ここに写真の説明を挿入

--启动服务前须保存负载分配策略---
ipvsadm-save > /etc/sysconfig/ipvsadm
或者 ipvsadm --save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm.service

ここに写真の説明を挿入

(4)負荷分散戦略を構成します(NATモードはサーバー上でのみ構成する必要があり、ノードサーバーは特別な構成を必要としません)

ipvsadm -C 					#清除原有策略
ipvsadm -A -t 12.0.0.1:80 -s rr
ipvsadm -a -t 12.0.0.1:80 -r 192.168.126.20:80 -m [-w 1]
ipvsadm -a -t 12.0.0.1:80 -r 192.168.126.30:80 -m [-w 1]
ipvsadm						#启用策略

ipvsadm -ln					#查看节点状态,Masq代表 NAT模式
ipvsadm-save > /etc/sysconfig/ipvsadm						#保存策略

ipvsadm -d -t 12.0.0.1:80 -r 192.168.126.20:80 -m [-w 1]		#删除群集中某一节点服务器
ipvsadm -D -t 12.0.0.1:80									#删除整个虚拟服务器
systemctl stop ipvsadm										#停止服务(清除策略)
systemctl start ipvsadm										#启动服务(重建规则)、
ipvsadm-restore < /etc/sysconfig/ipvsadm					#恢复LVS 策略

ここに写真の説明を挿入
ここに写真の説明を挿入

4.テスト結果

IPが12.0.0.12のクライアントは、ブラウザを使用してhttp://12.0.0.1/にアクセスし、常にブラウザを更新して負荷分散効果をテストします。更新間隔を長くする必要があります。

ここに写真の説明を挿入
ここに写真の説明を挿入
ここに写真の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_51573771/article/details/112840316