LVS (Linux Virtual Server) 是章文嵩博士發起的自由軟體專案,採用 IP 負載均衡技術,將請求分發至後端 Real Server 叢集。核心包含負載調度器、伺服器池、共享儲存三大元件。本文深度解析 VS/NAT、VS/TUN、VS/DR 三種模式差異與適用場景。
架構概覽
三種模式詳細比較
1. VS/NAT (Network Address Translation)
- 原理:Director 修改封包目的 IP 為 Real Server IP,回覆封包經 Director 回傳
- 優點:Real Server 可用私有 IP、任意支援 TCP/IP 的 OS、Director 亦可兼任 Real Server
- 缺點:請求/回覆皆經 Director,易成瓶頸;約支援 10-20 台 Real Server (早期測試數據)
- 適用:中小型叢集、異構 OS 環境
2. VS/TUN (IP Tunneling)
- 原理:Director 將請求封裝在新 IP 封包轉發,Real Server 解封後直接回覆客戶端
- 優點:Director 僅處理請求,可支援 100+ Real Server,吞吐量極大提升
- 缺點:所有 Real Server 必須支援 IP Tunneling/Encapsulation 協定(主要限 Linux)
- 適用:大型叢集、跨地域部署、高並發場景
3. VS/DR (Direct Routing)
- 原理:Director 僅修改 MAC 位址在同一實體網段轉發,Real Server 直接路由回覆
- 優點:無 IP 封裝開銷、效能最佳、Director 不成瓶頸
- 缺點:Director 與 Real Server 必須在同一實體網段、需配置 Non-ARP 裝置 (lo/tunl) 綁定 VIP
- 適用:高效能需求、同機房部署、現代主流選擇
效能對比總結表
| 指標 | VS/NAT | VS/TUN | VS/DR |
| Real Server 最大數量 | ~20 | 100+ | 100+ |
| Director 負載 | 高 (雙向流量) | 低 (單向) | 最低 (單向+無封裝) |
| Real Server OS 限制 | 無 | 需支援 IP Tunnel | 需支援 Non-ARP |
| 網路拓撲要求 | 較鬆 | 較鬆 | 同一實體網段 |
| VIP 可見性 | 僅 Director | 僅 Director | Director 可見,RS 不可見 |
選型建議
- 中小規模、異構環境 → VS/NAT
- 大規模、跨機房、全 Linux → VS/TUN
- 高效能、同機房、追求極致吞吐 → VS/DR (最推薦)
實際部署時尚需考慮防火牆、ARP 抑制、健康檢查、會話保持等細節,建議搭配 Keepalived 實現 Director 高可用。