LVS與Keepalived詳解(二)LVS負載均衡實現實操

文章目錄

  • 前言
  • 一、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 模式的關鍵:

  1. 客戶端發送請求:客戶端(CIP)向負載均衡器(Director Server)的虛擬 IP(VIP)發送請求報文。報文源地址為 CIP,目標地址為 VIP。
  2. 負載均衡器接收并轉發:請求報文到達 Director Server 的內核空間。IPVS(IP 虛擬服務器)模塊判斷該請求的服務是否為已定義的集群服務。如果是,IPVS 會重新封裝數據包的 MAC 頭,將源 MAC 地址改為 Director Server 的 MAC 地址,將目標 MAC 地址改為選定的真實服務器(Real Server, RIP)的 MAC 地址。IP 頭保持不變(源 IP 為 CIP,目標 IP 為 VIP)。
  3. 真實服務器處理請求:由于 MAC 地址匹配,Real Server 會接收該數據包。解包后,應用程序(如 Web 服務器)發現目標 IP(VIP)配置在本機的 lo 接口上,于是處理這個請求。
  4. 真實服務器直接響應客戶端:處理完成后,Real Server 會構建響應報文。該報文不經過 Director Server,而是直接通過其默認網關發送給客戶端。響應報文的源 IP 地址為 VIP,目標 IP 地址為 CIP。

1.2 DR 模式的特點

基于其工作流程,DR 模式具有以下顯著特點:

  1. 同一網絡:Director Server 和所有 Real Server 必須位于同一個物理網絡(同一廣播域)中,以便能通過 MAC 地址進行二層通信。
  2. IP 地址靈活:Real Server 可以使用私有地址,也可以使用公網地址。
  3. 非網關角色:Director Server 僅作為流量的入口,不作為 Real Server 的網關,極大地減輕了其負擔。
  4. 響應直接返回:響應數據包由 Real Server 直接返回給客戶端,性能極高。這是 DR 模式高吞吐量的主要原因。
  5. 網關指向:Real Server 的網關必須指向能夠連接互聯網的路由器,絕不能指向 Director Server。
  6. 本地回環接口配置 VIP:每臺 Real Server 都需要在 lo 接口上配置 VIP 地址,以便處理目標為 VIP 的請求。

二、LVS-DR 集群部署實戰

以下是一個完整的 LVS-DR 模式部署流程。

2.1 環境準備

角色IP 地址主機名
客戶端192.168.10.200client
Director Server192.168.10.23 (DIP)lvs-dr
192.168.10.180 (VIP)
Real Server 1192.168.10.16 (RIP)web01
Real Server 2192.168.10.17 (RIP)web02
NFS 共享存儲服務器192.168.10.19nfs

