LVSロードバランシングクラスター理論とLVS-NAT展開の実践!!


実験室模倣ストレージのプロジェクトではNFSサーバーをNATモードでマッピングする必要があるため、負荷分散の目的は達成されました。さまざまな負荷分散メカニズムを調査した後、著者は最終的に LVS NATモードを選択し て需要を達成し、ブログで記録します。 LVS-NATモードの構成プロセス。

LVSサービスの簡単な紹介:

LVSLinux Virtual Serverので、Linux仮想サーバーを意味します。これは、1998年5月にZhangWensongによって開発された仮想サーバークラスターシステムです。LVSクラスターは、IPロードバランシングテクノロジーとコンテンツベースのリクエスト配信テクノロジーを実装しています。スケジューラーは、バランスの取れた方法で実行するために異なるサーバーに要求を転送し、バックグラウンドで障害が発生したサーバーをシールドできるため、サーバーのグループを高性能で可用性の高いサーバークラスターに形成できます。この構造はクライアント向けです。完全に透過的であるため、クライアントおよびサーバープログラムを変更する必要はありません。

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

1.1:クラスターの意味

  • クラスター、クラスター、クラスター

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

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

1.2:解決策

高価なミニコンピューターとメインフレームを使用する

通常のサーバーを使用してサービスクラスターを構築する

Alibaba CloudのSLBは一般的な負荷分散スケジューラであり、ECSはク​​ラウドホスト(仮想マシン)です。

SLBはECSをスケジュールし、複数のECSがリソースプールを形成して、クラウドコンピューティングの基礎を形成します

1.3:LVSとは何ですか?

LVS-Linux仮想サーバー、つまりLinux仮想サーバー(仮想ホスト、共有ホスト)、仮想ホストはここでは繰り返されません。誰もが理解していると思います。

また、LVSは、高性能で可用性の高いサーバーを実装する仮想サーバークラスターシステムです。現在、LVSはLinuxカーネルモジュールに統合されています。

1.4:LVSの構成

物理的に言えば、LVSの主なコンポーネントは次のとおりです。

  1. クラスター全体の外部へのフロントエンドマシンであるロードバランサー/ディレクターは、実行のためにサーバーのグループに顧客の要求を送信する責任があり、顧客はサービスがIPアドレス(仮想IPと呼ぶことができます)から来ていると考えています住所)。
  2. サーバープール(サーバープール/リアルサーバー)は、実際にクライアント要求を実行するサーバーのセットです。実行されるサービスには、通常、WEB、MAIL、FTP、およびDNSが含まれます。
  3. 共有ストレージ(共有ストレージ)。サーバープールに共有ストレージ領域を提供するため、サーバープールに同じコンテンツを持たせ、同じサービスを簡単に提供できます。

マーク

1.4:クラスターのターゲットの違いに応じて、3つのタイプに分けることができます

  • 负载均衡群集
  • 高可用群集
  • 高性能运算群集

1.4.1:ロードバランスクラスター

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

1.4.2:高可用性クラスター

  • アプリケーションシステムの信頼性を向上させ、中断時間を可能な限り削減するには、サービスの継続性を確保し、高可用性(HA)フォールトトレランス効果を実現します
  • HAの動作モードには、デュプレックスモードとマスタースレーブモードが含まれます
    • 双工,两个平级状态的协同工作,随时顶替对方
    • 带有主从模式的,一台主,多台从,称为中心化群集
    • 去中心化机制:没有真正的主,如果有,也是象征意义的,所有节点都干活(Redis的群集就是典型去中心化机制)

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

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

1.5:クラスター負荷スケジューリングの3つの動作モード

1.51:NAR

地址转换(Network Address Translation)

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

マーク

