目錄
一. LVS簡介:
1.簡介
2. LVS工作模式:
3. LVS調度算法:
4. LVS-DR集群介紹:
二.LVS-DR搭建
?1.RS配置
1)兩臺RS,需要下載好httpd軟件并準備好配置文件
?2)添加虛擬IP(vip)、添加訪問本地vip的靜態路由并抑制ARP
?2.DS
1)安裝ipvsadm
2)?添加虛擬IP(vip):
3)添加服務
一. LVS簡介:
1.簡介
? ???LVS(Linux Virtual Server)是一個開源的負載均衡軟件,可以在Linux操作系統上實現高可用性和可擴展性。它使用IP負載均衡技術來分發網絡流量到多個后端服務器,從而提高系統的性能和可靠性。LVS通過在負載均衡器與后端服務器之間建立虛擬IP地址和端口的映射關系,來實現負載均衡。
2. LVS工作模式:
名稱 | 縮寫 | 說明 |
虛擬IP地址(Virtual IP Address) | ? ?VIP? | Director用于向客戶端計算機提供服務的IP地址 |
真實IP地址(Real Server IP Address | ?RIP? | 在集群下面節點上使用的IP地址 |
Director的IP地址(Director IP Address) | ?DIP | Director用于連接內外網網絡的IP地址 |
客戶端主機IP地址(Client IP Address) | CIP | 客戶端用戶計算機請求集群服務器的IP地址,該地址用作 發送給集群的請求的源IP地址 |
LVS有三種主要的工作模式:
- LVS-DR模式:在LVS-DR模式下,LVS負載均衡器使用一個虛擬IP地址(VIP)作為前端地址,通過集群技術將VIP綁定到負載均衡器上。當客戶端發送請求時,請求會到達負載均衡器。負載均衡器通過修改目標MAC地址將請求直接轉發給后端服務器,同時保持源IP地址不變。服務器處理請求后,將響應直接返回給客戶端,繞過負載均衡器。
- LVS-NAT模式:LVS-NAT(Network Address Translation)模式中,負載均衡器將客戶端請求的目標IP地址和端口修改為后端服務器的IP地址和端口,并將修改后的請求轉發給相應的服務器。后端服務器處理請求后,將響應返回給負載均衡器,再由負載均衡器將響應返回給客戶端。
- LVS-TUN模式:LVS-TUN(IP Tunneling)模式中,負載均衡器將客戶端請求封裝在一個新的IP包中,并通過IP隧道(IP Tunnel)轉發到后端服務器。服務器收到請求后,處理并將響應返回給負載均衡器,再由負載均衡器將響應返回給客戶端。
圖解如下:
????????特別提示:(VS/DR)模式是互聯網使用的最多多的一種模式,在LVS-DR配置中,Director將所有入站請求轉發給集群內部節點,但集群內部的節點直接將他們的回復發送給客戶端計算機(沒有通過Director回來)。
3. LVS調度算法:
- LVS負載均衡器使用調度算法來決定將請求轉發到哪個后端服務器。
- 調度方法決定了如何在這些集群節點之間分布工作負荷。
????????當Director收到來自客戶端計算機訪問她的VIP上的集群服務的入站請求時,Director必須決定那個集群節點應該獲得請求。Director可用于做出該決定的調度方法分成兩個基本類別:
固定調度算法:rr,wrr,dh,sh
動態調度算法:wlc,lblc,lblcr,SED,NQ(后兩種官方站點沒提到)
最常用的四種調度算法:
- 輪詢(Round Robin):“輪詢”調度也叫1:1調度,調度器通過“輪詢”調度算法將外部用戶請求按順序1:1的分配到集群中的每個 Real Server上,這種算法平等地對待每一臺Real Server,而不管服務器上實際的負載狀況和連接狀態。即:按照服務器列表的順序依次分配請求。
- 加權輪詢(Weighted Round Robin):“加權輪詢”調度算法是根據Real Server的不同處理能力來調度訪問請求。可以對每臺Real Server設置 不同的調度權值,對于性能相對較好的Real Server可以設置較高的權值,而對于處理能力較弱的Real Server,可以設置較低的權值,這樣保證了處理能力強的服務器處理更多的訪問流量。充分合理的利用 了服務器資源。同時,調度器還可以自動查詢Real Server的負載情況,并動態地調整其權值。即:根據服務器的權重給予不同的請求分配比例。
- 最少連接數(Least Connections):“最少連接”調度算法動態地將網絡請求調度到已建立的鏈接數 最少的服務器上。如果集群系統的真實服務器具有相近的系統性能,采用“最小連接”調度算法可以較好 地均衡負載。根據客戶端的IP地址進行哈希計算,并將請求發送給與哈希結果匹配的服務器。即:將請求發送給當前連接數最少的服務器。
- 加權最少鏈接調度(Weighted Least Connections) “加權最少鏈接調度”是“最少連接調度”的超集, 每個服務節點可以用相應的權值表示其處理能力,而系統管理員可以動態的設置相應的權值,缺省權值 為1,加權最小連接調度在分配新連接請求時盡可能使服務節點的已建立連接數和其權值成正比。即:通過權值和已建立連接數來確定負載均衡器分配連接請求的優先級。
4. LVS-DR集群介紹:
LVS-DR(Direct Routing)模式是LVS中最常用的一種模式。在LVS-DR模式下,負載均衡器通過ARP協議將客戶端請求的目標MAC地址修改為后端服務器的MAC地址,并直接將請求轉發給目標服務器。后端服務器處理請求后,將響應發送回客戶端,繞過負載均衡器。
工作原理:
-
外部客戶端發送請求到LVS集群的虛擬IP地址(VIP)。
-
請求到達LVS負載均衡器,并根據選定的調度算法選擇一個后端服務器。
-
負載均衡器通過ARP協議將請求的目標MAC地址修改為目標服務器的MAC地址。
-
負載均衡器將修改后的請求直接轉發給目標服務器。
-
目標服務器處理請求并生成響應。
-
服務器將響應直接發送給客戶端,繞過負載均衡器。
二.LVS-DR搭建
?1.RS配置
1)兩臺RS,需要下載好httpd軟件并準備好配置文件
#RS1
#下載httpd
yum install -y httpd
#定義配置文件
echo this is RS2 > /var/www/html/index.html
#查看配置文件
cat /var/www/html/index.html
#結果顯示
this is RS2
#重啟服務
systemctl start httpd
#查看是否成功
curl 192.168.136.135
#結果顯示
this is RS1#RS2
#下載httpd
yum install -y httpd
#定義配置文件
echo this is RS2 > /var/www/html/index.html
#查看配置文件
cat /var/www/html/index.html
#結果顯示
this is RS2
#重啟服務
systemctl start httpd
#查看是否成功
curl 192.168.136.136
#結果顯示
this is RS2
?2)添加虛擬IP(vip)、添加訪問本地vip的靜態路由并抑制ARP
#RS1
#在本地環回接口創建子接口并添加虛擬IP。ifconfig開機失效
ifconfig lo:11 192.168.136.11 netmask 255.255.255.255 up
#添加靜態路由。route同樣開機失效
route add -host 192.168.136.11 dev lo
#抑制ARP
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce#RS2
#在本地環回接口創建子接口并添加虛擬IP。ifconfig開機失效
ifconfig lo:22 192.168.136.22 netmask 255.255.255.255 up
#添加靜態路由。route同樣開機失效
route add -host 192.168.136.22 dev lo
#抑制ARP
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
?2.DS
1)安裝ipvsadm
#下載ipvsadm
yum install ipvsadm -y
#開啟ipvsadm服務
systemctl start ipvsadm
2)?添加虛擬IP(vip):
ifconfig ens33:11 192.168.136.11 netmask 255.255.255.0 up
3)添加服務
ipvsadm -C ?
##清空ipvsadm配置ipvsadm -At 192.168.136.11:80 -s rr
##配置LVS虛擬IP(VIP)ipvsadm -at 192.168.136.11:80 -r 192.168.136.135:80 -g
##配置后端真實服務器ipvsadm -at 192.168.136.11:80 -r 192.168.136.136:80 -g
##配置后端真實服務器ipvsadm -Ln
##查看ipvsadm配置
?刪除命令如下:
ipvsadm -D -t 192.168.136.11:80 -s wrr ?
##刪除LVS虛擬IP配置
?
ipvsadm -d -t 192.168.136.11:80 -r 192.168.136.135:80
ipvsadm -d -t 192.168.136.11:80 -r 192.168.136.136:80
##刪除后端真實服務器配置