記事ディレクトリ
実験室模倣ストレージのプロジェクトではNFSサーバーをNATモードでマッピングする必要があるため、負荷分散の目的は達成されました。さまざまな負荷分散メカニズムを調査した後、著者は最終的に LVS のNATモードを選択し て需要を達成し、ブログで記録します。 LVS-NATモードの構成プロセス。
LVSサービスの簡単な紹介:
LVSは、Linux 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の主なコンポーネントは次のとおりです。
- クラスター全体の外部へのフロントエンドマシンであるロードバランサー/ディレクターは、実行のためにサーバーのグループに顧客の要求を送信する責任があり、顧客はサービスがIPアドレス(仮想IPと呼ぶことができます)から来ていると考えています住所)。
- サーバープール(サーバープール/リアルサーバー)は、実際にクライアント要求を実行するサーバーのセットです。実行されるサービスには、通常、WEB、MAIL、FTP、およびDNSが含まれます。
- 共有ストレージ(共有ストレージ)。サーバープールに共有ストレージ領域を提供するため、サーバープールに同じコンテンツを持たせ、同じサービスを簡単に提供できます。
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查看
#显示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:クライアントアクセス
更新すると、別のページに順番に移動します