理論+実験:LVS負荷分散クラスター

1つは、クラスターの負荷分散の原則

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

■クラスターの意味

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

■問題

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

■ソリューション

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

1.2エンタープライズクラスタの分類-1

■クラスターのターゲットの違いに応じて、3つのタイプに分類できます。

  • 負荷分散クラスター
  • 高可用性クラスター(1つはアクティブ、1つはスタンバイ)
  • 高性能計算クラスター(超高性能クラスター)

■負荷分散クラスター

  • アプリケーションシステムの応答性を向上させ、可能な限り多くのアクセス要求を処理し、待ち時間を目標として削減して、高い同時実行性と高負荷(LB)の全体的なパフォーマンスを実現します。
  • LBの負荷分散は、マスターノードの分散アルゴリズムに依存します

1.3エンタープライズクラスタの分類-2

■高可用性クラスター

  • アプリケーションシステムの信頼性を向上させ、中断時間を可能な限り削減するには、サービスの継続性を確保し、高可用性(HA)フォールトトレランス効果を実現します
  • HAの動作モードには、デュプレックスモードとマスタースレーブモードが含まれます

■高性能コンピュータクラスタ

  • アプリケーションシステムのCPUコンピューティング速度を向上させ、ハードウェアリソースと分析機能を拡張し、大規模なスーパーコンピューターと同等のハイパフォーマンスコンピューティング(HPC)機能を獲得することを目的としています。
  • 高性能コンピューティングクラスタの高性能は、「分散コンピューティング」と「並列コンピューティング」に依存しています。複数のサーバーのCPU、メモリ、その他のリソースは、専用のハードウェアとソフトウェアを介して統合され、大規模なスーパーコンピュータだけが持つコンピューティング機能を実現します。

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

■負荷分散構造

  • 最初のレイヤー、ロードスケジューラー(ロードバランサーまたはディレクター)
  • 2番目の層、サーバープール(サーバープール)
  • 第3層の共有ストレージ(Share Storage)
    ここに画像の説明を挿入

2.負荷分散の作業モードをマスターする

2.1負荷分散クラスターの動作モードの分析

■負荷分散クラスタは現在、企業で最も一般的に使用されているクラスタタイプです
■クラスタ負荷スケジューリングテクノロジーには3つの動作モードがあります

  • アドレス変換
  • IPトンネル
  • 直接ルーティング

2.2 NATモード

■アドレス変換

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

2.3 TUNモード

■IPトンネル

  • IPトンネル、略してTUNモード
  • オープンネットワーク構造を採用しているため、ロードスケジューラはクライアントのアクセスポータルとしてのみ機能し、各ノードはロードスケジューラを通過するのではなく、独自のインターネット接続を介してクライアントに直接応答します。
  • サーバーノードはインターネットのさまざまな場所に散在し、独立したパブリックIPアドレスを持ち、専用IPトンネルを介してロードスケジューラと通信します。
    ここに画像の説明を挿入

2.4 DRモード

■直接ルーティング

  • DRモードと呼ばれる直接ルーティング
  • TUNモデルの構造に似たセミオープンネットワーク構造を採用していますが、ノードはどこにでも散在しているわけではなく、スケジューラーと同じ物理ネットワーク上に配置されています
  • ロードスケジューラは、ローカルネットワークを介して各ノードサーバーに接続され、専用のIPトンネルを確立する必要はありません。
    ここに画像の説明を挿入

2.5 LVS Virtual Server-1について

■LVSロードスケジューリングアルゴリズム

  • ラウンドロビン
    • 受信したアクセス要求は、クラスター内の各ノード(実サーバー)に順番に割り当てられ、サーバーの実際の接続数やシステム負荷に関係なく、各サーバーは同等に扱われます
  • 加重ラウンドロビン
    • スケジューラーによって設定された重み値に従って要求を分散します。重み値を持つノードが最初にタスクを取得し、より多くの要求が割り当てられます
    • 強力なパフォーマンスを持つサーバーがより多くのアクセストラフィックを負担するようにする

2.6 LVS Virtual Server-2について

