LVS負載均衡部署


一、lvs-nat模式

1.1、環境介紹

  本實驗用三台虛擬機完成,一台虛擬機模擬lvs調度器,兩塊網卡,一塊模擬公網一塊模擬私網,公網地址192.168.0.201/24,私網地址192.168.4.130/24,另外兩台虛擬機分別模擬一台后端web服務器。IP地址分別為192.168.4.128/24,192.168.4.129/24,兩台web服務器通過私網地址和調度服務器連接,此例一權重輪訓方式為例。通過訪問192.168.0.201達到輪訓兩台web服務器。如果兩台web服務器的資源是一樣的就可以達到web服務器的負載均衡。

1.2、環境准備

  兩台web服務器起web服務,配置默認首頁,首頁內容分別為兩者的IP地址。這里不詳細介紹。

  配置三台服務器的IP地址。

  配置命令:

  lvs服務器: 

1 nmcli connection modi ens34 ipv4.method manual ipv4.addresses 192.168.4.130/24 ipv4.gateway 192.168.4.2 ipv4.dns 114.114.114.114 connection.autoconnect yes 2 nmcli connection up ens34 3 nmcli connection modi ens33 ipv4.method manual ipv4.addresses 192.168.0.201/24 ipv4.gateway 192.168.4.2 ipv4.dns 114.114.114.114 connection.autoconnect yes 4 nmcli connection up ens33

  web服務器:

1 nmcli connection modi ens34 ipv4.method manual ipv4.addresses 192.168.4.128/24 ipv4.gateway 192.168.4.130 ipv4.dns 114.114.114.114 connection.autoconnect yes #這里網關必須是lvs服務器內網的IP地址 2 nmcli connection up ens34
1 nmcli connection modi ens34 ipv4.method manual ipv4.addresses 192.168.4.129/24 ipv4.gateway 192.168.4.130 ipv4.dns 114.114.114.114 connection.autoconnect yes #這里網關必須是lvs服務器內網的IP地址 2 nmcli connection up ens34

1.3、配置lvs調度服務器

  1.3.1、安裝ipvsadm工具

  lvs是linux內置的功能模塊,是集成在內核中的,但是需要ipvsadm工具來傳遞命令給內核才能使用。

  命令: 

1 yum -y install ipvsadm

  1.3.2、配置調度器

[root@client ~]# ipvsadm -A -t 192.168.0.201:80 -s wrr [root@client ~]# ipvsadm -Ln IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.0.201:80 wrr [root@client ~]# ipvsadm -a -t 192.168.0.201:80 -r 192.168.4.128 -w 2 -m [root@client ~]# ipvsadm -a -t 192.168.0.201:80 -r 192.168.4.129 -w 1 -m [root@client ~]# ipvsadm -Ln IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.0.201:80 wrr -> 192.168.4.128:80             Masq    2      0          0         
  -> 192.168.4.129:80             Masq    1      0          0 [root@client ~]# 

1.3.3、測試負載均衡

 

 測試成功,兩台web服務器通過訪問192.168.0.201,實際訪問的是192.168.4.128和192.168.4.129,且是加權輪訓,128的權重是2,訪問時輪訓2次后,訪問另一台web,所以才出現上述結果。

 二、LVS-DR負載均衡部署

2.1、實驗背景

使用LVS實現DR模式的集群調度服務器,為用戶提供Web服務:

  • 客戶端IP地址為192.168.0.6
  • LVS調度器VIP地址為192.168.0.202
  • LVS調度器DIP地址設置為192.168.0.201
  • 真實Web服務器地址分別為192.168.0.19、192.168.0.127
  • 使用加權輪詢調度算法,web1的權重為1,web2的權重為2

說明:

CIP是客戶端的IP地址;

VIP是對客戶端提供服務的IP地址;

RIP是后端服務器的真實IP地址;

DIP是調度器與后端服務器通信的IP地址(VIP必須配置在虛擬接口)。

2.2、方案

使用4台虛擬機,1台作為客戶端、1台作為Director調度器、2台作為Real Server,拓撲結構如圖-2所示。實驗拓撲結構主機配置細節如表-4所示。

 

 

 

 2.3、配置步驟

實現此案例需要按照如下步驟進行。

說明:

CIP是客戶端的IP地址;