1.52:TUNモード

  • IP隧道(IP Tunnel)
    • TUNモードと呼ばれる、オープンネットワーク構造を採用しています。ロードスケジューラは、クライアントのアクセスポータルとしてのみ使用されます。各ノードは、ロードスケジューラを経由せずに、独自のインターネット接続を介してクライアントに直接応答します。
    • サーバーノードはインターネットのさまざまな場所に分散しており、独立したパブリックIPアドレスを持ち、専用のIPトンネルを介してロードスケジューラと通信します。

マーク

1.53:DRモード

  • 直接ルーティング

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

    マーク

作業モードの違い NATモード TUNモード DRモード
実サーバー(ノードサーバー)
サーバー番号(ノード数) 低10-20 高100 高100
本当のゲートウェイ ロードスケジューラ 独自のルーター 無料のルーター
IPアドレス パブリックネットワーク+プライベートネットワーク パブリックネット プライベートネットワーク
利点 高いセキュリティ ワン環境暗号化データ 最高のパフォーマンス
不利益 低効率と高圧 トンネルサポートが必要 LANにまたがることはできません

2:展開手順

1.加载ip_vs模块,安装ipvsadm工具

2.开启路由转发

3.新建LVS虚拟服务器并添加节点服务器

4.配置节点服务器

5.保存规则并测试

BLホスト(ロードスケジューラ):

ラウンドロビン(rr)スケジューリングアルゴリズムを使用する

ホスト名 イントラネットIPアドレス インターネットIPアドレス ソフトウェアを展開する
LVSマスター(BLホスト) 192.168.100.1 12.0.0.1 ipvsadm
NFS 192.168.100.30 番号 nfs、rpcbind
WEB1 192.168.100.10 番号 httpd、nfs-utils
WEB2 192.168.100.20 番号 httpd、nfs-utils

2.1:LVSサーバーを構成する