■LVSロードスケジューリングアルゴリズム

  • 最小接続
    • 実サーバーによって確立された接続数に応じて割り当て、接続数が最も少ないノードへの受信アクセス要求に優先順位を付けます
    • 加重最小接続
      • サーバーノードのパフォーマンスが大きく異なる場合、実サーバーに合わせて重みを自動調整できます
      • パフォーマンスの高いノードは、アクティブな接続負荷の割合が高くなります

2.7 ipvsadmツールを使用する

■LVSクラスターの作成と管理
ここに画像の説明を挿入

2.8 NFS共有ストレージサービス-1

■ネットワークファイルシステム、ネットワークファイルシステム

  • RPC(リモートプロシージャコール)に依存する
  • nfs-utils、rpcbindソフトウェアパッケージをインストールする必要がある
  • システムサービス:nfs、rpcbind
  • 共有構成ファイル:/ etc / exports

2.9 NFS共有ストレージサービス-2

■NFSを使用して共有リソースを公開する

  • nfs-utils、rpcbindソフトウェアパッケージをインストールする
  • 共有ディレクトリを設定する
  • NFSサービスプログラムを起動します。
  • マシンによって公開されたNFS共有ディレクトリを表示する

2.10 NFS共有ストレージサービス-3

■クライアントのNFS共有リソースにアクセスする

  • rpcbindパッケージをインストールして、rpcbindサービスを開始します。
  • NFS共有ディレクトリを手動でマウントする
  • fstab自動マウント設定

3、LVS-NAT展開の実践

IP地址规划:
1、调度器
对外公网:20.0.0.6(NAT) 业务端口号:80       开启路由转发功能      ###不用配网关
私有网络:192.168.200.21(VM1)                                                   ###不用配网关

2、WE1	
私有网络:192.168.200.22(VM1)网关:192.168.200.21

3、WE2
私有网络:192.168.200.23(VM1)网关:192.168.200.21

4、存储
私有网络:192.168.200.24(VM1)网关:192.168.200.21

环境配置:
关闭防火墙、关闭核心防护、安装yum源    ###四台都要这样的环境。前面的博客教过,这里不写了。
调度器服务器配置:

###添加一块网卡###
[root@localhost ~]# nmcli connection  ###查看一下加的新的网卡UUID号
1b17e3d8-6882-3d70-8ab8-c14fa3796a5a ### 保存新的UUID号
[root@localhost ~]# cd /etc/sysconfig/network-scripts/ ###进入到这个目录里
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens36 ###复制ens33 创建新的ens36
[root@localhost network-scripts]# vi ifcfg-ens36  ###编辑里面的名字,把33改成36,uuid改成刚刚查看保存的,ip地址改成192.168.200.21,和一个子网掩码就好了,别的不需要。

[root@localhost ~]# yum -y install ipvsadm.x86_64   ###安装负载均衡分发策略工具
[root@localhost ~]# modprobe ip_vs  ###加载这个模块
[root@localhost ~]# cat /proc/net/ip_vs  ###查看一下这个模块加载情况
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port Forward Weight ActiveConn InActConn

1、创建虚拟服务器
[root@localhost ~]# ipvsadm -A -t 20.0.0.6:80 -s rr   ###添加虚拟主机,-t是给客户用的后面加ip地址,-s调用算法 rr允许

2、添加服务器节点
[root@localhost ~]# ipvsadm -a -t 20.0.0.6:80 -r 192.168.200.22:80 -m  ###配置去web1服务器的
[root@localhost ~]# ipvsadm -a -t 20.0.0.6:80 -r 192.168.200.23:80 -m  ###配置去web2服务器的

3、保存LVS策略
[root@localhost ~]# ipvsadm-save > /opt/ipvsadm     ###保存策略追加到/opt/ipvsadm

