天天看點

負載均衡LVS實驗建構

LVS實驗建構

LVS-DR 模式建構

實驗架構圖

DR模式的特點:

  • 叢集節點必須在一個網絡中
  • 真實伺服器網關指向路由器
  • RIP既可以是私網位址,又可以是公網位址
  • 負載排程器隻負責入站請求
  • 大大減輕負載排程器壓力,支援更多的伺服器節點

建構過程

負載排程器 Drectory
#關閉網卡守護程序
service NetworkManager stop
chkconfig NetworkManager off

#拷貝eth0網卡子接口充當叢集入口接口
cd /etc/sysconfig/network-scripts/
cp -a ifcfg-eth0 ifcfg-eth0:0

vim !$
#删除mac/uuid和網卡類型
DEVICE=eth0:0
IPADDR=10.10.10.100
NETMASK=255.255.255.0
ifup eth0:0  #開啟子接口

#關閉網卡重定向功能
vim /etc/sysctl.conf
#添加:
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.eth0.send_redirects = 0

sysctl -p #重新整理

#重載ipvs模式
modprobe ip_vs

#安裝ipvsadm指令行工具
yum -y install ipvsadm

  ipvsadm -v #檢視目前ipvs叢集内容
  ipvsadm -A -t 虛拟IP:80 -s rr    添加ipvs TCP叢集
  ipvsadm -a -t 虛拟IP:80 -r 網站:80 -g #添加ipvsadm叢集子節點
   # -a 添加節點
   # -r 指定真實伺服器
   # -g 代表的是DR模式
#執行指令: 
ipvsadm -A -t 10.10.10.100:80 -s rr  #rr輪詢算法,
ipvsadm -a -t 10.10.10.100:80 -r 10.10.10.12:80 -g
ipvsadm -a -t 10.10.10.100:80 -r 10.10.10.13:80 -g

[root@011 ~]# ipvsadm -Ln     #檢查
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.10.10.100:80 rr
  -> 10.10.10.12:80               Route   1      0          0         
  -> 10.10.10.13:80               Route   1      0          0      
  
#儲存ipvs叢集内容至檔案,進行持久化存儲
service ipvsadm save
#設定為開機自啟
chkconfig ipvsadm on           
真實伺服器 RS1 RS2
#關閉網卡守護程序
service NetworkManager stop && chkconfig NetworkManager off

#拷貝環回網卡子接口

cp -a ifcfg-lo ifcfg-lo:0
vim !$
DEVICE=lo:0
IPADDR=10.10.10.100
NETMASK=255.255.255.255

#關閉對應ARP相應及公告功能
vim /etc/sysctl.conf
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

sysctl -p #重新整理

#開啟環回網卡子接口
ipup lo:0

#添加路由記錄,當通路虛拟iP(vip)時交給lo:0網卡
route add -host 10.10.10.100 dev lo:0

#建立html測試頁面,實驗中使用不同的頁面,生産環境應是相同網頁
echo "this is server 1" >> /var/www/html/index.html
echo "this is server 2" >> /var/www/html/index.html

#開啟httpd服務
service httpd start           
驗證

浏覽器通路負載排程器的eth0子接口eth0:0 的IP時,負載排程器使用輪詢算法,将通路的頁面負載到RS1和RS2上

[root@011 ~]# ipvsadm -Ln --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes
  -> RemoteAddress:Port
TCP  10.10.10.100:80                    20      104        0     9645        0
  -> 10.10.10.12:80                     10       51        0     4690        0
  -> 10.10.10.13:80                     10       53        0     4955        0           

LVS-NAT 模式建構

NAT模式特點:

  • 真實伺服器必須将網關指向負載排程器
  • RIP通常都是私有IP,僅用于各個叢集節點通信
  • 負載排程器必須位于客戶機和真實伺服器之間,充當網關
  • 支援端口映射
  • 負載排程器作業系統必須是Linux系統,真實伺服器可以使用任何系統

負載排程器
#關閉網卡守護程序
service NetworkManager stop && chkconfig NetworkManager off

#開啟路由轉發功能
net.ipv4.ip_forward = 1
sysctl -p

#開啟防火牆
service iptables start
chkconfig iptables on

#添加防火牆記錄,當源位址是"内網網段",并且出口網卡為"eth0"時進行SNAT轉換,轉換源為外網卡位址
iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j SNAT --to-source 20.20.20.11

service iptables save  #儲存防火牆規則配置

#安裝ipvsadm指令行工具
yum -y install ipvsadm

#添加ipvsadm tcp叢集
ipvsadm -A -t 20.20.20.11:80 -s rr

#添加ipvsadm節點
ipvsadm -a -t 20.20.20.11:80 -r 10.10.10.12:80 -m
ipvsadm -a -t 20.20.20.11:80 -r 10.10.10.13:8080 -m
#檢查
[root@011 ~]# service ipvsadm status
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  20.20.20.11:80 rr
  -> 10.10.10.12:80               Masq    1      0          0         
  -> 10.10.10.13:8080             Masq    1      0          0         

#ipvs持久化
service ipvsadm save

#設為開機自啟
chkconfig ipvsadm on           
#關閉網卡守護程序
service NetworkManager stop && chkconfig NetworkManager off

#配置網關為負載排程器的eth1網卡IP(内網IP)
echo "GATEWAT=10.10.10.11" >> /etc/sysconfig/network-scripts/ifcfg-eth0 
service network restart  #重新開機網絡
 
#指定網關至負載排程器
route add default gw 10.10.10.11

#編寫html的測試頁面開啟apache服務
service httpd start

#RS2 編輯apache配置檔案的監聽端口
vim /etc/httpd/conf/httpd.conf
Listen 8080
service httpd restart    #重新開機服務
#驗證:
[root@013 local]# curl 127.0.0.1:8080
this is server 2
           

繼續閱讀