#加载ip_vs模块,安装ipvsadm工具
[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
#下载管理模块工具
[root@localhost ~]# yum -y install ipvsadm
  • LVSサーバーのデュアルネットワークカードを構成する

  • ホストオンリーモードに設定されている

マーク

#使用无法显示网卡
[root@localhost ~]# systemctl start NetworkManager

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
#复制ens33 新网卡为ens36
[root@localhost network-scripts]# cp -p ifcfg-ens33 ifcfg-ens36
#编辑ens33

NAME=ens33
UUID=86503bd2-47b6-4518-8a5f-63e4de03d11e
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.100.1
PREFIX=24

#配置ens36     作为内网网关

NAME=ens36
DEVICE=ens36
ONBOOT=yes
IPADDR=12.0.0.1
NETMASK=255.255.255.0

#重启网卡
[root@localhost network-scripts]# systemctl restart network

2.2:web1構成

#下载apache服务
[root@web1 ~]# yum -y install httpd

网络模式选择仅主机
[root@web1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.100.10
PREFIX=24
GATEWAY=192.168.100.1

#重启网卡
[root@web1 ~]# systemctl restart network

2.2:web2設定

[root@web2 ~]# yum -y install httpd

#同样的方法配置完成重启网卡
[root@web2 ~]# systemctl restart network

ping一下两台服务器网关测试连接性
ping 192.168.100.1
....连接没问题

2.3:NFSサーバーを構成する

[root@nfs ~]# yum -y install rpcbind nfs-utils
  • ネットワークカードをホストオンリーモードで構成する
[root@nfs ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

IPADDR=192.168.100.30
GATEWAY=192.168.30.1
NETMASK=255.255.255.0
PREFIX=24

#重启网卡
[root@nfs ~]# systemctl restart network
  • 共有ディレクトリを設定してサービスを開始し、ファイアウォールをオフにします
#创建两个站点目录
[root@nfs ~]# cd /opt
[root@nfs opt]# mkdir shuai tom
[root@nfs opt]# chmod 777 shuai/ tom/
#编辑共享目录
[root@nfs opt]# vim /etc/exports
#rw:读写 sync:同步

/opt/shuai 192.168.100.0/24(rw,sync)
/opt/tom 192.168.100.0/24(rw,sync)

#重启服务关闭防火墙
[root@nfs opt]# systemctl start rpcbind
[root@nfs opt]# systemctl start nfs
[root@nfs opt]# iptables -F
[root@nfs opt]# setenforce 0

#发布共享
[root@nfs opt]# exportfs -rv
exporting 192.168.100.0/24:/opt/tom
exporting 192.168.100.0/24:/opt/shuai
  • web1とweb2に切り替えて、共有ディレクトリをマウントします

//web1查看
#显示nfs的信息
[root@web1 ~]# showmount -e 192.168.100.30
Export list for 192.168.100.30:
/opt/tom   192.168.100.0/24
/opt/shuai 192.168.100.0/24
1

//web2查看
[root@web2 ~]# showmount -e 192.168.100.30
Export list for 192.168.100.30:
/opt/tom   192.168.100.0/24
/opt/shuai 192.168.100.0/24

#web1进行挂载共享目录
[root@localhost network-scripts]# vim /etc/fstab 
#编辑以下内容
192.168.100.30:/opt/shuai       /var/www/html   nfs     faults  0 0


#加载挂载
[root@web1 ~]# mount -a
#查看挂载
[root@web1 ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
.....省略信息
192.168.100.30:/opt/shuai   nfs4       50G  4.1G   46G    9% /var/www/html


#web2进行共享挂载

[root@web2 ~]# vim /etc/fstab 
#编写
192.168.100.30:/opt/tom      /var/www/html   nfs     defaults        0 0
#加载挂载
ot@web2 ~]# mount -a

#查看挂载
[root@web2 ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
....省略信息
192.168.100.30:/opt/tom     nfs4       50G  4.1G   46G    9% /var/www/html

web1とweb2のホームページ情報を書く

[root@web1 ~]# cd /var/www/html/
[root@web1 html]# vim index.html
#编写主页信息
<h1>hello boy</h1>

#重启服务
[root@web1 html]# systemctl restart httpd

#编写web2的首页信息
[root@web2 html]# vim index.html

<h1>hello girl</h1>

#重启服务
[root@web2 html]# systemctl restart httpd
  • ホームページ情報を見る

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

2.4:ロードスケジューラのSNAT転送ルールを構成する

[root@localhost ~]# vim nat.sh

#!/bin/bash
echo "1" > /proc/sys/net/ipv4/ip_forward    //启动路由转发功能
ipvsadm -C                                   //清除缓存
ipvsadm -A -t 12.0.0.1:80 -s rr         //VIP地址 访问入口地址  -s启动调度算法 rr:轮巡
ipvsadm -a -t 12.0.0.1:80 -r 192.168.100.10:80 -m   -m:nat模式
ipvsadm -a -t 12.0.0.1:80 -r 192.168.100.20:80 -m
ipvsadm                //启用lvs功能实现调度

ipvsadm命令选项解析:
-C:清除内核虚拟服务器表中的所有记录
-A:增加一台新的虚拟服务器
-t:说明虚拟服务器提供的是tcp的服务
-s rr:启用轮询算法
-a:在一个虚拟服务器中增加一台新的真实服务器
-r:指定真实服务器
-m:指定LVS的工作模式为NAT模式
ipvsadm:启用LVS功能

#增加执行权限
[root@localhost ~]# chmod +x nat.sh 
#执行脚本
[root@localhost ~]# sh nat.sh 

nat.sh:2: /proc/net/ipv4/ip_forward: 没有那个文件或目录
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  12.0.0.1:80 rr
  -> 192.168.100.10:80            Masq    1      0          0         
  -> 192.168.100.20:80            Masq    1      0          0         
 
1:权重自动分配为1

2.5:クライアントアクセス

マーク

マーク
更新すると、別のページに順番に移動します

おすすめ

転載: blog.csdn.net/weixin_47151643/article/details/108332532