4、开启调度服务器路由转发功能
[root@localhost ~]# vi /etc/sysctl.conf       
net.ipv4.ip_forward = 1                  ###在最后添加一条
[root@localhost ~]# sysctl -p             ###刷新生效一下
net.ipv4.ip_forward = 1
存储服务器配置:
[root@localhost ~]# rpm -q nfs-utils          ###查看一下nfs是否安装
package nfs-utils is not installed             ###没有安装
[root@localhost ~]# yum -y install nfs-utils   ###安装一下nfs
[root@localhost ~]# rpm -q rpcbind           ###查看一下rpcbind是否安装
rpcbind-0.2.0-42.el7.x86_64                                ###安装了,如果没有安装就yum安装一下 ,yum -y install  rpcbind 

[root@localhost ~]# mkdir /opt/51xit /opt/52xit     ###创建两个目录
[root@localhost opt]# echo 'this is 51xit' >/opt/51xit/index.html     ###在51xit目录里创建一个网页
[root@localhost opt]# echo 'this is 52xit' >/opt/52xit/index.html     ###在52xit目录里创建一个网页

[root@localhost opt]# vi /etc/exports      ###发布出去
/opt/51xit 192.168.200.0/24(rw,sync)       
/opt/52xit 192.168.200.0/24(rw,sync)

[root@localhost opt]# systemctl restart nfs rpcbind     ###重启一下
[root@localhost opt]# systemctl enable nfs rpcbind     ###开机自启

[root@localhost opt]# showmount -e  ###检查一下服务
Export list for localhost.localdomain:
/opt/52xit 192.168.200.0/24         ###这两个就是刚刚共享出去的
/opt/51xit 192.168.200.0/24         ###这两个就是刚刚共享出去的
WE1配置:
[root@localhost ~]# rpm -q nfs-utils          ###查看一下nfs是否安装
package nfs-utils is not installed             ###没有安装
[root@localhost ~]# yum -y install nfs-utils   ###安装一下nfs
[root@localhost ~]# rpm -q rpcbind           ###查看一下rpcbind是否安装
rpcbind-0.2.0-42.el7.x86_64                                ###安装了,如果没有安装就yum安装一下 ,yum -y install  rpcbind 

[root@localhost ~]# showmount -e 192.168.200.24   ###查看一下是否显示共享的
Export list for 192.168.200.24:
/opt/52xit 192.168.200.0/24
/opt/51xit 192.168.200.0/24

[root@localhost ~]# yum -y install httpd          ###安装Apache服务
[root@localhost ~]# systemctl restart httpd     ###重启Apache服务
[root@localhost ~]# systemctl enable httpd     ###开机自启Apache

[root@localhost ~]# mount 192.168.200.24:/opt/51xit /var/www/html/   ###临时挂载
###测试:浏览器输入192.168.200.22就能显示51的网页###

[root@localhost ~]# vi /etc/fstab    ###永久挂载
192.168.200.24:/opt/51xit /var/www/html nfs defaults,_netdev 0 0
WE2配置:
[root@localhost ~]# rpm -q nfs-utils          ###查看一下nfs是否安装
package nfs-utils is not installed             ###没有安装
[root@localhost ~]# yum -y install nfs-utils   ###安装一下nfs
[root@localhost ~]# rpm -q rpcbind           ###查看一下rpcbind是否安装
rpcbind-0.2.0-42.el7.x86_64                                ###安装了,如果没有安装就yum安装一下 ,yum -y install  rpcbind 

[root@localhost ~]# showmount -e 192.168.200.24   ###查看一下是否显示共享的
Export list for 192.168.200.24:
/opt/52xit 192.168.200.0/24
/opt/51xit 192.168.200.0/24

[root@localhost ~]# yum -y install httpd          ###安装Apache服务
[root@localhost ~]# systemctl restart httpd     ###重启Apache服务
[root@localhost ~]# systemctl enable httpd     ###开机自启Apache

[root@localhost ~]# mount 192.168.200.24:/opt/52xit /var/www/html/   ###临时挂载
###测试:浏览器输入192.168.200.22就能显示52的网页###

[root@localhost ~]# vi /etc/fstab    ###永久挂载
192.168.200.24:/opt/52xit /var/www/html nfs defaults,_netdev 0 0
测试:浏览器输入20.0.0.6,显示的内容51xit,等一会刷新就会变成52xit,就实现了负载均衡

ここに画像の説明を挿入
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_44733021/article/details/108710313