Director RIP 192.168.106.2 | VIP 172.16.100.1 |
Real server1 RIP 192.168.106.3 | |
Real server2 RIP 192.168.106.4 |
LVS 不能和iptables 一起使用。
LVS負載均衡分為三種模式。1、NAT,2、DR, 3、TUN
NAT模式關于web服務
一、下面我首先來配置負載均衡。
兩台real虛拟機都得有web伺服器并且開啟
1首先有個director 和兩個realserver。
Director必須要有兩張網卡。一個是公網位址,另一個是提供私網位址。例如本實驗的DIP是172.16.100.1.VIP是 192.168.106.2
R1ip 192.168.106.3
R2ip 192.168.106.4
2. 首先現在director伺服器上配置,Ip配置好後,得安裝ipvsadm。
再配置兩個real1.配置ip 該網卡的網關必須指向derictor的私網位址。192.168.106.2
Route –n 檢視一下網關
Route add default gw 192.168.106.254
Real2 的配置和real1一樣。
3.在director虛拟機上。一定要能通路這兩個real虛拟機的web服務。
Curl 192.168.106.3
Curl 192.168.106.4
都能夠顯示index.html即可。
4.關鍵步驟。安裝好ipvsadm後執行以下指令
ipvsadm -A –t 172.16.100.1:80 –s rr (輪詢排程)
ipvsadm –a -t 172.16.100.1:80 –r 192.168.106.3 –m
ipvsadm –a -t 172.16.100.1 :80 –r192.168.106.4 –m
echo 1 > /proc/sys/net/ipv4/ip_forward (網卡之間的轉換)、
ipvsadm –ln 檢視配置好的服務
如果出現
[root@sa ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 172.16.100.1:80 rr
-> 192.168.106.3:80 Masq 1 0 0
-> 192.168.106.4:80 Masq 1 0 0
說明real服務添加成功。。。。。
Curl 172.16.100.1
輪詢排程。應該出現下面的結果。
^C
[root@sa ~]# curl172.16.100.1(在此我們一定要通路公網IP)
<h1> nginx works on192.168.221.4</h1>
[root@sa ~]# curl 172.16.100.1
<html>
<h1>nginx works on 192.168.221.3</h1>
</html>
[root@sa ~]# ipvsadm –ln(可以檢視輪詢情況)
-> 192.168.106.3:80 Masq 1 0 2(連接配接數)
-> 192.168.106.4:80 Masq 1 0 2
到此我們的nat負載均衡配置成功。
如果想重新開機伺服器後還能使用的規則。就是用指令 service ipvsadm save
權重輪詢: ipvsadm –A –t 172.16.100.1:80 – s wrr
Ipvsadm–a –t 172.16.100.1:80 –r 192.168.106.3 –m -w 權值
Ipvsadm –a –t 172.16.100.1:80 –r 192.168.106.4 –m -w 權值
即可。。。。。。。。
Ipvsadm –C 是清除所有的規則。在我們儲存的前提下。
Service ipvsadm save 是用于儲存規則的
Ipvsadm –R < /etc/sysconfig/ipvsadm
即可恢複
LVS-DR模型的配置
Ip規劃
VIP 192.168.106.102 | |
Real server 1 RIP 192.168.106.3 | |
Real server 2 RIP 192.168.106.4 | VIP 192.168.106.102 |
這個是降低了director的壓力。當用戶端請求發送到director時,會拆掉幀首部。不會動tcp封包。源ip和目的ip都不會改變。隻會通過修改MAC位址。Ipvsadm針對DR模式的排程算法。分發給real server ,real server會有兩個IP(RIP 和VIP)RIP是用來和其他主機進行通信。VIP是用來接受director發送過來的封包。在用戶端發送請求時。大概是需要廣播VIP的MAC位址。因為director和real server上都配有VIP是以都會做出響應。但是real server 不能做出響應。這樣會失去負載均衡的作用。是以在real server 上要配置抑制arp解析。是以VIP是不能對外做出響應。但是當傳回用戶端時,是在封包源位址是VIP 目的位址是CIP,是以需要加上一條路由資訊。無論什麼封包出去。
VS/DR的工作流程如上圖所示:它的連接配接排程和管理與VS/NAT和VS/TUN中的一樣,它的封包轉發方法又有不同,将封包直接路由給目标伺服器。在VS/DR中,排程器根據各個伺服器的負載情況,動态地選擇一台伺服器,不修改也不封裝IP封包,而是将資料幀的MAC位址改為選出伺服器的MAC位址,再将修改後的資料幀在與伺服器組的區域網路上發送。因為資料幀的MAC位址是選出的伺服器,是以伺服器肯定可以收到這個資料幀,從中可以獲得該IP封包。當伺服器發現封包的目标位址VIP是在本地的網絡裝置上,伺服器處理這個封包,然後根據路由表将響應封包直接傳回給客戶。
配置過程如下:
在director上配置 ifconfig eth0:0 192.168.106.11/32 up 配置VIP
Route add –host192.168.106.102 dev eth0:0
開始添加ipvsadm的規則
Ipvsadm –A –t 192.168.106.102:80 –s rr
Ipvsadm –a –t 192.168.106.102:80 –r192.168.106.3:80 –g
Ipvsadm –a –t 192.168.106.102:80 –r192.168.106.4:80 –g
在real server上配置
在配置VIP之前需要配置arp的規則
Echo “1”>/proc/sys/net/ipv4/conf/lo/apr_ignore
Echo “2”>/proc/sys/net/ipv4/conf/lo/apr_annonce
Echo “1”>/proc/sys/net/ipv4/conf/all/apr_ignore
Echo “2”>/proc/sys/net/ipv4/conf/all/apr_annonce
Ifconfig lo:0 192.168.106.102/32 up
Route add –host 192.168.106.102 dev lo:0
關閉iptables 開啟網絡服務。
在real server2上的配置一樣