LVS負荷分散クラスタ--NAT実アドレス変換モードでは(あなたが今行うことができます!)

ロードバランシングクラスタ(ロードバランスクラスタ)

、アプリケーションの応答性を向上させることが可能などの追加の処理アクセス要求、目標の遅延を低減するために、高い並行性を得るために、負荷分散、高負荷(LB)LB全体的なパフォーマンスは、マスタノード分割アルゴリズムに依存します

ワークロードスケジューリング技術クラスターは、3つの動作モードがあります

  1. アドレス変換(NAT紙モードのみ)
  2. IPトンネル
  3. 直接ルーティング

NATモード

NAT(ネットワークアドレス変換)

  • 輸出クライアントに応じて入り口だけでなく、アクセス・ノードにアクセスするためのクライアントとして、すべてのサーバ・ノードのためのゲートウェイとしてのプライベートネットワークファイアウォールの構成、負荷分散装置に類似NATモードと呼ば
  • サーバーノードのプライベートIPアドレス、および同一の物理ネットワークに配置ロードバランサ、セキュリティは、他の2つの方法よりも優れています

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

荷重バランス

  • 第一層、スケジューラ負荷(ロードバランサまたは監督)
  • 第二層、サーバプール(サーバプール)
  • 第三の層、共有メモリ(共有ストレージ)

LVS負荷分散クラスタ--NAT実アドレス変換モードでは(あなたが今行うことができます!)

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

ポーリング(ラウンドロビン)

クラスタ(実サーバ)内の各ノードに割り当てられた順序で順番に受信したアクセス要求均一接続の実際の数とサーバシステムの負荷に関係なく、各サーバーを治療

WRR(重み付けラウンドロビン)

  • アクセス要求を受信割り当てる順番に実サーバの処理能力は、自動的に動的に各ノードをロードして、クエリスケジューラは、その重量を調整します
  • より多くのトラフィックを取るための強力なサーバーの処理能力を確認してください

最小コネクション(最小接続)

実サーバが確立される接続の数に応じて割り当てられ、アクセスは、接続の数が最も少ないノードに割り当て要求に優先順位を受信します

加重最小接続(加重最小接続)

  • 性能サーバノードに大きな差では、重みは自動的に実サーバを再調整することができます
  • 活動接続された負荷の大きな割合を仮定します高い重みノード

実験操作

実験環境

调度服务器(centos7):  
      外(ens36):12.0.0.1
      内(ens33):192.168.200.1
web服务器1(centos7):192.168.200.110
web服务器2(centos7):192.168.200.120
存储服务器(centos7):192.168.200.130
client客户端(win10):12.0.0.12

インストールは、サービスに関連するかどうかを確認するために1、ストレージサーバ

[root@localhost ~]# rpm -q nfs-utils
nfs-utils-1.3.0-0.48.el7.x86_64   #已安装
[root@localhost ~]# rpm -q rpcbind
rpcbind-0.2.0-42.el7.x86_64   #已安装
[root@localhost ~]# 

2、2、インストールHTTPD Webサーバサービスが、ない場合は、インストールするかどうかを検証することでした

第一台:
[root@localhost ~]# rpm -q httpd
未安装软件包 httpd 
[root@localhost ~]# yum install httpd -y
.................//省略安装过程
[root@localhost ~]#

第二台:
[root@localhost ~]# rpm -q httpd
未安装软件包 httpd 
[root@localhost ~]# yum install httpd -y
.................//省略安装过程
[root@localhost ~]#

3、スケジューリングサーバ管理ツールがあるかどうか、いない場合は、インストールを確認します

[root@localhost ~]# rpm -q ipvsadm
未安装软件包 ipvsadm 
[root@localhost ~]# yum install ipvsadm -y
.................//省略安装过程
[root@localhost ~]#

設定されたスケジューリングサーバ

図1に示すように、ネットワークモードは、ホストサーバーに構成されています

LVS負荷分散クラスタ--NAT実アドレス変換モードでは(あなたが今行うことができます!)