2.2 配置負載調度器(Director Server)

  1. 關閉防火墻與 SELinux

    systemctl stop firewalld.service
    setenforce 0
    
  2. 加載 IP_VS 模塊并安裝管理工具

    modprobe ip_vs
    cat /proc/net/ip_vs # 確認模塊是否加載
    yum -y install ipvsadm
    
  3. 配置虛擬 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
    
  4. 調整內核參數(/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

  5. 配置負載分配策略

    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 上分別執行。

  1. 配置虛擬 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
    
  2. 調整內核 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

  3. 安裝服務并掛載共享存儲

    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
      

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 的部署流程,掌握這一技術后,您將能夠為企業構建更強大、更可靠的網絡服務體系。


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

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

相關文章

歸一化實現原理

歸一化(Normalization)是一種將數據轉換到相同尺度的預處理技術,它通常用于讓不同特征(或數據項)具有相同的量綱或范圍。在聯邦學習中,歸一化可以用來處理非獨立同分布(Non-IID)**數…

企業級實戰:構建基于Qt、C++與YOLOv8的模塊化工業視覺檢測系統

一、概述 在追求高效與精密的現代制造業中,自動化光學檢測(AOI)已成為保障產品質量的核心技術。傳統的質檢流程往往受限于人工效率與主觀判斷,難以滿足大規模、高精度的生產需求。本文旨在研發一套完整的、企業級的工業視覺異常檢…

【目標檢測】metrice_curve和loss_curve對比圖可視化

代碼如下: import warnings warnings.filterwarnings(ignore)import os import pandas as pd import numpy as np import matplotlib.pylab as pltpwd os.getcwd()names [model1, model2, model3,ours]plt.figure(figsize(10, 10))plt.subplot(2, 2, 1) for i in …

【LeetCode hot100|Week2】滑動窗口,子串

筆記用于個人復習和鞏固,題解非原創,參考LeetCode官方題解以及各個大佬的解法,希望給大家帶來幫助,同時筆記也能督促我學習進步 這周主要把滑動窗口和子串的題目刷了一遍 文章目錄Week2D1 滑動窗口209. 長度最小的子數組713. 乘積…

vue2純前端對接海康威視攝像頭實現實時視頻預覽

vue2純前端對接海康威視攝像頭實現實時視頻預覽一、環境準備二、代碼集成1.1 準備webrtcstreamer.js,粘貼即用,不用做任何修改1.2 封裝視頻組件,在需要視頻的地方引入此封裝的視頻組件即可,也是粘貼即用,注意其中impor…

Android 設置禁止截圖和禁止長截圖

1.禁止截圖 在 Activity 代碼中 , 可以在調用 setContentView 函數之前 ,為 Window 窗口對象 設置 LayoutParams.FLAG_SECURE 標志位 , 可以禁止對本界面進行截屏 ,Window 窗口對象 , 可通過 getWindow 方法獲取 ,核心代碼如下 :getWindow().setFlags(LayoutParams.FLAG_SECUR…

AR 巡檢在工業的應用|阿法龍XR云平臺

AR 巡檢的應用覆蓋電力、石油化工、智能制造、軌道交通、冶金等對設備可靠性和安全性要求極高的行業,具體場景包括:電力行業變電站內設備的狀態檢查:通過 AR 眼鏡掃描設備,實時顯示設備額定參數、歷史故障記錄、實時傳感器數據&am…

【C++】STL詳解(七)—stack和queue的介紹及使用

? 堅持用 清晰易懂的圖解 代碼語言, 讓每個知識點都 簡單直觀 ! 🚀 個人主頁 :不呆頭 CSDN 🌱 代碼倉庫 :不呆頭 Gitee 📌 專欄系列 : 📖 《C語言》🧩 《…

深度學習周報(9.8~9.14)

目錄 摘要 Abstract 1 LSTM相關網絡總結與對比 1.1 理論總結 1.2 代碼運行對比 2 量子計算入門 3 總結 摘要 本周首先總結了LSTM、Bi-LSTM與GRU的區別與優缺點,對比了三者實戰的代碼與效果,還另外拓展了一些循環神經網絡變體(包括窺視…

Quat 四元數庫使用教程:應用場景概述

基礎概念 四元數是一個包含四個元素的數組 [x, y, z, w],其中 x,y,z表示虛部,w 表示實部。單位四元數常用于表示3D空間中的旋轉。 1. 創建和初始化函數 create() - 創建單位四元數 應用場景:初始化一個新的四元數對象,通常作為其他…

【Java后端】Spring Boot 多模塊項目實戰:從零搭建父工程與子模塊

如何用 Spring Boot 搭建一個父工程 (Parent Project),并在其中包含多個子模塊 (Module),適合企業級項目或者需要分模塊管理的場景。Spring Boot 多模塊項目實戰:從零搭建父工程與子模塊在日常開發中,我們經常會遇到這樣的需求&am…

企業級AI會議系統技術實現:快鷺如何用AI重構會議全流程

摘要 本文深度解析快鷺AI會議系統的核心技術架構,重點探討其在語音識別、自然語言處理、數據集成和安全防護等方面的技術實現。通過對比傳統會議系統的技術痛點,分析快鷺AI如何通過技術創新實現會議籌備時間減少67%、數據調取速度提升100倍的顯著效果。…

【CSS學習筆記3】css特性

1css三大特性 1.1層疊性:就近原則,最新定義的樣式 1.2繼承性:子標簽集成父標簽的樣式,如文本和字號 行高的繼承:不加單位指的是當前文字大小的倍數 body {font: 12px/1.5 Microsoft YaHei;color: #be1313;} div {…

[C語言]常見排序算法①

1.排序的概念及常見的排序算法排序在咱們日常生活中十分的常見,就好比是網上購物的時候通常能夠選擇按照什么排序,比如價格、評論數量、銷量等。那么接下來咱們就來了解一些關于排序的概念。排序:所謂排序,就是使一串記錄&#xf…

文獻閱讀筆記:RS電子戰測試與測量技術文檔

信息來源:羅德與施瓦茨(Rohde & Schwarz)公司關于電子戰(Electronic Warfare, EW)測試與測量解決方案專業技術文檔。 該文檔由臺灣地區應用工程師Mike Wu撰寫,核心圍繞電子戰基礎、雷達系統、實戰應用及…

別再糾結 Postman 和 Apifox 了!這款開源神器讓 API 測試更簡單

別再糾結 Postman 和 Apifox 了!這款開源神器讓 API 測試更簡單🔥 作為一名開發者,你是否還在為選擇 API 測試工具而糾結?Postman 太重、Apifox 要聯網、付費功能限制多?今天給大家推薦一款完全免費的開源替代方案 ——…

微調神器LLaMA-Factory官方保姆級教程來了,從環境搭建到模型訓練評估全覆蓋

1. 項目背景 開源大模型如LLaMA,Qwen,Baichuan等主要都是使用通用數據進行訓練而來,其對于不同下游的使用場景和垂直領域的效果有待進一步提升,衍生出了微調訓練相關的需求,包含預訓練(pt)&…

創建其他服務器賬號

? 在 /home74 下創建新用戶的完整步驟1. 創建用戶并指定 home 目錄和 shellsudo useradd -m -d /home74/USERNAME -s /bin/bash USERNAME-m:自動創建目錄并復制 /etc/skel 默認配置文件(.bashrc 等)。-d:指定用戶 home 路徑&…

【WebGIS】Vue3使用 VueLeaflet + 天地圖 搭建地圖可視化平臺(基礎用法)

初始化 創建項目 nodejs 18.0.6npm 9.5.1 引入地圖服務 VueLeaflet GitHub - vue-leaflet/vue-leaflet: vue-leaflet 與 vue3 兼容 Vue Leaflet (vue2-leaflet) package.josn安裝版本 直接添加四個依賴 {// ..."scripts": {// ...},"depen…

OpenCV 開發 -- 圖像閾值處理

文章目錄[toc]1 基本概念2 簡單閾值處理cv2.threshold3 自適應閾值處理cv2.adaptiveThreshold更多精彩內容👉內容導航 👈👉OpenCV開發 👈1 基本概念 圖像閾值處理(Thresholding)是圖像處理中的一種基本技術…