一、LVS DR的概念
LVS(Linux Virtual Server)是一個基於Linux內核的高性能、可伸縮、可靠性高的虛擬伺服器軟體。DR(Direct Routing)是其中一種工作模式。在DR模式下,客戶端通過虛擬IP地址連接到LVS負載均衡器上,負載均衡器將請求轉發給後端真實伺服器上,真實伺服器響應後通過獨立的網卡將響應數據直接返回給客戶端,LVS只起到轉發作用。
二、LVS DR的架構
LVS DR模式所使用的是三層負載均衡,主要包含了如下幾個組件:
- 客戶端:發送請求到LVS負載均衡器上。
- 虛擬IP地址(VIP):用於標識LVS負載均衡器,客戶端請求都發送到VIP上。
- 負載均衡器:接收客戶端的請求,並根據負載均衡演算法將請求轉發到後端的真實伺服器上。
- 後端真實伺服器:接收LVS轉發過來的請求,並根據請求作出響應。
下圖是LVS DR模式的架構圖:
____________ | | | Client | |____________| | | ▼ ____________ | | | LVS Server | |____________| ▲ / | \ / | \ ▼ ▼ ▼ __________ __________ __________ | | | | | | | RealServer1| | RealServer2| | RealServer3| |__________| |__________| |__________|
三、LVS DR的配置
在LVS DR的配置過程中,需要進行如下幾個步驟:
1. 安裝必要的軟體包
在配置LVS DR之前,需要安裝相應的軟體包:
$ yum install ipvsadm -y # 安裝ipvsadm工具 $ yum install keepalived -y # 安裝keepalived服務
2. 配置LVS負載均衡器
在配置LVS負載均衡器時,需要對ipvsadm工具進行配置,為其添加VIP地址和轉發規則:
$ echo "172.16.10.100 dev eth0" > /etc/sysconfig/network-scripts/ifcfg-lo:0 # 添加VIP地址 $ /sbin/ipvsadm -A -t 172.16.10.100:80 -s rr # 添加虛擬伺服器和轉發規則 $ /sbin/ipvsadm -a -t 172.16.10.100:80 -r 192.168.0.11 -g $ /sbin/ipvsadm -a -t 172.16.10.100:80 -r 192.168.0.12 -g $ /sbin/ipvsadm -a -t 172.16.10.100:80 -r 192.168.0.13 -g
3. 配置後端真實伺服器
在配置後端真實伺服器時,需要將VIP地址添加到lo設備上,並啟用IP轉發功能:
$ echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore # 忽略ARP請求 $ echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce # 自己向外通告VIP地址 $ echo "1" > /proc/sys/net/ipv4/ip_forward # 開啟IP轉發 $ ifconfig lo:0 172.16.10.100 netmask 255.255.255.255 up # 添加VIP地址
4. 啟動keepalived服務
在LVS DR模式下,需要通過keepalived服務來保證負載均衡器的高可用性。在配置完成後,需要啟動keepalived服務,並使其開機自啟動。
$ systemctl start keepalived # 啟動keepalived服務 $ systemctl enable keepalived # 設置keepalived開機自啟動
四、LVS DR的優缺點
1. 優點
- 性能高:由於LVS DR模式具有數據直通的特點,因此可以帶來更好的性能表現。
- 可擴展性強:LVS DR模式可以通過增加後端真實伺服器的方式實現擴展。
- 可靠性高:LVS DR模式不需要在負載均衡器上保存會話信息,因此在後端伺服器發生故障時,會話可以很快地切換到其他正常工作的伺服器上。
2. 缺點
- 配置較為複雜:相比於其他負載均衡模式,LVS DR模式的配置更為複雜。
- 只支持TCP協議:LVS DR模式只能用於TCP協議的負載均衡,不支持UDP等其他協議。
- 存在「單點故障」問題:雖然通過keepalived服務可以實現負載均衡器的高可用性,但仍然有可能存在「單點故障」的問題。
原創文章,作者:EGNMS,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/369352.html