2、ストレージサーバ、固定IPアドレスを設定

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static   #dhcp改为static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=09073596-a7cf-404c-a098-28c3ff58c44b
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.200.130   #IP地址
NETMASK=255.255.255.0   #子网掩码
GATEWAY=192.168.200.1   #网关
[root@localhost ~]# systemctl restart network   #重启网络服务
[root@localhost ~]# ifconfig    #查看网卡信息,ip设置成功
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.200.130  netmask 255.255.255.0  broadcast 192.168.200.255
        inet6 fe80::5134:22f5:842b:5201  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:0d:f1:75  txqueuelen 1000  (Ethernet)
        RX packets 818  bytes 69866 (68.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 319  bytes 44103 (43.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

3、ファイアウォールをオフにし、オープンストレージ共有サービス

[root@localhost ~]# systemctl stop firewalld.service    #关闭防火墙
[root@localhost ~]# setenforce 0   #关闭增强性安全功能
[root@localhost ~]# 
[root@localhost ~]# systemctl start nfs.service   #开启nfs服务
[root@localhost ~]# systemctl start rpcbind   #开启rpcbind服务
[root@localhost ~]# 

4、変更設定ファイル/ etc /輸出

[root@localhost ~]# vim /etc/exports
/usr/share *(ro,sync)   #共享目录给所有用户,权限制度
/opt/abc/ 192.168.200.0/24(rw,sync)   #共享目录到固定网段用户,权限读写
/opt/xyz/ 192.168.200.0/24(rw,sync)   #共享目录到固定网段用户,权限读写

図5は、共有ディレクトリを作成し、権限を付与します

[root@localhost ~]# cd /opt/
[root@localhost opt]# ls
rh
[root@localhost opt]# mkdir abc xyz   #创建目录
[root@localhost opt]# ll
总用量 0
drwxr-xr-x. 2 root root 6 11月 26 17:33 abc
drwxr-xr-x. 2 root root 6 3月  26 2015 rh
drwxr-xr-x. 2 root root 6 11月 26 17:33 xyz
[root@localhost opt]# chmod 777 abc xyz   #授权
[root@localhost opt]# ll
总用量 0
drwxrwxrwx. 2 root root 6 11月 26 17:33 abc
drwxr-xr-x. 2 root root 6 3月  26 2015 rh
drwxrwxrwx. 2 root root 6 11月 26 17:33 xyz
[root@localhost opt]# 

図6に示すように、コンフィギュレーションをリロード

[root@localhost opt]# exportfs -rv
exporting 192.168.200.0/24:/opt/xyz
exporting 192.168.200.0/24:/opt/abc
exporting *:/usr/share
[root@localhost opt]# 

二、Webサーバの設定1

1、ネットワークモードのみのホストのためのWebサーバで1

LVS負荷分散クラスタ--NAT実アドレス変換モードでは(あなたが今行うことができます!)

2、固定のIPアドレス

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static   #dhcp改为static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=3ceed540-b04c-48d6-a4f7-79951f09ea1d
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.200.110   #IP地址
NETMASK=255.255.255.0   #子网掩码
GATEWAY=192.168.200.1   #网关
[root@localhost ~]# systemctl restart network   #重启网络服务
[root@localhost ~]# ifconfig    #查看网卡信息,ip设置成功
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.200.110  netmask 255.255.255.0  broadcast 192.168.200.255
        inet6 fe80::3e1d:31ba:f66a:6f80  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:27:1c:3f  txqueuelen 1000  (Ethernet)
        RX packets 12581  bytes 15759224 (15.0 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6118  bytes 501343 (489.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

3、ファイアウォールをオフにして、HTTPサービスを開きます

[root@localhost ~]# systemctl stop firewalld.service    #关闭防火墙
[root@localhost ~]# setenforce 0   #关闭增强性安全功能 
[root@localhost ~]# systemctl start httpd.service    #开启http服务
[root@localhost ~]# netstat -ntap | grep 80   #查看端口
tcp6       0      0 :::80                   :::*                    LISTEN      50076/httpd         
[root@localhost ~]# 

4、共有情報へのNFSサービスを見ます

[root@localhost ~]# showmount -e 192.168.200.130
Export list for 192.168.200.130:
/usr/share *
/opt/xyz   192.168.200.0/24
/opt/abc   192.168.200.0/24
[root@localhost ~]# 

5、NFS共有ディレクトリをマウントし、マウントの成功かどうかを確認します

[root@localhost ~]# mount.nfs 192.168.200.130:/opt/abc /var/www/html/   #挂载
[root@localhost ~]# df -h   #查看挂载信息
文件系统                  容量  已用  可用 已用% 挂载点
/dev/sda2                  20G  3.4G   17G   17% /
devtmpfs                  898M     0  898M    0% /dev
tmpfs                     912M     0  912M    0% /dev/shm
tmpfs                     912M   18M  895M    2% /run
tmpfs                     912M     0  912M    0% /sys/fs/cgroup
/dev/sda5                  10G   37M   10G    1% /home
/dev/sda1                 6.0G  174M  5.9G    3% /boot
tmpfs                     183M  4.0K  183M    1% /run/user/42
tmpfs                     183M   40K  183M    1% /run/user/0
192.168.200.130:/opt/abc   20G  3.3G   17G   17% /var/www/html   #挂载成功
[root@localhost ~]# 

6、ファイルが正常に作成されたかどうかを確認するためにマウントされたファイル、およびストレージサーバ上のホームディレクトリを作成します

web服务器1:
[root@localhost ~]# echo "this is abc web" > /var/www/html/index.html   #创建首页文件
[root@localhost ~]# 

存储服务器:
[root@localhost opt]# cd abc/
[root@localhost abc]# ls
index.html    #创建成功
[root@localhost abc]#

三、ウェブサーバの設定2

1、ネットワークモードのみのホストのWebサーバで2

LVS負荷分散クラスタ--NAT実アドレス変換モードでは(あなたが今行うことができます!)

2、固定のIPアドレス

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static   #将dhcp改为static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=8ecd53ce-afdb-46f8-b7ff-b2f428a3bc8f
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.200.120   #IP地址
NETMASK=255.255.255.0   #子网掩码
GATEWAY=192.168.200.1   #网关
[root@localhost ~]# systemctl restart network   #重启网络服务
[root@localhost ~]# ifconfig    #查看网卡信息,ip设置成功
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.200.120  netmask 255.255.255.0  broadcast 192.168.200.255
        inet6 fe80::c776:9d00:618:88f2  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:eb:34:07  txqueuelen 1000  (Ethernet)
        RX packets 13713  bytes 15997026 (15.2 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5590  bytes 452930 (442.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

3、ファイアウォールをオフにして、HTTPサービスを開きます

[root@localhost ~]# systemctl stop firewalld.service    #关闭防火墙
[root@localhost ~]# setenforce 0   #关闭增强性安全功能 
[root@localhost ~]# systemctl start httpd.service    #开启http服务
[root@localhost ~]# netstat -ntap | grep 80   #查看端口
tcp6       0      0 :::80                   :::*                    LISTEN      50572/httpd      
[root@localhost ~]# 

4、共有情報へのNFSサービスを見ます

[root@localhost ~]# showmount -e 192.168.200.130
Export list for 192.168.200.130:
/usr/share *
/opt/xyz   192.168.200.0/24
/opt/abc   192.168.200.0/24
[root@localhost ~]# 

5、NFS共有ディレクトリをマウントし、マウントの成功かどうかを確認します

[root@localhost ~]# mount.nfs 192.168.200.130:/opt/xyz /var/www/html/   #挂载
[root@localhost ~]# df -h   #查看挂载信息
文件系统                  容量  已用  可用 已用% 挂载点
/dev/sda2                  20G  3.4G   17G   17% /
devtmpfs                  898M     0  898M    0% /dev
tmpfs                     912M     0  912M    0% /dev/shm
tmpfs                     912M   18M  895M    2% /run
tmpfs                     912M     0  912M    0% /sys/fs/cgroup
/dev/sda5                  10G   37M   10G    1% /home
/dev/sda1                 6.0G  174M  5.9G    3% /boot
tmpfs                     183M  4.0K  183M    1% /run/user/42
tmpfs                     183M   40K  183M    1% /run/user/0
192.168.200.130:/opt/xyz   20G  3.3G   17G   17% /var/www/html   #挂载成功
[root@localhost ~]# 

6、ファイルが正常に作成されたかどうかを確認するためにマウントされたファイル、およびストレージサーバ上のホームディレクトリを作成します

web服务器2:
[root@localhost ~]# echo "this is xyz web" > /var/www/html/index.html   #创建首页文件
[root@localhost ~]# 

存储服务器:
[root@localhost abc]# cd ../xyz/
[root@localhost xyz]# ls
index.html    #创建成功
[root@localhost xyz]#

第四に、スケジューリングサーバの設定

1、スケジュールサーバにネットワークカード、ネットワークモードを追加し、2枚のネットワークカードは、ホストだけを変更しています

LVS負荷分散クラスタ--NAT実アドレス変換モードでは(あなたが今行うことができます!)

2、変更ens33カードプロファイルは、固定IP設定します

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static   #将dhcp改为static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=c96bc909-188e-ec64-3a96-6a90982b08ad
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.200.1   #IP地址
NETMASK=255.255.255.0   #子网掩码

3、固定のIPを設定し、ens36カードの設定ファイルを変更します

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens36   #复制一份ens33的配置文件作为ens36配置文件
[root@localhost network-scripts]# vim ifcfg-ens36
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static   #将dhcp改为static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens36   #ens33改为ens36,并删除UUID
DEVICE=ens36   #ens33改为ens36
ONBOOT=yes
IPADDR=12.0.0.1   #IP地址
NETMASK=255.255.255.0   #子网掩码

ネットワークサービスを再起動し、4かどうかは、IPの構成を確認することは成功しています

[root@localhost network-scripts]# systemctl restart network   #重启网络服务
[root@localhost network-scripts]# ifconfig    #查看网卡信息
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.200.1  netmask 255.255.255.0  broadcast 192.168.200.255
        inet6 fe80::28ad:c7f1:25e8:8708  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:95:9b:1b  txqueuelen 1000  (Ethernet)
        RX packets 11757  bytes 12899133 (12.3 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4731  bytes 325771 (318.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 12.0.0.1  netmask 255.255.255.0  broadcast 12.0.0.255
        inet6 fe80::10ce:358b:94ed:c4e9  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:95:9b:25  txqueuelen 1000  (Ethernet)
        RX packets 130  bytes 10117 (9.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 178  bytes 30232 (29.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

5、設定ファイルを変更するに/etc/sysctl.conf

[root@localhost ~]# vim /etc/sysctl.conf 
net.ipv4.ip_forward=1   #开启路由功能
[root@localhost ~]# sysctl -p   #重新加载/etc/sysctl.conf中配置
net.ipv4.ip_forward = 1
[root@localhost ~]# 

6、NATの設定

[root@localhost ~]# iptables -t nat -F   #清除nat缓存
[root@localhost ~]# iptables -F   #清除规则
[root@localhost ~]# iptables -t nat -A POSTROUTING -o ens36 -s 192.168.200.0/24 -j SNAT --to-source 12.0.0.1
#配置NAT转换
[root@localhost ~]# 

7、オープン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 ~]# ipvsadm --save > /etc/sysconfig/ipvsadm   #保存服务配置
[root@localhost ~]# systemctl start ipvsadm.service    #开启服务
[root@localhost ~]#

8、ipvsadmのサービススクリプトを追加し、実行

[root@localhost ~]# cd /opt/   #切换目录
[root@localhost opt]# vim nat.sh   #编辑脚本
#!/bin/bash
ipvsadm -C   #清除内核虚拟服务器表中的所有记录
ipvsadm -A -t 12.0.0.1:80 -s rr   #增加一台新的虚拟服务器
ipvsadm -a -t 12.0.0.1:80 -r 192.168.200.110:80 -m   #在虚拟服务器中增加一台新的真实服务器。
ipvsadm -a -t 12.0.0.1:80 -r 192.168.200.120:80 -m   #在虚拟服务器中增加一台新的真实服务器。
ipvsadm   #开启服务
[root@localhost opt]# source nat.sh    #执行脚本
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  localhost.localdomain:http rr
  -> 192.168.200.110:http         Masq    1      0          0         
  -> 192.168.200.120:http         Masq    1      0          0         
[root@localhost opt]# 

ipvsadm相关可选项含义:
-A:在内核的虚拟服务器列表中添加一条新的虚拟服务器记录。也就是增加一台新的虚拟服务器。虚拟服务器地址由三元组唯一定义:IP地址,端口号和协议。虚拟服务器也可以由防火墙标记定义。
-C:清除内核虚拟服务器表中的所有记录。
-a:在内核虚拟服务器表的一条记录里添加一条新的真实服务器记录。也就是在一个虚拟服务器中增加一台新的真实服务器。
-t:说明虚拟服务器提供的是tcp 的服务。
-s:将TCP连接和UDP数据报分配给真实服务器的算法。
-m:使用伪装(网络访问转换或NAT)。
rr:轮询,调度器通过”轮询”调度算法将外部请求按顺序轮流分配到集群中的真实服务器上,它均等地对待每一台服务器,而不管服务器上实际的连接数和系统负载。
wrr:加权轮询,调度器通过”加权轮询”调度算法根据真实服务器的不同处理能力来调度访问请求。这样可以保证处理能力强的服务器处理更多的访问流量。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。
lc:最少连接,当有新的作业到达时,调度器选择一个当前作业量较少的真实服务器,并把新到达的作业分配给它。如果集群系统的真实服务器具有相近的系统性能,采用”最小连接”调度算法可以较好地均衡负载。
wlc:加权最小连接,将更多的作业分配给作业较少且相对于权重较高(Ci / Wi)的服务器。这是默认值。

第五に、NATモードのバランスをとるテストクラスタの負荷

図1に示すように、修飾されたwin10ホストネットワークホストのみのモード

LVS負荷分散クラスタ--NAT実アドレス変換モードでは(あなたが今行うことができます!)

2、ホストIPアドレスwin10を変更

LVS負荷分散クラスタ--NAT実アドレス変換モードでは(あなたが今行うことができます!)

3、近くにwin10のホストファイアウォール

LVS負荷分散クラスタ--NAT実アドレス変換モードでは(あなたが今行うことができます!)

4、ホストwin10にアクセスするために使用されるIPアドレス:12.0.0.1

LVS負荷分散クラスタ--NAT実アドレス変換モードでは(あなたが今行うことができます!)

5、別のホームページにポーリングアルゴリズムに、もう一度感謝のブラウザを更新

LVS負荷分散クラスタ--NAT実アドレス変換モードでは(あなたが今行うことができます!)

おすすめ

転載: blog.51cto.com/14449541/2453856