Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux 叢集原理與 LVS 負載均衡實戰部署指南

編輯:Linux 教學

一、叢集系統核心價值與 Linux 解決方案概覽

叢集系統旨在解決三大核心需求:高可用性(HA)、高性能計算(HPC)與負載均衡。高可用性透過叢集管理軟體,在主伺服器故障時自動切換至備機,確保服務不中斷;高性能計算則利用多節點並行處理複雜運算,廣泛應用於基因分析、化學模擬等科學領域;負載均衡依據演算法將流量分散至各節點,降低單點壓力與硬體門檻。Linux 平台上的叢集方案百花齊放,其中以 LVS(Linux Virtual Server)實現 Web 服務負載均衡最為常見且成熟。

二、LVS 核心架構簡介

LVS 由章文嵩博士發起,是眾多商業叢集產品(如 Red Hat Piranha、TurboCluster)的核心基礎。其廣泛部署案例可參考官網部署頁面。LVS 提供三種負載均衡模式:NAT、DR(Direct Routing)、IP Tunneling。生產環境最推薦 DR 模式,效能最優。本文以四台同網段機器透過交換機互聯為測試環境,實際部署建議將虛擬伺服器與真實伺服器置於不同網段,兼顧效能與安全。

三、LVS-DR 模式完整配置實戰

3.1 伺服器角色與網路規劃

測試環境採用三台同規格伺服器(LVS 支援異構硬體,可依負載動態調整權重):

  • vs1(虛擬伺服器/負載均衡器):RedHat 6.2 / Kernel 2.2.19,eth0: 192.168.0.1,eth0:101 (VIP): 192.168.0.101
  • rs1(真實伺服器 1):RedHat 6.2 / Kernel 2.2.14,eth0: 192.168.0.3,dummy0 (VIP): 192.168.0.101
  • rs2(真實伺服器 2):RedHat 6.2 / Kernel 2.2.14,eth0: 192.168.0.4,dummy0 (VIP): 192.168.0.101
  • client(測試客戶端):Windows 2000,eth0: 192.168.0.200

VIP 192.168.0.101 為對外服務入口。

3.2 虛擬伺服器核心配置步驟

內核編譯與 IPVS 模組整合

  1. 下載 Linux 2.2.19 內核源碼至 /usr/src/linux
  2. 下載對應版本 LVS 內核補丁 ipvs-1.0.6-2.2.19.tar.gz 並解壓至同目錄
  3. 執行打補丁:patch -p1 < ipvs-1.0.6-2.2.19/ipvs-1.0.6-2.2.19.patch
  4. 內核配置關鍵選項(必選項標 *):
    Code maturity: [*] Prompt for development/incomplete code/drivers
    Networking: [*] Kernel/User netlink socket, [*] Routing messages, [*] Netlink device emulation
    [*] Network firewalls, [*] Socket Filtering, [*] Unix domain sockets, [*] TCP/IP networking
    [*] IP: multicasting, [*] IP: advanced router, [*] IP: firewalling
    [*] IP: transparent proxy support, [*] IP: masquerading, [*] IP: ICMP masquerading
    [*] IP: masquerading special modules support, [*] IP: masquerading virtual server support (EXPERIMENTAL)
    [*] IP Virtual Server debugging, (12) IP masquerading VS table size
    [*] IPVS: round-robin, weighted round-robin, least-connection, weighted least-connection
    [*] IPVS: locality-based least-connection, locality-based with replication
    [*] IP: optimize as router not host, [*] IP: aliasing support, [*] IP: TCP syncookie support
    
  5. 常規編譯安裝內核。注意:RedHat 官方內核常預打 LVS 補丁,可檢查 /usr/src/linux/net/ 下是否存在 ipvs* 文件判斷。

LVS 配置文件與啟動腳本生成

編寫 /etc/lvs/lvs_dr.conf:

LVS_TYPE=VS_DR
INITIAL_STATE=on
VIP=eth0:101 192.168.0.101 255.255.255.0 192.168.0.0
DIRECTOR_INSIDEIP=eth0 192.168.0.1 192.168.0.0 255.255.255.0 192.168.0.255
SERVICE=t telnet rr rs1:telnet rs2:telnet
SERVICE=t www rr rs1:www rs2:www
SERVER_VIP_DEVICE=dummy0
SERVER_NET_DEVICE=eth0

使用 configure 腳本生成 rc.lvs_dr,修改 /etc/rc.d/init.d/rc.local 加入:

echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_always_defrag
echo 10 > /proc/sys/net/ipv4/vs/debug_level

配置 NFS 共享 /etc/lvs 目錄供真實伺服器掛載,並調整 /etc/syslogd.conf 記錄核心除錯資訊至 /var/log/kernel_log。

3.3 真實伺服器配置要點

  • 啟用 telnet 與 Apache 服務,Apache 需修改 httpd.conf 監聽 VIP:Listen 192.168.0.101:80
  • 關閉 dummy0 介面的 ARP 回應(關鍵步驟),在 rc.local 加入:
    echo 1 > /proc/sys/net/ipv4/conf/all/hidden
    ifconfig dummy0 up
    ifconfig dummy0 192.168.0.101 netmask 255.255.255.0 broadcast 192.168.0.0 up
    echo 1 > /proc/sys/net/ipv4/conf/dummy0/hidden
    echo 1 > /proc/sys/net/ipv4/ip_forward
    

四、叢集驗證與測試

  1. 於 vs1、rs1、rs2 執行 /etc/lvs/rc.lvs_dr,確認 Apache 與 telnet 已啟動
  2. 客戶端測試:telnet 192.168.0.101,連續登入應輪流顯示 [guest@rs1] 與 [guest@rs2]
  3. 於 vs1 執行 ipvsadm 驗證連接分發狀態,應顯示兩台真實伺服器均有連接計數
  4. Web 測試:於 rs1/rs2 放置不同內容的 test.html,瀏覽器刷新 https://192.168.0.101/test.html 應交替顯示;或使用 lynx -dump 迴圈測試避免瀏覽器快取干擾

透過上述步驟,即可建立一套高效、可擴展的 LVS-DR 負載均衡叢集,為 Web 服務提供企業級高可用保障。

Copyright © Windows教程網 All Rights Reserved