文章目錄
- 前言
- 一、LVS-DR 模式詳解
- 1.1 數據包流向分析
- 1.2 DR 模式的特點
- 二、LVS-DR 集群部署實戰
- 2.1 環境準備
- 2.2 配置負載調度器(Director Server)
- 2.3 配置節點服務器(Real Server)
- 2.4 測試驗證
- 三、前期回顧
- 3.1 LVS 三種工作模式及其區別?
- 3.2 LVS 調度算法
- 總結
好的,我已經為您將提供的文檔整理成了一篇結構清晰、層次分明的博客文章,并按照要求添加了前言和總結。
前言
負載均衡是構建高可用服務的核心技術之一,Linux Virtual Server (LVS) 的 DR(Direct Routing)模式以其高性能和低延遲成為熱門選擇。本文將深入解析 LVS-DR 的工作原理,并通過實戰演示如何快速搭建一個高效的負載均衡集群,助您輕松掌握這一關鍵技能。
一、LVS-DR 模式詳解
1.1 數據包流向分析
LVS-DR 模式的工作流程可以清晰地分為以下幾個步驟,理解此流程是掌握 DR 模式的關鍵:
- 客戶端發送請求:客戶端(CIP)向負載均衡器(Director Server)的虛擬 IP(VIP)發送請求報文。報文源地址為 CIP,目標地址為 VIP。
- 負載均衡器接收并轉發:請求報文到達 Director Server 的內核空間。IPVS(IP 虛擬服務器)模塊判斷該請求的服務是否為已定義的集群服務。如果是,IPVS 會重新封裝數據包的 MAC 頭,將源 MAC 地址改為 Director Server 的 MAC 地址,將目標 MAC 地址改為選定的真實服務器(Real Server, RIP)的 MAC 地址。IP 頭保持不變(源 IP 為 CIP,目標 IP 為 VIP)。
- 真實服務器處理請求:由于 MAC 地址匹配,Real Server 會接收該數據包。解包后,應用程序(如 Web 服務器)發現目標 IP(VIP)配置在本機的
lo
接口上,于是處理這個請求。 - 真實服務器直接響應客戶端:處理完成后,Real Server 會構建響應報文。該報文不經過 Director Server,而是直接通過其默認網關發送給客戶端。響應報文的源 IP 地址為 VIP,目標 IP 地址為 CIP。
1.2 DR 模式的特點
基于其工作流程,DR 模式具有以下顯著特點:
- 同一網絡:Director Server 和所有 Real Server 必須位于同一個物理網絡(同一廣播域)中,以便能通過 MAC 地址進行二層通信。
- IP 地址靈活:Real Server 可以使用私有地址,也可以使用公網地址。
- 非網關角色:Director Server 僅作為流量的入口,不作為 Real Server 的網關,極大地減輕了其負擔。
- 響應直接返回:響應數據包由 Real Server 直接返回給客戶端,性能極高。這是 DR 模式高吞吐量的主要原因。
- 網關指向:Real Server 的網關必須指向能夠連接互聯網的路由器,絕不能指向 Director Server。
- 本地回環接口配置 VIP:每臺 Real Server 都需要在
lo
接口上配置 VIP 地址,以便處理目標為 VIP 的請求。
二、LVS-DR 集群部署實戰
以下是一個完整的 LVS-DR 模式部署流程。
2.1 環境準備
角色 | IP 地址 | 主機名 |
---|---|---|
客戶端 | 192.168.10.200 | client |
Director Server | 192.168.10.23 (DIP) | lvs-dr |
192.168.10.180 (VIP) | ||
Real Server 1 | 192.168.10.16 (RIP) | web01 |
Real Server 2 | 192.168.10.17 (RIP) | web02 |
NFS 共享存儲服務器 | 192.168.10.19 | nfs |
2.2 配置負載調度器(Director Server)
-
關閉防火墻與 SELinux
systemctl stop firewalld.service setenforce 0
-
加載 IP_VS 模塊并安裝管理工具
modprobe ip_vs cat /proc/net/ip_vs # 確認模塊是否加載 yum -y install ipvsadm
-
配置虛擬 IP 地址(VIP)
編輯網卡配置文件/etc/sysconfig/network-scripts/ifcfg-ens33:0
:DEVICE=ens33:0 ONBOOT=yes IPADDR=192.168.10.180 NETMASK=255.255.255.255
啟用并查看 VIP:
ifup ens33:0 ifconfig ens33:0
-
調整內核參數(
/etc/sysctl.conf
)net.ipv4.ip_forward = 0 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0 net.ipv4.conf.ens33.send_redirects = 0
使配置生效:
sysctl -p
-
配置負載分配策略
ipvsadm-save > /etc/sysconfig/ipvsadm # 初始化保存文件 systemctl start ipvsadmipvsadm -C # 清空現有規則 ipvsadm -A -t 192.168.10.180:80 -s rr # 添加虛擬服務,調度算法為輪詢(rr) ipvsadm -a -t 192.168.10.180:80 -r 192.168.10.16:80 -g # 添加 Real Server,-g 代表 DR 模式 ipvsadm -a -t 192.168.10.180:80 -r 192.168.10.17:80 -gipvsadm -ln # 查看配置,確認模式為 Route (DR)
2.3 配置節點服務器(Real Server)
以下操作需要在 web01 和 web02 上分別執行。
-
配置虛擬 IP 地址(VIP)到
lo:0
編輯文件/etc/sysconfig/network-scripts/ifcfg-lo:0
:DEVICE=lo:0 ONBOOT=yes IPADDR=192.168.10.180 NETMASK=255.255.255.255
啟用并添加路由:
ifup lo:0 ifconfig lo:0 route add -host 192.168.10.180 dev lo:0
為了重啟后依然生效,將路由命令加入
/etc/rc.local
:echo '/sbin/route add -host 192.168.10.180 dev lo:0' >> /etc/rc.local chmod +x /etc/rc.d/rc.local
-
調整內核 ARP 參數
編輯/etc/sysctl.conf
,添加以下行:net.ipv4.conf.lo.arp_ignore = 1 net.ipv4.conf.lo.arp_announce = 2 net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2
使配置生效:
sysctl -p
-
安裝服務并掛載共享存儲
yum -y install nfs-utils rpcbind httpd systemctl start httpd systemctl start rpcbind
- 在 web01 上:
mount.nfs 192.168.10.19:/opt/kgc /var/www/html echo 'this is kgc web!' > /var/www/html/index.html
- 在 web02 上:
mount.nfs 192.168.10.19:/opt/benet /var/www/html echo 'this is benet web!' > /var/www/html/index.html
- 在 web01 上:
2.4 測試驗證
在客戶端(192.168.10.200)打開瀏覽器,多次訪問 http://192.168.10.180/
。頁面內容應在 this is kgc web!
和 this is benet web!
之間交替顯示,這表明 LVS 負載均衡集群已經成功運行。
三、前期回顧
3.1 LVS 三種工作模式及其區別?
- NAT:通過網絡地址轉換實現。請求和響應都經過 Director,Director 易成為瓶頸。Real Server 可以是任何操作系統。
- DR:使用直接路由技術。只有請求經過 Director,響應直接由 Real Server 返回,性能極高。要求 Director 和 Real Server 在同一個局域網。
- TUN:通過 IP 隧道技術實現。能跨機房部署,Real Server 可以不在同一個局域網。Real Server 需要支持隧道協議。
3.2 LVS 調度算法
- 固定調度算法:輪詢(rr)、加權輪詢(wrr)、目標地址哈希(dh)、源地址哈希(sh)。
- 動態調度算法:最少連接(lc)、加權最少連接(wlc)、基于地址的最少連接(lblc)。
總結
LVS-DR 模式通過智能路由實現請求的高效分發,大幅提升服務響應能力。盡管部署時需要精細調整網絡參數,但其卓越的性能表現值得投入。本文從理論到實踐完整呈現了 LVS-DR 的部署流程,掌握這一技術后,您將能夠為企業構建更強大、更可靠的網絡服務體系。