VIP是對客戶端提供服務的IP地址;

RIP是后端服務器的真實IP地址;

DIP是調度器與后端服務器通信的IP地址(VIP必須配置在虛擬接口)。

步驟一:配置實驗網絡環境

2.3.1、設置LVS代理服務器的VIP和DIP

注意:為了防止沖突,VIP必須要配置在網卡的虛擬接口。

 

 

 

重啟網卡,但是重啟網卡后可能不生效,需要將另一個網卡管理程序關掉(一般在rhel7和centos7以上的版本中會出現這種情況)

命令:

 

2.3.2、設置Web1服務器網絡參數

1 nmcli connect modif ens33 ipv4.method manual ipv4.address 192.168.0.19/24 ipv4.gateway 192.168.0.1 ipv4.dns 114.114.114.114 connection.autoconnect yes 2 nmcli connect up ens3

接下來給web1配置VIP地址。

注意:這里的子網掩碼必須是32(也就是全255),網絡地址與IP地址一樣,廣播地址與IP地址也一樣。

 

 

 

 配置完web1的VIP后先不急着重啟網卡,因為直接重啟會發生地址沖突的情況,因為同一個網絡中存在多個VIP,會造成網絡中地址沖突。

防止地址沖突的問題:

這里因為web1也配置與代理一樣的VIP地址,默認肯定會出現地址沖突;

sysctl.conf文件寫入這下面四行的主要目的就是訪問192.168.0.202的數據包,只有調度器會響應,其他主機都不做任何響應,這樣防止地址沖突的問題。

1 vim /etc/sysctl.conf 2 #手動寫入如下4行內容 3 net.ipv4.conf.all.arp_ignore = 1
4 net.ipv4.conf.lo.arp_ignore = 1
5 net.ipv4.conf.lo.arp_announce = 2
6 net.ipv4.conf.all.arp_announce = 2
7 #當有arp廣播問誰是192.168.4.15時,本機忽略該ARP廣播,不做任何回應 8 #本機不要向外宣告自己的lo回環地址是192.168.4.15
9 sysctl -p       #這條命令會讓/etc/sysctl.conf立即生效,或者直接重啟服務器

 

 重啟網卡后查看網卡,會發現出現一個虛擬網卡ens33:0

 

 2.3.3、設置Web2服務器網絡參數

  配置步驟和配置web1的步驟一樣,只需要把RIP的地址改為192.168.0.127.這里不做詳細介紹,按照web1 的配置步驟就可以。

 

 2.4、配置后端的web服務器

  httpd,安裝配置啟服務,這里不做介紹,2台web服務器的主頁分別是192.168.4.128和192.168.4.129.

2.5、LVS調度器安裝軟件並部署LVS-DR模式調度器

2.5.1、安裝軟件(如果已經安裝,此步驟可以忽略)

1  [root@proxy ~]# yum -y install ipvsadm

2.5.2、清理之前實驗的規則,創建新的集群服務器規則

1 [root@proxy ~]# ipvsadm -C #清空所有規則 2 [root@proxy ~]# ipvsadm -A -t 192.168.0.202:80 -s wrr

2.5.3、添加真實服務器(-g參數設置LVS工作模式為DR模式,-w設置權重)

[root@proxy ~]# ipvsadm -a -t 192.168.0.202:80 -r 192.168.0.19 -g -w 1 [root@proxy ~]# ipvsadm -a -t 192.168.0.202:80 -r 192.168.0.127 -g -w 2

2.5.4、查看規則列表,並保存規則

1 [root@client network-scripts]# ipvsadm -e -t 192.168.0.202:80 -r 192.168.0.127 -w 2 -g 2 [root@client network-scripts]# ipvsadm -Ln 3 IP Virtual Server version 1.2.1 (size=4096) 4 Prot LocalAddress:Port Scheduler Flags 5   -> RemoteAddress:Port Forward Weight ActiveConn InActConn 6 TCP  192.168.0.202:80 rr 7   -> 192.168.0.19:80              Route   1      0          0         
8   -> 192.168.0.127:80             Route   2      0          0         
9 [root@client network-scripts]# 

 

 2.6、客戶端測試

在客戶端192.168.0.6上使用curl命令反復連接http://192.168.0.202,查看訪問的頁面是否會輪詢到不同的后端真實服務器。

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM