通俗易懂版知識點:Keepalived + LVS + Web + NFS 高可用集群到底是干什么的?

實驗開始前,先搞懂為什么要部署該集群?

這個方案的目標是讓網站?永不宕機,即使某臺服務器掛了,用戶也感覺不到。它主要涉及?負載均衡(LVS)?+?高可用(Keepalived)?+?共享存儲(NFS),下面用最易懂的方式解釋每個部分的作用和關鍵知識點。


1. Keepalived(高可用 VIP 管理)

作用:讓兩臺服務器(主+備)共同管理一個?虛擬IP(VIP),如果主服務器掛了,備服務器自動接管這個IP,用戶無感知。

核心知識點

  • VRRP協議(類似"選舉"機制):

    • 主服務器(Master)平時持有VIP,并不斷向備服務器(Backup)發送心跳包。

    • 如果備服務器收不到心跳,就認為主服務器掛了,自己接管VIP。

  • 健康檢查

    • Keepalived 可以監控 LVS 或 Web 服務是否正常,如果發現服務掛了,就自動切換。

  • 配置示例

    vrrp_instance VI_1 {state MASTER    # 主服務器是MASTER,備服務器是BACKUPinterface eth0  # 網卡名稱virtual_router_id 51  # 主備必須一致priority 100    # 主服務器優先級高(比如100),備服務器低(比如90)virtual_ipaddress {192.168.1.100  # 虛擬IP(VIP),用戶訪問這個IP}
    }


2. LVS(負載均衡,分攤流量)

作用:把用戶請求?均勻分發?到多臺 Web 服務器,避免單臺服務器壓力過大。

核心知識點

  • 三種工作模式(最常用的是DR模式)

    • DR模式(直接路由)(性能最好):

      • LVS 只修改請求的MAC地址,讓數據包直接返回給用戶,不經過LVS。

    • NAT模式(較慢):

      • LVS 修改IP地址,所有流量都要經過它,容易成為瓶頸。

    • TUN模式(IP隧道,適用于跨機房):

      • 用IP封裝技術,讓請求可以跨網絡傳輸。

  • 調度算法

    • rr(輪詢):依次分發給每臺服務器。

    • wrr(加權輪詢):給性能好的服務器更多請求。

    • lc(最少連接):誰當前連接數少,就發給誰。

  • 配置示例(DR模式)

    ipvsadm -A -t 192.168.1.100:80 -s rr  # 對VIP的80端口使用輪詢
    ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.101:80 -g  # 添加Web服務器1(DR模式)
    ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.102:80 -g  # 添加Web服務器2


3. Web服務器(Nginx/Apache)

作用:真正處理用戶請求的服務器,多臺Web服務器通過LVS分攤流量。

核心知識點

  • 所有Web服務器內容要一致

    • 通過?NFS 共享存儲?或者?rsync同步?保證文件一致。

  • Session會話保持(如果網站需要登錄):

    • 方法1:用?ip_hash(Nginx)讓同一用戶始終訪問同一臺Web服務器。

    • 方法2:用?Redis?存儲Session,所有Web服務器共用。

  • 健康檢查

    • LVS 或 Keepalived 會定期檢查Web服務器是否存活,掛了的機器會被踢出集群。


4. NFS(共享存儲,讓多臺Web服務器用同一套文件)

作用:所有Web服務器掛載同一個NFS目錄,保證網站內容一致(比如上傳的圖片、配置文件等)。

核心知識點

  • NFS服務器配置

    # NFS服務器(假設IP是192.168.1.200)
    vim /etc/exports
    /data/web 192.168.1.0/24(rw,sync,no_root_squash)  # 允許Web服務器讀寫/data/web

  • Web服務器掛載NFS

    mount -t nfs 192.168.1.200:/data/web /var/www/html

  • 注意事項

    • NFS單點故障:如果NFS服務器掛了,所有Web服務器都會受影響!解決方案:

      • NFS + DRBD(實時同步到另一臺備份NFS)

      • 改用分布式存儲(如GlusterFS、Ceph)


整體架構圖



常見問題 & 優化

  1. LVS DR模式ARP問題

    • 要在Web服務器上隱藏VIP,避免它們響應ARP請求:

      echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
      echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
  2. NFS性能慢

    • 可以換用?GlusterFS?或?Ceph?這類分布式存儲。

  3. Session不一致

    • 用Redis存Session,所有Web服務器共用。


