一、概述
LVS(Linux Virtual Server)是一個開源的軟體負載均衡器,支持三種負載均衡模式:DR、TUN和NAT。其中,DR(Direct Routing)模式是最為常用的一種模式,主要特點是使用 LVS 節點上的虛擬 ip(VIP)和物理伺服器的 ip(RIP)進行負載均衡,無需對物理伺服器進行任何修改,是一種非入侵性的負載均衡方式。
二、服務端部署
為了實現 LVS 的 DR 模式,需要在服務端節點上完成 LVS 軟體的部署。這裡以 CentOS 系統為例:
# 安裝ipvsadm軟體 yum -y install ipvsadm # 修改內核參數 echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf # 重新載入內核參數 sysctl -p
修改內核參數後,需要重啟生效。接下來,需要配置 LVS 節點的網路環境。將實際的伺服器(RIP)的默認網關設置為 LVS 的 VIP 地址,在這樣的網路環境下,LVS 節點即成為實際伺服器的網關。在 LVS 節點上創建虛擬設備 eth0:0(VIP):
# 在ifcfg-eth0:0文件中添加以下內容 BOOTPROTO=static IPADDR=192.168.0.100 NETMASK=255.255.255.0 ONBOOT=yes # 重啟網路服務 service network restart
三、LVS規則配置
LVS DR 模式主要採用ipvsadm工具進行規則配置,ipvsadm是一款Linux系統下的網路設備調度軟體,它允許Linux系統利用IP負載均衡技術來均衡負載。
1、添加虛擬服務:
ipvsadm -A -t 192.168.0.100:80 -s rr
其中,-A 表示添加,在 DR 模式下只能添加虛擬服務,-t 表示指定虛擬服務的ip和埠,-s 表示負載均衡演算法,這裡採用輪詢演算法(Round Robin)。
2、添加實際伺服器:
ipvsadm -a -t 192.168.0.100:80 -r 192.168.0.101:80 -g ipvsadm -a -t 192.168.0.100:80 -r 192.168.0.102:80 -g
其中,-a 表示在虛擬服務中添加實際伺服器的ip和埠,-r 表示實際伺服器的ip和埠,-g 表示使用 DR 模式。
四、LVS DR工作原理
LVS DR 模式的工作原理是,客戶端訪問 LVS 節點的 VIP (192.168.0.100)的 80 埠,根據負載均衡演算法選擇一個實際伺服器(RIP)的 80 埠進行訪問。實際伺服器收到請求後,響應報文的目標 IP 地址為客戶端的 IP 地址,目標 MAC 地址為 LVS 節點的 MAC 地址,響應報文通過物理網路傳送到 LVS 節點,然後由 LVS 節點進行 DNAT,將響應報文的目標 IP 地址從 LVS 節點的 VIP 更改為客戶端的 IP,然後再將響應報文發送給客戶端。
五、總結
LVS DR 模式是一種通用的、可擴展的、高效的負載均衡方式,具備變更簡單、擴展性強、響應速度快等優點。但也需要注意使用場景,例如,不適合用於會話保持、埠映射等需要在 LVS 節點進行修改的業務場景。
原創文章,作者:KIOFH,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/361068.html