LVS-DR負載均衡群集深度實踐:高性能架構設計與排障指南

目錄

一、核心原理與理論

二、背景與架構設計

三、全流程部署步驟

1. NFS共享存儲配置(192.168.7.100)

?2. Real Server節點配置(四臺服務器)

3. Director服務器配置

四、常見問題解決方案

五、生產環境總結

拓撲示意圖:


一、核心原理與理論

LVS-DR(Direct Routing)模式通過MAC地址改寫實現高效轉發:

  • 數據流向

  • LVS-DR(Direct Routing)工作流程

    • 請求處理

      • 客戶端訪問VIP(172.16.16.172)

      • Director接收請求,通過調度算法選擇Real Server

      • 修改目標MAC地址(不改變IP)轉發至Real Server

      • Real Server通過lo:0接口直接響應客戶端

    • 關鍵技術

      • ARP抑制:Real Server隱藏VIP(arp_ignore=1, arp_announce=2

      • 直接路由:響應流量不經過Director

      • 雙網卡隔離:公網(ens33)處理客戶端請求,內網(ens37)連接存儲


二、背景與架構設計

網絡規劃

設備ens33 (公網)ens37 (存儲內網)
Director172.16.16.171192.168.7.171
Real Server×4172.16.16.131-134192.168.7.131-134
NFS Server-192.168.7.100
VIP172.16.16.172-

核心優勢

  • 吞吐量提升:響應流量直返客戶端,避免Director瓶頸

  • 安全隔離:存儲網絡獨立于公網

  • 數據一致性:NFS共享Web根目錄

場景需求

  • 公網訪問VIP:172.16.16.0/24(ens33)

  • 存儲內網通信:192.168.7.0/24(ens37)

  • 共享存儲:NFS服務器發布/var/www/html

架構優勢

  • 解耦網絡流量:公網/內網物理隔離

  • 數據一致性:NFS共享Web根目錄

  • 高性能:DR模式避免Director帶寬瓶頸


三、全流程部署步驟

1. NFS共享存儲配置(192.168.7.100)

# 安裝NFS服務
yum install -y nfs-utils rpcbind# 創建共享目錄
mkdir -p /var/www/html
chmod 777 /var/www/html# 配置訪問權限(/etc/exports)
echo "/var/www/html 172.16.16.0/24(rw,sync,no_root_squash)" >> /etc/exports
echo "/var/www/html 192.168.7.0/24(rw,sync,no_root_squash)" >> /etc/exports# 啟動服務
systemctl enable --now rpcbind nfs-server
firewall-cmd --add-service=nfs --permanent
firewall-cmd --reload

?2. Real Server節點配置(四臺服務器)

# 掛載NFS存儲
yum install -y nfs-utils
mkdir -p /var/www/html
mount -t nfs 192.168.7.100:/var/www/html /var/www/html
echo "192.168.7.100:/var/www/html /var/www/html nfs defaults 0 0" >> /etc/fstab# 配置VIP到lo:0
echo "DEVICE=lo:0" > /etc/sysconfig/network-scripts/ifcfg-lo:0
echo "IPADDR=172.16.16.172" >> /etc/sysconfig/network-scripts/ifcfg-lo:0
echo "NETMASK=255.255.255.255" >> /etc/sysconfig/network-scripts/ifcfg-lo:0
ifup lo:0# 添加永久路由
echo "route add -host 172.16.16.172 dev lo:0" >> /etc/rc.local
chmod +x /etc/rc.d/rc.local
route add -host 172.16.16.172 dev lo:0# 配置ARP抑制
echo "net.ipv4.conf.all.arp_ignore = 1" >> /etc/sysctl.conf
echo "net.ipv4.conf.all.arp_announce = 2" >> /etc/sysctl.conf
echo "net.ipv4.conf.lo.arp_ignore = 1" >> /etc/sysctl.conf
echo "net.ipv4.conf.lo.arp_announce = 2" >> /etc/sysctl.conf
sysctl -p# 安裝Web服務(以Nginx為例)
yum install -y nginx
systemctl enable --now nginx

3. Director服務器配置

# 配置VIP到ens33:0
echo "DEVICE=ens33:0" > /etc/sysconfig/network-scripts/ifcfg-ens33:0
echo "IPADDR=172.16.16.172" >> /etc/sysconfig/network-scripts/ifcfg-ens33:0
echo "NETMASK=255.255.255.255" >> /etc/sysconfig/network-scripts/ifcfg-ens33:0
ifup ens33:0# 禁用ICMP重定向
echo "net.ipv4.conf.all.send_redirects = 0" >> /etc/sysctl.conf
echo "net.ipv4.conf.ens33.send_redirects = 0" >> /etc/sysctl.conf
sysctl -p# 加載IP_VS模塊
modprobe ip_vs# 安裝管理工具
yum install -y ipvsadm# 配置LVS規則
ipvsadm -C
ipvsadm -A -t 172.16.16.172:80 -s rr
ipvsadm -a -t 172.16.16.172:80 -r 172.16.16.131:80 -g -w 1
ipvsadm -a -t 172.16.16.172:80 -r 172.16.16.132:80 -g -w 1
ipvsadm -a -t 172.16.16.172:80 -r 172.16.16.133:80 -g -w 1
ipvsadm -a -t 172.16.16.172:80 -r 172.16.16.134:80 -g -w 1# 保存配置
ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl enable ipvsadm

?4. 驗證配置

# 在客戶端訪問測試
curl http://172.16.16.172# 查看連接分發
ipvsadm -Ln --stats# 檢查Real ServerARP抑制
sysctl -a | grep arp_ignore# 測試NFS寫入
touch /var/www/html/testfile

?


?

四、常見問題解決方案

故障現象診斷方法解決方案
VIP無法訪問ipvsadm -Ln查看規則狀態檢查Director的VIP配置和路由
所有請求分配到同一節點檢查調度算法(-s參數)確認使用rr輪詢而非sh等哈希算法
NFS寫入權限被拒絕showmount -e 192.168.7.100檢查exports的no_root_squash配置
節點服務器無法響應VIP請求tcpdump -i lo host 172.16.16.172驗證ARP抑制參數是否生效
存儲網絡延遲高ping -s 8972 192.168.7.100調整MTU:ip link set ens37 mtu 9000

五、生產環境總結

性能優化建議

  1. 網卡調優

    # 啟用巨幀(存儲網絡)
    ip link set ens37 mtu 9000
    ethtool -G ens37 rx 4096 tx 4096
  2. 內核參數優化

    # Director防止端口耗盡
    echo "net.ipv4.ip_local_port_range = 1024 65000" >> /etc/sysctl.conf# Real Server連接復用
    echo "net.ipv4.tcp_tw_reuse = 1" >> /etc/sysctl.conf
  3. 會話保持方案

    # 啟用源IP哈希調度
    ipvsadm -E -t 172.16.16.172:80 -s sh
    ???????

容災設計

  • 使用Keepalived實現Director雙機熱備

  • 存儲網絡配置bonding冗余

  • 實時監控:watch -n 1 "ipvsadm -Ln --stats"

?經驗總結:在雙網卡架構中,務必關閉存儲網卡的ARP代理:

echo "net.ipv4.conf.ens37.proxy_arp = 0" >> /etc/sysctl.conf

拓撲示意圖

[ 客戶端 ]|| (訪問 172.16.16.172)|
[ Director ]|      ||      | (ens37: 192.168.7.0/24)|      ||    [ NFS Server ]|      (192.168.7.100)|| (調度流量)|
[Real Server1]--[Real Server2]--[Real Server3]--[Real Server4]
(172.16.16.131) (172.16.16.132) (172.16.16.133) (172.16.16.134)

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/86253.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/86253.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/86253.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Hall 定理學習筆記

定義 對于一張二分圖 G ( V , E ) G(V,E) G(V,E),設其左右部點集分別為 V L , V R V_L,V_R VL?,VR?,不妨認為 ( ∣ V L ∣ ≤ ∣ V R ∣ ) (|V_L|\leq |V_R|) (∣VL?∣≤∣VR?∣),定義該二分圖的一組 完備匹配 為左部 ∣ V L ∣ |V…

使用jmeter進行websocket連接測試

一、WebSocket Sampler 插件安裝 下載地址:http://download.csdn.net/detail/easternunbeaten/9753723 下載后,解壓直接拷貝到Jmeter的lib下的ext文件夾里面,重啟Jmeter,Sanpler下多一個Websocket選項 二、WebSocket 取樣器字段介紹 1、W…

網絡安全漏洞掃描是什么?如何識別目標進行掃描?

,現在大家對于網絡安全漏洞掃描那可是相當在意這網絡安全,如今在咱這個大時代里可是相當重要的一個事咧!因為,隨著互聯網蹭蹭地發展,網絡攻擊還有數據泄露這類威脅那真是越來越多越來越大! 咱先來說說啥叫…

NoSQL之Redis配置優化

NoSQL之Redis配置優化 一、Redis1.關系數據庫與非關系型數據庫關系型數據庫非關系型數據庫非關系型數據庫產生背景 2.Redis基礎Redis簡介Redis安裝部署配置參數 3.Redis命令工具redis-cli命令行工具redis-benchmark 測試工具 4.Redis數據庫常用命令key相關命令(1)keys&#xff…

《HTTP權威指南》 第14章 安全HTTP

安全HTTP需要提供的功能: 服務器認證客戶端認證完整性加密效率普適性管理的可擴展性適應性在社會上的可行性 HTTPS HTTPS方案的URL以https://開頭,區別于https://。 HTTPS在HTTP的基礎上使用SSL或者TLS(傳輸層安全)進行加密。 …

Kubernetes、Docker Swarm 與 Nomad 容器編排方案深度對比與選型指導

Kubernetes、Docker Swarm 與 Nomad 容器編排方案深度對比與選型指導 在微服務和云原生時代,容器編排已成為保證應用可用性與擴展性的核心技術。本文將從問題背景出發,深入對比 Kubernetes、Docker Swarm 和 Nomad 三大主流編排方案,分析各自…

c++開源庫項目框架匯總

Webbench Webbench是一個在linux下使用的非常簡單的網站壓測工具。它使用fork()模擬多個客戶端同時訪問我們設定的URL,測試網站在壓力下工作的性能,最多可以模擬3萬個并發連接去測試網站的負載能力。Webbench使用C語言編寫, 代碼實在太簡潔,源…

【LLaMA-Factory 實戰系列】三、命令行篇 - YAML 配置、高效微調與評估 Qwen2.5-VL

【LLaMA-Factory 實戰系列】三、命令行篇 - YAML 配置、高效微調與評估 Qwen2.5-VL 1. 引言2. 為什么從 WebUI 轉向命令行?3. 準備工作(回顧)4. 核心:創建并理解訓練配置文件4.1 選擇并復制基礎模板4.2 逐一解析與修改配置文件4.3…

3、NLP黃金九步法(問題定義-數據獲取-數據探索)

🎯 為什么要學習NLP流程? 想象一下,你要做一道菜🍳。如果沒有清晰的步驟,隨便把食材扔進鍋里,結果會怎樣?NLP項目也是如此! 就像做菜有固定流程一樣: 買菜 → 洗菜 → …

docker 安裝DM8達夢數據庫

搭建Docker 環境 查看docker 是否安裝 yum list installed | grep docker如若未安裝則安裝docker 環境 yum -y install docker啟動Docker systemctl start docker查看docker啟動結果 systemctl status docker搭建達夢數據庫 下載鏡像 傳送門 #導入鏡像 docker load -i…

Chrome MCP Server:AI驅動瀏覽器自動化測試實戰「喂飯教程」

Chrome MCP Server:AI驅動瀏覽器自動化測試實戰 一、項目簡介二、原理剖析1. 架構總覽三、安裝1. 環境準備2. 安裝步驟2.1 下載 Chrome 擴展2.2 安裝 mcp-chrome-bridge2.3 加載擴展2.4 啟動 MCP Server2.5 配置 AI 客戶端四、Chrome MCP Server API 參考五、用法實戰1. 與 AI…

.NET多線程任務實現的幾種方法及線程等待全面分析

文章目錄 1. 引言2. .NET多線程編程基礎2.1 線程概念回顧2.2 .NET線程模型概述 3. 多線程任務實現方法3.1 Thread類實現3.2 ThreadPool實現3.3 Task Parallel Library (TPL)3.4 Parallel類3.5 BackgroundWorker組件3.6 Async/Await模式3.7 各種方法的比較與選擇 4. 線程等待機制…

Typecho handsome訪客統計插件最新版VistorLoggerPro

文章目錄 介紹功能特點頁面預覽安裝及更新方法系統要求使用說明基本使用(Handsome主題適用) 隱私保護技術實現更新日志最后 介紹 這是一個為 Typecho 博客系統開發的訪客統計插件,基于原版的VistorLogger修改版本。該插件提供了詳細的訪問統…

藍橋杯備賽篇(上) - 參加藍橋杯所需要的基礎能力 1(C++)

目錄 一、(工具)DevC的安裝和使用1.1 DevC介紹1.2 下載1.3 部分使用技巧1.3.1 快捷鍵介紹1.3.2 調試快捷鍵 二、第一個C程序2.1 基礎程序2.2 main函數2.3 字符串2.4 頭文件2.5 cin和cout初識2.6 名字空間 三、注釋四、題目練習3.1 輸出第二個整數3.2 字符…

Bugku-CTF-web(適合初學者)

今天刷了一下 Bugku-CTF-web 的1-10題,比較簡單,比較娛樂,基本上看看源代碼就可以了,非常適合初學者。能夠學習到base64編碼,unicode編碼,dirb web目錄遍歷,SourceLeakHacker 備份文件遍歷&…

【實時Linux實戰系列】基于實時Linux的音頻處理應用開發

在實時系統中,音頻處理應用(如實時音頻效果處理、語音通信等)需要低延遲和高精度的時間控制。實時Linux通過優化內核調度和提供高效的I/O操作,能夠滿足音頻處理對實時性的嚴格要求。掌握基于實時Linux的音頻處理應用開發對于開發者…

Linux中信號的三種產生方式

在 Linux 中,信號(Signal)是一種進程間通信的機制,用于通知進程發生了某種事件。理解信號的來源對于開發可靠、健壯的程序至關重要。本文將介紹三種常見的信號產生方式,包括:kill 命令、鍵盤輸入&#xff0…

Android15啟動icon界面的背景圖顏色

Android15啟動icon界面的背景圖顏色 在一加Ace 5啟動時有個圖標在中間的&#xff0c;它界面的背景圖是灰色的&#xff0c;不好看&#xff0c;想改為白色。 解決方案&#xff1a; 在app下的AndroidManifest.xml文件的<application這個標簽的android:theme增加&#xff1a;…

用福昕閱讀器打開pdf文件,整個程序窗口自動縮小的問題

原因&#xff1a; 這個問題&#xff0c;其實是pdf自帶了某個縮放比例&#xff0c;與窗口的比例不一致&#xff0c;因此會進行窗口縮放。 解決方法: 用acrobat&#xff08;我沒有找到如何用福昕閱讀器進行設置的方法&#xff09;&#xff0c;打開【文檔屬性】&#xff0c;然后打…

Windows環境Browser-Use平臺部署與AI自動化遠程訪問實現過程

文章目錄 前言1. 安裝Ollama2. Gemma3模型安裝與運行3. 虛擬環境準備3.1 安裝Python3.2. 安裝conda 4. 本地部署Brower Use WebUI4.1 創建一個新conda環境4.2 克隆存儲庫4.3 安裝依賴環境4.4 安裝瀏覽器自動化工具4.5 修改配置信息 5. 本地運行測試6. 安裝內網穿透6.1 配置公網…