總結

  • Keepalived?= 高可用,VIP自動切換(主備模式)。

  • LVS?= 負載均衡,把請求分發給多臺Web服務器。

  • Web服務器?= 真正處理請求的機器,多臺保證冗余。

  • NFS?= 共享存儲,讓所有Web服務器數據一致。

這樣,即使某臺Web服務器、LVS、甚至Keepalived主節點掛了,整個網站仍然可以正常訪問! 🚀

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

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

相關文章

Qt中解決UI線程阻塞導致彈窗無法顯示的兩種方法

在Qt應用程序開發中,我們經常會遇到這樣的問題:當執行一個耗時操作時,整個界面會卡住,無法響應任何用戶操作,甚至連一個簡單的提示彈窗都無法正常顯示。本文將介紹兩種解決這個問題的方法,并通過完整的代碼示例進行說明。 問題描述 先來看一個常見的錯誤示例: #inclu…

2025年中國DevOps工具選型指南:主流平臺能力橫向對比

在數字化轉型縱深發展的2025年,中國企業的DevOps工具選型呈現多元化態勢。本文從技術架構、合規適配、生態整合三個維度,對Gitee、阿里云效(云效DevOps)、GitLab CE(中國版)三大主流平臺進行客觀對比分析&a…

isp流程介紹(yuv格式階段)

一、前言介紹 前面兩章里面,已經分別講解了在Raw和Rgb域里面,ISP的相關算法流程,從前面文章里面可以看到,在Raw和Rgb域里面,很多ISP算法操作,更像是屬于sensor矯正或者說sensor標定操作。本質上來說&#x…

虛幻引擎5-Unreal Engine筆記之UE編輯器退出時的保存彈框

虛幻引擎5-Unreal Engine筆記之UE編輯器退出時的保存彈框 code review! 文章目錄 虛幻引擎5-Unreal Engine筆記之UE編輯器退出時的保存彈框1. 退出編輯器時彈出的“Save Content”窗口2. File 菜單中的保存選項3. 區別總結 1. 退出編輯器時彈出的“Save Content”窗口 退出時…

如何判斷IP是否被平臺標記

一、基礎檢測:連通性與黑名單篩查 網絡連通性測試 Ping與Traceroute:通過命令測試延遲和路由路徑,若延遲>50ms或存在異常節點(如某跳延遲>200ms),可能影響可用性。示例命令: bash ping 8.…

零Gas授權實戰:用線下簽名玩轉智能合約 Permit 機制

目錄 鏈下簽名背景什么是 Permit ?鏈下簽名應用場景Permit 原理簡述實戰:從合約到前端完整實現安全注意事項總結鏈下簽名背景 在以太坊智能合約開發中,很多初學者經常面臨這樣一個問題:ERC20 代幣授權必須先調用鏈上合約的 approve(),再調用鏈上合約的 transferFrom(),每…

React 簡介:核心概念、組件化架構與聲明式編程

本文為《React Agent:從零開始構建 AI 智能體》專欄系列文章。 專欄地址:https://blog.csdn.net/suiyingy/category_12933485.html。項目地址:https://gitee.com/fgai/react-agent(含完整代碼示?例與實戰源)。完整介紹…

LeetCode100.7 接雨水

對于這題&#xff0c;有一個非常直觀簡潔的思路&#xff1a;水量等于柱子圍成的體積減去柱子的體積。 首先計算每一個高度的體積&#xff0c;相加即為總體積&#xff0c;減去sum(height)即為水的體積。 class Solution { public:int trap(vector<int>& height) {in…

NineData 社區版 V4.1.0 正式發布,新增 4 條遷移鏈路,本地化數據管理能力再升級

NineData 社區版 V4.1.0 正式更新發布。本次通過新增 4 條遷移鏈路擴展、國產數據庫深度適配、敏感數據保護增強?等升級&#xff0c;進一步鞏固了其作為高效、安全、易用的數據管理工具的定位。無論是開發測試、數據遷移&#xff0c;還是多環境的數據管理&#xff0c;NineData…

Go 語言 sqlx 庫使用:對 MySQL 增刪改查

