:DR(直接ルーティング)は、最も使用される一の態様は、導入上のパターンが、基準ボーエンできる負荷分散モードの三の一つであるLVS詳細な負荷がクラスタのバランスをとります、
次のようにDR動作モードの図です。
このモデルの原理は、上記のリンクのブログ記事にダウン書かれています。今DRモードクラスタのバランスをとるダイレクト・ロードを設定します。
環境は以下のとおりです。
この環境上では、問題に以下の点に対処する必要があります。
1、すべてのWebノードとスケジューラは、VIPに設定されている:クライアントアクセスVIP(クラスタの仮想IPアドレス)、
ディスパッチャは、Webノードに要求を転送した場合、その後、クライアントは、受信したクライアントノードに対応してウェブに直接移動
データパケットの後、送信元アドレスは、パケットが200.0.0.254を受けていない発見され、それがWebサーバの破棄に戻ります
パケットは、この問題を解決するためには、すべてのノード上の仮想インターフェイスと200.0.0.254のスケジューラウェブを構成する必要があります
このアドレス、およびルートを追加することによって、VIPアクセスデータは、通信障害を避けるために、局部的に制限します。
:ノードのWeb ARP応答に関する問題解決するために2、すべてのノード上の構成200.0.0.254ウェブとスケジューラを
このアドレスは、クライアントアクセス200.0.0.254このアドレス、ウェブのすべての後
ノードがアドレスを持っている、それはARP応答に行きますので、この方法では、クライアントは少しの原因となることがあります
スケジューラは、ウェブノードへの直接アクセスがあったが、この方法では、ディスパッチャは到達できない、自然に存在するのは何の意味もない、となります
効果をロード・バランシング、そのARP応答のウェブノードを閉じる必要があり、このアドレス200.0.0.254放送
場合は、単にウェブノードがブロードキャストに応答しない、ディスパッチャが応答することができます。
:ICMPリダイレクト・カーネルのスケジューラの最適化問題を解決するために3、 Linuxカーネルは、ICMPの最適化を持っています
これは、Linux、ディスパッチャへのクライアントの最初の訪問は、ディスパッチャが、この時点で、特定のウェブ・ノードに要求を転送するときに、
ICMP独自の最適化がありますし、Webクライアント・ノードが直接通信することができ、その後、データを送信します
パッケージ、ウェブノードへの直接のすべてのアクセス200.0.0.254のパケットができた後、クライアントを伝えるので、
すべてのアクセス要求は、ウェブのノードに直接ではなく、スケジューラによって、確かではないので、送信された後、
負荷分散効果を得ることができないために。ICMPリダイレクト応答をLinuxカーネルのパラメータをシャットダウンする必要があります。
次のようにコンフィギュレーション・プロセスは、次のとおりです。
まず、ロードバランサの設定:
1、仮想IPアドレス(VIP)を設定
[root@LVS network-scripts]# cp ifcfg-ens33 ifcfg-ens33:0 #在虚接口配置VIP
[root@LVS network-scripts]# vim ifcfg-ens33:0 #改动以下配置项
.............
IPADDR=200.0.0.254
NETMASK=255.255.255.0 #必须写子网掩码信息
NAME=ens33:0 #注意改网卡名称
DEVICE=ens33:0
ONBOOT=yes
[root@LVS network-scripts]# systemctl restart network #重启网卡使更改生效
[root@LVS network-scripts]# ifconfig #查询相关IP是否配置正确
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 200.0.0.1 netmask 255.255.255.0 broadcast 200.0.0.255
inet6 fe80::2e1e:d068:9c41:c688 prefixlen 64 scopeid 0x20<link>
...........................
ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 200.0.0.254 netmask 255.255.255.0 broadcast 200.0.0.255
ether 00:0c:29:77:2c:03 txqueuelen 1000 (Ethernet)
パラメータを、対応する2調整/ PROC。
[root@LVS ~]# vim /etc/sysctl.conf #写入下面三行
................
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
[root@LVS ~]# sysctl -p #刷新一下配置
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
3、負荷の割り当てポリシーを設定します。
[root@LVS ~]# modprobe ip_vs #加载ip_vs模块
[root@LVS ~]# yum -y install ipvsadm #安装ipvsadm工具
[root@LVS ~]# ipvsadm -C #清除原有策略
[root@LVS ~]# ipvsadm -A -t 200.0.0.254:80 -s rr #配置群集VIP及添加相关节点
[root@LVS ~]# ipvsadm -a -t 200.0.0.254:80 -r 200.0.0.2:80 -g -w 1
[root@LVS ~]# ipvsadm -a -t 200.0.0.254:80 -r 200.0.0.3:80 -g -w 1
[root@LVS ~]# ipvsadm-save #保存策略
[root@LVS ~]# ipvsadm-save > /etc/sysconfig/ipvsadm #导出策略备份
[root@LVS ~]# ipvsadm -ln #确认群集当前策略
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 200.0.0.254:80 rr
-> 200.0.0.2:80 Route 1 0 0
-> 200.0.0.3:80 Route 1 0 0
第二に、コンフィギュレーション・ウェブ・サーバ・ノード:
WebサーバのソースノードアドレスVIPアドレスは、データパケットに応じてのみウェブを送信し、クライアントがアクセス要求(リスナーとスケジューラによって配布)をリッスンする必要はありません。したがって、仮想インターフェイスのLOを使用した:0 VIPパケットをアドレスをホストし、ルートレコード、局部的に制限されたVIPのアクセスを追加します。
1、仮想IPアドレス(VIP)を設定します。
[root@web1 ~]# cd /etc/sysconfig/network-scripts/
[root@web1 network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@web1 network-scripts]# vim ifcfg-lo:0 #编辑该文件,只保留以下四行,并配置VIP
DEVICE=lo:0
IPADDR=200.0.0.254
NETMASK=255.255.255.255 #注意:子网掩码必须是全为1。也就是4个255。
ONBOOT=yes
[root@LVS network-scripts]# systemctl restart network #重启网卡使更改生效
[root@LVS network-scripts]# ifconfig #查询VIP是否配置正确
............................
lo:0: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 200.0.0.254 netmask 255.255.255.255
loop txqueuelen 1000 (Local Loopback)
[root@web1 ~]# route add -host 200.0.0.254 dev lo:0 #添加VIP本地访问路由记录
[root@web1 ~]# vim /etc/rc.local #设置开机自动添加这条路由记录
................................
/sbin/route add -host 200.0.0.254 dev lo:0
図2に示すように、調整/ PROC応答パラメータ:
[root@web1 ~]# #调整/proc响应参数,写入下面六行
...................
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
[root@web1 ~]# sysctl -p #刷新一下
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
3、インストールおよびサービスのhttpdを起動する(Apacheやnginxのは、需要の選択に応じて構築することができます):
[root@web1 ~]# yum -y install httpd #安装http服务
[root@web1 ~]# echo 1111111111111 > /var/www/html/index.html
#准备测试网页,等看到负载均衡的效果后,再挂载共享存储设备。
上記の3つの手順を繰り返し、追加のウェブサーバーノードを設定(:2222222222222222私はここになります別のWebページのファイルノードに変更します)。
三、クライアントアクセスVIPは、LVSクラスタをテストするには:
同じページにアクセスする場合は、設定上の排他エラーの場合には、複数のWebページを開く、または更新するには少し長く待って、接続を維持する時間であるかもしれないので、とても時間がかかりますことができます。
第四に、NFS共有ストレージを設定します。
:クライアントの設定手順に同じページファイルを提供することができ、すべてのWebホストは、すでにこの記事の最後に書かれているように、クラスタの効果をテストした後、あなたは、共有ストレージを導入する必要がNAT(アドレス変換)モードに基づいてCentOSに7詳細に負荷分散構成。