超詳細LVS負載均衡群集-DR模式
當大量用戶訪問web群集時,所有的訪問請求均發到LVS負載均衡器的外網接口,LVS負載均衡器將用戶的訪問請求進行分流。分別發給Web服務器池中的不同節點,Web服務器節點收到用戶的訪問請求以後,通過各自Internet的出口,將回訪數據直接發送給對應的用戶,而不需要經過LVS負載均衡器
詳細LVS介紹可以查看我之前寫的帖子
http://blog.51cto.com/11905606/2164075
實驗環境
主機 | 操作系統 | IP地址 |
---|---|---|
負載調度器 | CentOS 7.4 x86_64 | 192.168.100.71 |
Web節點服務器 01 | CentOS 7.4 x86_64 | 192.168.100.73 |
Web節點服務器 02 | CentOS 7.4 x86_64 | 192.168.100.74 |
Client端 | CentOS 7.4 x86_64 | 192.168.100.72 |
搭建步驟
一、部署LVS_DR
1、編輯sysctl配置文件
[root@localhost ~]# vim /etc/sysctl.conf
添加以下參數:
net.ipv4.ip_forward=1 #開啟路由轉發功能
net.ipv4.conf.all.send_redirects = 0 #以下三處設定響應關閉重定向功能
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
[root@localhost ~]# sysctl -p #重新讀取配置文件
2、配置調度器虛擬IP地址
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens33:0 #創建虛擬子接口網卡配置文件
[root@localhost network-scripts]# vim ifcfg-ens33:0 #編輯虛擬網卡配置文件
添加以下參數:
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.100.100
NETMASK=255.255.255.255BROADCAST=192.168.100.100 #廣播地址
[root@localhost ~]# ifup ens33:0 #啟動虛擬網卡
[root@localhost ~]# ifconfig ens33:0
2、加載ip_vs模塊,安裝ipvsadm工具
[root@localhost ~]# yum -y install ipvsadm #安裝ipvs工具
[root@localhost ~]# modprobe ip_vs #加載內核模塊
[root@localhost ~]# cat /proc/net/ip_vs
[root@localhost ~]# route add -host 192.168.40.100 dev ens33:0 #添加路由
3、配置調度器負載分配策略
[root@localhost ~]# ipvsadm -C #先將之前定義的規則全部清除掉
[root@localhost ~]# ipvsadm -A -t 192.168.40.100:80 -s rr
[root@localhost ~]# ipvsadm -a -t 192.168.40.100:80 -r 192.168.40.73 -g -w 1
[root@localhost ~]# ipvsadm -a -t 192.168.40.100:80 -r 192.168.40.74 -g -w 1
ipvsadm工具參數說明:
-A:添加虛擬服務器
-a:表示添加真實服務器
-d:刪除某一個節點
-t:指定VIP地址及TCP端口(虛擬服務器)
-r:指定RIP地址及TCP端口(真實服務器)
-s:指定負載調度算法
-m:NAT群集模式
-g:DR模式
-i:TUN模式
-w:設置權重(權重為0時表示暫停節點) 即優先級
[root@localhost ~]# ipvsadm -L -n
[root@localhost ~]# ipvsadm --save > /etc/sysconfig/ipvsadm #保存已修改的分配策略
[root@localhost ~]# systemctl start ipvsadm.service #啟動服務
二、配置節點01服務器
1、配置虛擬IP地址
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@localhost network-scripts]# vim ifcfg-lo:0
添加以下參數:
DEVICE=lo:0
IPADDR=192.168.100.100
NETMASK=255.255.255.255
BROADCAST=192.168.100.100
ONBOOT=yes
[root@localhost network-scripts]# ifup lo:0
[root@localhost ~]# ifconfig lo:0
2、調整響應參數
[root@localhost ~]# vim /etc/sysctl.conf
#添加以下參數:
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
解析:
arp_announce定義arp通告的限制級別:
0 #默認的,通常本地任意地址,配置在任意接口上的地址
1 #當本地地址有多個IP地址時,只通告跟本地IP直接連接的IP和MAC
2? #盡可能使用能夠匹配到ARP 請求的最佳地址。arp_ignore在響應arp請求的時候,使用的不同的模型:
0? #無論從哪個接口上進來的,只要目標地址是本機任意地址,都給予響應
1? #如果目標地址跟請求進來的接口在同一處,就給予響應
2 #只回答目標IP地址是來訪網絡接口本地地址的ARP查詢請求,且來訪IP必須在該網絡接口的子網段內?
[root@localhost ~]# sysctl -p #重新讀取配置文件
3、配置Web服務
[root@localhost ~]# yum -y install httpd #安裝Web服務
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf #修改主配置文件
編輯以下參數:
ServerName www.bt.com:80
Listen 80
[root@localhost ~]# systemctl start httpd.service #啟動服務
[root@localhost ~]# cd /var/www/html/ #進入站點目錄
[root@localhost html]# echo "this is Release Server01 AAAAAAAAAA" > index.html #編輯默認首頁
三、配置節點02服務器
1、配置虛擬IP地址
配置與02服務器相同。略……
2、調整響應參數
配置與02服務器相同。略……
3、配置Web服務
[root@localhost ~]# yum -y install httpd #安裝Web服務
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf #修改主配置文件
編輯以下參數:
ServerName www.cloud.com:80
Listen 80
[root@localhost ~]# systemctl start httpd.service #啟動服務
[root@localhost ~]# cd /var/www/html/ #進入站點目錄
[root@localhost html]# echo "this is Release Server02 BBBBBBBBBB" > index.html #編輯默認首頁
四、測試群集
超詳細LVS負載均衡群集-DR模式