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/にアクセスし、常にブラウザを更新して負荷分散効果をテストします。更新間隔を長くする必要があります。