Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

CentOS 7 部署 LVS(IPVS)負載均衡:從核心模組到 ipvsadm 完整安裝

編輯:Linux 系統常見問題解答

LVS(Linux Virtual Server)工作於核心空間的 NETFILTER HOOK,以 IPVS 模組實現四層負載均衡,效能遠超應用層方案(Nginx/HAProxy)。本文記錄在 CentOS 7.9 上從零構建 LVS Director 的完整流程:核心模組驗證、依賴解決、ipvsadm 編譯安裝、模組持久化與驗證。

架構速覽

Client → [VIP] → LVS Director (IPVS) → Real Server 1..N
                ↑
           ipvsadm 管理工具

一、驗證核心 IPVS 模組

# 1. 確認核心已編入 IPVS(CentOS 7 內核 3.10 預設包含)
lsmod | grep -E 'ip_vs|nf_conntrack'

# 2. 若無,手動載入並持久化
modprobe -- ip_vs ip_vs_rr ip_vs_wrr ip_vs_sh nf_conntrack_ipv4
cat > /etc/modules-load.d/ipvs.conf <<'EOF'
ip_vs
ip_vs_rr
ip_vs_wrr
ip_vs_sh
nf_conntrack_ipv4
EOF

二、安裝編譯依賴

yum install -y kernel-devel-$(uname -r) gcc make libnl3-devel libnl3 popt-devel openssl-devel

# 驗證版本一致
rpm -q kernel-devel
# kernel-devel-3.10.0-1160.el7.x86_64
uname -r
# 3.10.0-1160.el7.x86_64  ← 必須完全一致

三、建立核心原始碼軟連結(編譯 ipvsadm 必備)

KVER=$(uname -r)
ln -sf /usr/src/kernels/${KVER} /usr/src/linux
ls -l /usr/src/linux
# lrwxrwxrwx 1 root root 38 Mar 20 10:00 /usr/src/linux -> /usr/src/kernels/3.10.0-1160.el7.x86_64

四、下載並編譯 ipvsadm

cd /usr/local/src
IPVSADM_VER=1.30  # 對應 kernel 3.10+
wget https://www.linuxvirtualserver.org/software/kernel-3.10/ipvsadm-${IPVSADM_VER}.tar.gz
tar xzf ipvsadm-${IPVSADM_VER}.tar.gz
cd ipvsadm-${IPVSADM_VER}

make -j$(nproc) && make install
# 安裝至 /usr/sbin/ipvsadm

五、驗證安裝

ipvsadm --version
# ipvsadm v1.30 (2020-01-01), compiled with kernel 3.10.0-1160.el7.x86_64

ipvsadm -L -n
# IP Virtual Server version 1.2.1 (size=4096)
# Prot LocalAddress:Port Scheduler Flags
#   -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

六、常見編譯錯誤與解決

錯誤訊息原因解決
kernel source not foundkernel-devel 版本不符或未安裝yum install kernel-devel-$(uname -r) 並重建軟連結
libnl3 not found缺少 libnl3-develyum install libnl3-devel
popt.h not found缺少 popt-develyum install popt-devel
undefined reference to `ipvs_*核心未載入 IPVS 模組modprobe ip_vs 並加入 modules-load.d

七、生產環境建議

  • ✅ 使用 yum install ipvsadm 直接安裝 RPM(CentOS Base/Extras 源已收錄),僅在需最新版或特定 patch 時自行編譯
  • ✅ 啟用核心參數:sysctl -w net.ipv4.ip_forward=1、net.ipv4.vs.conntrack=1(需 nf_conntrack)
  • ✅ 監控指標:ipvsadm -L --stats --rate --exact 觀察 InActConn、OutBytes、調度器佇列
  • ✅ 高可用:搭配 Keepalived 實現 VRRP 漂移 VIP,避免 Director 單點

結語: LVS + Keepalived 是四層負載均衡的黃金組合,單 Director 處理 100k+ 連線輕輕鬆鬆。核心模組與 ipvsadm 版本對齊是安裝成功的關鍵——永遠先 uname -r 再 yum install kernel-devel-$(uname -r)。

Copyright © Windows教程網 All Rights Reserved