MySQL 作為目前最流行的開源關系型數據庫&#xff0c;其 SQL 語法體系已形成行業標準&#xff0c;相關知識體系龐大且成熟&#xff0c;本文不再對 SQL 基礎進行詳細展開&#xff0c;建議尚未掌握的讀者先行系統學習。本文聚焦于如何使用 Go 語言進行 MySQL 數據庫操作&#xff…

單片機-STM32部分:13、PWM

飛書文檔https://x509p6c8to.feishu.cn/wiki/NjhuwbVP7iaEOikVK95cmJNLnWf PWM&#xff08;Pulse Width Modulation&#xff09;脈沖寬度調制&#xff0c;是利用微處理器的數字輸出來對模擬電路進行控制的一種非常有效的技術。它是把每一脈沖寬度均相等的脈沖列作為PWM波形&am…

抽獎系統-獎品-活動

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 前言獲取獎品列表前端頁面活動創建需求分析活動創建后端實現1-控制層實現及校驗活動活動創建后端實現2-保存信息活動插入活動獎品插入 整合活動信息存入redis測試活…

Dense 與 MoE 系列模型架構的全面對比與應用策略

0. 簡介 人工智能領域正經歷著一場架構革命&#xff0c;從傳統的密集連接模型&#xff08;Dense&#xff09;向混合專家模型&#xff08;Mixture of Experts, MoE&#xff09;的轉變。本文將全面剖析這兩種模型架構的本質差異、各自優勢與挑戰&#xff0c;并提供戰略性的選擇框…

代碼隨想錄算法訓練營第四十天

LeetCode題目: 647. 回文子串516. 最長回文子序列 其他: 今日總結 往期打卡 647. 回文子串 跳轉: 647. 回文子串 學習: 代碼隨想錄公開講解 問題: 給你一個字符串 s &#xff0c;請你統計并返回這個字符串中 回文子串 的數目。 回文字符串 是正著讀和倒過來讀一樣的字符串。…

Supabase 的入門詳細介紹

Supabase 是什么&#xff1f; 簡單來說&#xff0c;Supabase 是一個開源的 Firebase 替代品。它提供了一整套后端即服務 (BaaS - Backend as a Service) 的工具&#xff0c;讓你能夠快速構建應用程序的后端&#xff0c;而無需自己從頭搭建和管理服務器、數據庫等基礎設施。 S…

【MySQL】mysql/bin目錄下程序介紹

&#x1f525;個人主頁&#xff1a; 中草藥 &#x1f525;專欄&#xff1a;【MySQL】探秘&#xff1a;數據庫世界的瑞士軍刀 MySQL在安裝完成后&#xff0c;通常會包含以下程序&#xff0c;以Ubuntu上的mysql為例&#xff0c;我們可以查看到 以下是常用的mysql程序 程序名作用…

IDEA+git將分支合并到主分支、IDEA合并分支

文章目錄 一、合并分支二、可能遇到的問題2.1、代碼沖突 開發過程中我們可能在開發分支(dev)中進行開發&#xff0c;等上線后將代碼合并到主分支(master)中&#xff0c;本文講解如何在IDEA中將dev分支的代碼合并到master分支中。 一、合并分支 功能說明&#xff1a;將dev分支的…

通過Ollama讀取模型

通過Ollama讀取模型 前言一、查看本地Ollama上有哪些模型二、調用bge-m3模型1、調用模型2、使用bge-m3進行相似度比較 三、調用大模型 前言 手動下載和加載大模型通常需要復雜的環境配置&#xff0c;而使用Ollama可以避免這一問題。本文將介紹如何調用Ollama上的模型。 一、查…

JS 中 Object.keys() 和 Object.values() 的深度解析與應用

文章目錄 前言一、Object.keys() 和 Object.values() 基礎1. Object.keys()2. Object.values() 二、與 Object.entries() 的對比三、實際應用場景1. 遍歷對象屬性2. 判斷對象是否為空3. 對象與數組的轉換4. 動態屬性操作5. 過濾對象屬性 總結 前言 在 JavaScript 開發中&#…

HCIP(BFD)

一、前言 隨著網絡應用的廣泛部署,網絡發生故障極大可能導致業務異常。為了減小鏈路、設備故障對業 務的影響,提高網絡的可靠性,網絡設備需要盡快檢測到與相鄰設備間的通信故障,以便及時采取措施,保證業務正常進行。BFD(Bidirectional Forwarding Detection,雙向轉發檢測)提供…