LVS 原理詳解及部署(包含實驗案例)

一、集群和分布式簡介

1.系統性能擴展方式

  • Scale Up(向上擴展):通過增強單臺服務器的硬件性能(如提升 CPU、內存、存儲等)來提高處理能力,適用于業務初期或對單點性能要求高的場景。這種方式簡單易行,但受限于硬件上限,且成本較高。

  • Scale Out(向外擴展):通過增加服務器數量并組成集群,將任務分配到多臺設備上協同處理,需解決調度分配問題,適用于高并發、高可用需求的場景。這種擴展方式具有良好的靈活性和成本優勢,尤其適合分布式系統架構。

2.集群 Cluster

Cluster:集群是為了解決某個特定問題將多臺計算機組合起來形成的單個系統

Cluster?常見的三種類型:

1)LB:LoadBalancing(負載均衡)

由多臺主機組成,每臺主機承擔部分訪問請求,通過負載均衡器分配任務,避免單點過載,提升系統吞吐量。

2)HA:High Availiablity(高可用)

核心是避免單點故障(SPOF,Single Point Of Failure),確保業務持續運行。

  • MTBF(Mean Time Between Failure):平均無故障時間(系統正常運行的時長)。
  • MTTR(Mean Time To Restoration):平均恢復時間(故障后恢復正常的時長)。
  • 高可用率(A):計算公式為? A = MTBF / ( MBTF + MTTR ),取值范圍 (0,1),常用 “N 個 9” 表示(如 99.9%、99.99%)。
  • SLA(Service Level Agreement):服務等級協議,明確服務可用性標準及未達標時的懲罰措施,運維的核心目標是達成 SLA(重點關注計劃外停機時間)。

3)HPC:High-performance computing(高性能計算)

用于復雜科學計算(如氣象模擬、基因分析),屬于國家戰略資源,非通用運維重點。

3.分布式

常見分布式應用場景:

  • 分布式存儲:如 Ceph、GlusterFs、FastDFS(用于海量數據存儲,如圖片、文件)。
  • 分布式計算:如 Hadoop、Spark(用于大數據處理,拆分計算任務到多節點并行執行)。
  • 分布式應用:按功能拆分微服務(如電商的訂單、支付、物流模塊獨立部署)。
  • 分布式靜態資源:靜態資源(圖片、JS、CSS)部署在不同存儲集群,提升訪問速度。
  • 分布式緩存:使用 Key-Value 緩存系統(如 Redis 集群),減輕數據庫壓力。

4.集群和分布式的區別

特性集群(Cluster)分布式(Distributed)
結構多機干同一件事多機干不同的事
業務部署同一業務系統,部署在多臺服務器,功能、代碼、數據一致一個業務拆分為多個業務,部署在多臺服務器,每臺服務器功能、代碼、數據不同,協同完成完整業務
核心目標提高單位時間內執行的任務數量(提升吞吐量)縮短單個任務的執行時間(提升效率)
故障影響單臺服務器故障,其他服務器可接管單臺服務器故障可能導致對應子業務失敗
適用場景高并發 Web 服務(負載均衡集群)、高可用數據庫(主從集群)微服務架構、大數據處理(Hadoop)、分布式存儲(Ceph)

二、LVS(Linux Virtual Server)運行原理

1.LVS 簡介?

LVS(Linux Virtual Server,Linux 虛擬服務器)是 1998 年由章文嵩博士主導開發的一種基于 Linux 內核的負載均衡技術,它工作在 OSI 模型的傳輸層(TCP/UDP),通過將請求轉發到后端多個真實服務器(Real Server),實現流量的負載均衡,同時隱藏后端服務器架構,對外呈現為一個統一的虛擬 IP(VIP)。?

2.LVS 集群體系結構

3.LVS 的概念

  • VS:Virtual Server ,虛擬服務,調度器(負責調度)
  • RS:Real Server,真實服務器(負責真正提供服務,處理客戶端請求)
  • DS:Director Server:負載均衡器(客戶端請求的接收者和分發者)
  • CIP: Client IP ,客戶端IP
  • VIP:Virtual IP ,負載均衡器虛擬 IP,VS 外網的 IP(客戶端通過該 IP 訪問集群服務)
  • DIP:Director IP ,負載均衡器 IP,VS 內網的 IP(Director Server 上用于與 Real Server 通信的內網 IP)
  • RIP:Real Server IP ,后端請求處理的服務器 IP(僅用于集群內部通信,Director 與 Real Server 之間)

訪問流程:CIP <--> VIP == DIP <--> RIP?

三、LVS 的四種工作模式?

LVS-NAT(網絡地址轉換):

通過修改請求報文的目標 IP(VIP→RIP)和響應報文的源 IP(RIP→VIP),實現多目標 IP 的 DNAT,所有流量必須經過 Director,適合小規模集群與私有網絡部署。

LVS-DR(直接路由):

在二層網絡通過操縱封裝新的 MAC 地址(保持 IP 不變)將請求轉發至 Real Server,響應直接返回客戶端,性能最優但要求 Director 與 RS 在同一物理網段。

LVS-TUN(IP 隧道):

在原請求 IP 報文之外新加一個 IP 首部(外層 IP 為 RIP),通過 IP 隧道封裝轉發至跨網段的 Real Server,響應直接返回客戶端,適合大規模分布式集群。

LVS-FULLNAT(全地址轉換):

同時修改請求報文的源 IP(客戶端 IP→DIP)和目標 IP(VIP→RIP),以及響應報文的源 / 目標 IP,突破 DR 模式的二層限制,支持 Director 與 RS 跨網段部署,但增加了 Director 負載。

1.LVS-NAT模式

1)NAT 模式簡介

NAT模式全稱為 Virtualserver via Network address translation(VS/NAT),是通過網絡地址轉換的方法來實現調度的,主要工作在 OSI 模型的第三層(網絡層)和第四層(傳輸層),對 ip 進行操作,對端口進行轉換。

首先調度器(Director)接收到客戶的請求數據包時(請求的目的?IP 為VIP),根據調度算法決定將請求發送給哪個后端的真實服務器(RS)。

然后調度就把客戶端發送的請求數據包的目標IP地址及端口改成后端真實服務器的IP地址(RIP),這樣真實服務器(RS)就能夠接收到客戶的請求數據包了。

真實服務器響應完請求后,查看默認路由(NAT模式下我們需要把RS的默認路由設置為DS服務器),把響應后的數據包發送給 DS。

DS 接收到響應包后,把包的源地址改成虛擬地址(VIP)然后發送回給客戶端。

2)NAT 模式特點

  • 本質上是多目標 IP 的 DNAT,當調度器接收到客戶端發送給虛擬 IP(VIP)的請求報文時,會根據調度算法,從多個后端 RS 中挑選出一臺,將請求報文中的目標地址(VIP)和目標端口修改為該 RS 的 RIP 和相應端口,從而實現請求的轉發。
  • NAT 技術將請求的報文和響應的報文都需要通過調度器進行地址改寫,因此網站訪問量比較大的時候DS 負載均衡調度器有比較大的瓶頸,后端服務器的數量一般不超過10 臺,否則 LVS 可能會出現問題。
  • RIP 和 DIP 應在同一個IP網絡,且應使用私網地址,RS的網關需要指向 DIP,確保 RS 響應報文能夠正確返回給 Director。
  • 請求報文和響應報文都必須經由 Director 轉發,Director 易于成為系統瓶頸。
  • 支持端口映射,可修改請求報文的目標 PORT。
  • VS(Director)必須是 Linux 系統,RS 可以是任意 OS 系統。

3)NAT 模式數據邏輯

① 發出請求(Client --> VS)

客戶端(Client,CIP)向虛擬服務(VS,VIP)的 80 端口發起服務請求。

② 調度并修改請求報文(VS --> RS)

VS 服務器接收到訪問請求,通過調度算法選擇 RS1,并執行 DNAT?將請求報文的目標地址由 VIP?改為 RS1 端口由 80 改為 9000。

③ 響應報文(RS --> VS)

RS1 監聽 9000 端口,處理請求后生成響應報文,源 IP 為 RIP1,目標 IP 為 CIP,端口為 9000,因網關指向 VS,響應原路返回給 VS。

④ 修改響應報文(VS --> Client)?

VS 服務器接收響應后執行 SNAT,將響應報文的源地址由 RIP1 --> VIP,響應端口 9000 --> 80

⑤ 接收響應(VS --> Client)

VS 服務器通過公網將報文返回客戶端,客戶端收到源 IP 為 VIP,端口為 80 的響應報文。?

4)NAT 模式工作流程

當用戶請求到達 Director Server,此時請求的數據報文會先到內核空間的 PREROUTING 鏈。 此時報文的源 IP 為 CIP,目標 IP 為 VIP。

PREROUTING 檢查發現數據包的目標 IP 是本機,將數據包送至 INPUT 鏈。

IPVS比對數據包請求的服務是否為集群服務,若是,修改數據包的目標IP地址為后端服務器IP,然后將數據包發至 POSTROUTING 鏈。 此時報文的源 IP 為 CIP,目標 IP 為 RIP ,在這個過程完成了目標IP的轉換(DNAT)。

POSTROUTING鏈通過選路,將數據包發送給 Real Server。

Real Server比對發現目標為自己的IP,開始構建響應報文發回給 Director Server。 此時報文的源 IP 為 RIP,目標 IP 為 CIP 。

Director Server 在響應客戶端前,此時會將源IP地址修改為自己的 VIP 地址(SNAT),然后響應給客戶端。 此時報文的源 IP 為 VIP,目標 IP 為 CIP。

2.LVS-DR模式

1)DR 模式簡介?

DR(Direct Routing,直接路由)模式是一種高性能的負載均衡模式。其核心工作原理是通過修改請求數據包的MAC地址,而不改變其源IP和目標IP地址,從而實現負載均衡。?

主要工作在 OSI 七層模型中的第二層(數據鏈路層)和第三層(網絡層)

在DR模式下,客戶端的請求數據包首先到達LVS調度器(Director),調度器根據負載均衡算法選擇一個后端真實服務器(Real Server),并將請求數據包的目的MAC地址修改為選中的真實服務器的MAC地址,然后將數據包發送到該真實服務器。

2)DR 模式的工作流程?

當用戶請求到達 Director Server,此時請求的數據報文會先到內核空間的 PREROUTING 鏈。 此時報文的源 IP 為 CIP,目標 IP 為 VIP。

PREROUTING 檢查發現數據包的目標 IP 是本機,將數據包送至 INPUT 鏈。

IPVS 比對數據包請求的服務是否為集群服務,若是,將請求報文中的源 MAC 地址修改為 DIP 的 MAC 地址,將目標 MAC 地址修改 RIP的 MAC 地址,然后將數據包發至 POSTROUTING 鏈。 此時的源 IP 和目的 IP 均未修改,僅修改了源 MAC 地址為 DIP 的 MAC 地址,目標 MAC 地址為 RIP 的 MAC 地址。

由于 DS 和 RS 在同一個網絡中,所以是通過二層,數據鏈路層來傳輸。POSTROUTING 鏈檢查目標 MAC 地址為 RIP 的 MAC 地址,那么此時數據包將會發至 Real Server。

⑤?RS 發現請求報文的 MAC 地址是自己的 MAC 地址,就接收此報文。處理完成之后,將響應報文通過 lo 接口傳送給 eth0 網卡然后向外發出。 此時的源 IP 地址為 VIP,目標 IP 為 CIP。

響應報文最終送達至客戶端。

3.LVS-TUN模式(了解)

1)TUN?模式簡介?

TUN(Tunneling)模式是一種 LVS(Linux Virtual Server)的工作模式,它通過 IP 隧道技術實現負載均衡。在該模式下,客戶端請求由負載均衡器接收并封裝,然后通過 IP 隧道轉發到后端服務器(Real Server)。后端服務器處理請求后,直接將響應數據返回給客戶端,無需經過負載均衡器。這種方式避免了負載均衡器成為網絡瓶頸,適用于高并發和大規模服務場景。?

2)TUN 模式特點?

  • DIP、VIP、RIP都應該是公網地址
  • RS?的網關一般不能指向?DIP
  • 請求報文要經由?Director,但響應不能經由?Director
  • 不支持端口映射
  • RS?的?OS 需支持隧道功能

3)TUN 模式的工作流程??

客戶端發送請求到負載均衡器的虛擬 IP(VIP),請求報文源地址是 CIP,目標地址為 VIP。

負載均衡器收到報文后,根據預設的調度算法選擇一個后端服務器,并將客戶端請求的數據包封裝一層 IP 報文,將源地址改為 DIP,目標地址改為 RIP,并將此包發送給 RS。

RS?收到 VS 調度器發送過來的數據包做出響應,解封裝并處理請求。

處理完成后,后端服務器將響應數據直接發送給客戶端,而不是通過負載均衡器。

4.LVS-FULLNAT模式(了解)

1)FULL NAT 模式的簡介

FULL NAT 是 LVS(Linux Virtual Server)中的一種負載均衡工作模式,主要用于解決傳統 NAT 模式在實際部署中的局限性,尤其是在網絡拓撲復雜或跨 VLAN 通信的場景中。通過同時修改請求報文的源?IP?地址和目標?IP?地址,實現雙向地址轉換。

2)FULL NAT 模式的特點?

  • VIP?是公網地址,RIP?和?DIP?是私網地址,且通常不在同一?IP?網絡;因此,RIP的網關一般不會指向DIP
  • RS?收到的請求報文源地址是?DIP,因此,只需響應給?DIP,但?Director?還要將其發往?Client
  • 請求和響應報文都經由?Director
  • 支持端口映射

3)FULL NAT 模式的工作流程?

客戶端向 LVS 的虛擬 IP(VIP)發起請求,數據包的目的地址是 VIP,源地址是客戶端的 IP(CIP)。

LVS 接收到請求后,IPVS 模塊根據調度算法選擇一個后端服務器(RealServer),并對數據包進行 DNAT 和 SNAT 操作。DNAT 將目標地址從 VIP 轉換為 RealServer 的 IP(RIP),SNAT 將源地址從 CIP 轉換為 LVS 的內網地址(LIP)。

轉換后的數據包被發送到 RealServer,RealServer 接收到請求后,將響應數據包的源地址設置為自己的 RIP,目標地址設置為 LVS 的 LIP。

LVS 接收到響應數據包后,再次進行地址轉換,將源地址從 RIP 轉換為 VIP,目標地址從 LIP 轉換為 CIP,然后將響應數據包返回給客戶端。

5.LVS 工作模式總結

NAT 模式TUN 模式DR 模式
RS 操作系統不限支持隧道禁用 arp
調度器和服務器網絡可跨網絡可跨網絡不可跨網絡
調度服務器數量
RS 服務器網關指向到調度器 DIP指向到路由指向到路由

四、LVS 的調度算法?

1.LVS 調度算法類型

ipvs scheduler:根據其調度時是否考慮各?RS?當前的負載狀態被分為兩種:靜態方法和動態方法

  • 靜態調度算法:僅根據算法本身進行調度,不考慮RS的負載情況
  • 動態調度算法:實時監控服務器負載(如連接數、CPU 利用率等),根據負載狀態動態分配請求,主要根據每?RS?當前的負載狀態及調度算法進行調度?Overhead = value?較小的?RS?將被調度

2.LVS 靜態調度算法

1)RR:輪詢(Round Robin)

按順序依次將請求分配給后端服務器,循環往復。但不考慮服務器實際負載,若服務器性能差異較大,可能導致性能差的服務器過載。RS?分別被調度,當?RS?配置有差別時不推薦,適用于后端服務器性能相近的場景。

2)WRR:加權輪詢(Weighted Round Robin)

為每個服務器分配權重,權重越高分配的請求越多,性能差的RS被調度的次數少,適用于后端服務器性能差異較大時的場景。

3)SH:源地址哈希(Source Hashing)

根據客戶端 IP 計算哈希值,將同一客戶端的請求始終分配到同一服務器,可能導致負載分布不均,適用于需要保持會話親和性的場景。

4)DH:目標地址哈希(Destination Hashing)

根據目標 IP(如虛擬服務 VIP)計算哈希值,第一次輪詢調度至RS,后續將發往同一個目標地址的請求始終轉發至第一次挑中的RS,典型使用場景是正向代理緩存場景中的負載均衡,如:寬帶運營商。

3.LVS 動態調度算法

1)LC:最少連接(Least Connections)

將請求分配給當前連接數最少的服務器,?適用于長連接應用?Overhead(負載值)= activeconns(活動鏈接數) x 256+inactiveconns(非活動鏈接數)

2)WLC:權重最少連接(Weighted Least Connections)

綜合考慮服務器權重和當前連接數,值越小優先級越高,默認調度方法?Overhead = (activeconns x 256+inactiveconns) / weight

3)SED:最少隊列調度(Shortest Expected Delay)

初始連接高權重優先?Overhead = (activeconns+1+inactiveconns) x 256 / weight,選擇延遲最小的服務器。但是,當?node1?的權重為1,node2?的權重為?10,經過運算前幾次的調度都會被?node2?承接

4)NQ:永不排隊調度(Never Queue)

若有服務器處于空閑狀態(連接數為 0),則直接分配,否則使用 SED 算法。第一輪均勻分配,后續?SED

5)LBLC:基于局部性的最小連接 / 動態的 DH 算法(Locality-Based Least Connections)

優先將請求分配給已緩存該資源的服務器(若存在);若所有服務器均無緩存,則分配給連接數最少的服務器。使用場景:根據負載狀態實現正向代理

6)LBLCR:帶復制的基于局部性的最小連接(Locality-Based Least Connections with Replication)

優先將請求分配給該列表中連接數最少的服務器。若列表中服務器負載過高,則動態調整列表。解決 LBLC 負載不均衡問題,從負載重的復制到負載輕的?RS

五、LVS 部署命令

1.LVS 軟件相關信息

  • 程序包: ipvsadm
  • Unit File: ipvsadm.service
  • 主程序: /usr/sbin/ipvsadm
  • 規則保存工具: /usr/sbin/ipvsadm-save
  • 規則重載工具: /usr/sbin/ipvsadm-restore
  • 配置文件: /etc/sysconfig/ipvsadm-config
  • ipvs 調度規則文件: /etc/sysconfig/ipvsadm

2.ipvsadm 命令?

  • ipvsadm -D -t|u|f service-address? ? ?# 刪除指定的虛擬服務
  • ipvsadm –C? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?# 清空所有負載均衡規則
  • ipvsadm –R? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?# 重載
  • ipvsadm -S [-n]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #?保存(將當前負載均衡規則導出為可執行的腳本)
  • ipvsadm -Z [-t|u|f service-address]? ? # 清除計數器(可指定)

3.LVS 集群服務的參數

1)管理集群服務中的增刪改?

命令格式:ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]]?

  • -A ? ? ? ? # 添加
  • -E? ? ? ? ?# 修改
  • -D? ? ?? ?# 刪除
  • -L? ? ? ? ?# 查看 lvs 策略
  • -C? ? ? ? # 清空 lvs 策略
  • -n? ? ? ? ?# 不做解析
  • -t ? ? ? ? ?# tcp 服務
  • -u ? ? ? ? # udp 服務
  • -s ? ? ? ? # 指定調度算法,默認為 WLC
  • -p ? ? ? ? # 設置持久連接超時,持久連接可以理解為在同一個時間段同一個來源的請求調度到同一 Realserver
  • -f ? ? ? ? # firewall mask 火墻標記,是一個數字

實驗環境設定:?

主機名ip角色
lvs

NAT-eth0:172.25.254.100

僅主機-eth1:192.168.96.100

調度器(VS)
RS1僅主機-eth0:192.168.96.10真實服務器(RS1)
RS2僅主機-eth0:192.168.96.20真實服務器(RS2)

在 lvs 中安裝 ipvsadm。?

示例:

ipvsadm -A -t 172.25.254.100:80 -s rr:添加一個基于 TCP 的虛擬服務,監聽地址為 172.25.254.100,端口為 80,并使用輪詢(Round Robin)算法來調度請求,依次將請求分配給后端的真實服務器

ipvsadm -L:查看當前所有的虛擬服務及其相關的真實服務器規則(被 dns 解析過,顯示主機名)

ipvsadm -Ln:與 -L 類似,不做解析,顯示 ip 地址和端口

ipvsadm -E -t 172.25.254.100:80 -s wrr:將 ip 為 172.25.254.100 虛擬服務的調度算法更改為加權輪詢(Weighted Round Robin)。

ipvsadm -E -t 172.25.254.100:80 -s wrr -p 360:設置持久化連接的時間為 360 秒(360 秒后再分配給另一臺真實服務器)

ipvsadm -A -f 66 -s rr:添加一個基于防火墻標記(Firewall Mark)的虛擬服務,標記值為 66,并使用輪詢算法進行調度?

ipvsadm -D -f 66:刪除基于防火墻標記的虛擬服務?

ipvsadm -C:清除所有當前配置的虛擬服務和真實服務器規則?

2)管理集群中?RealServer?的增刪改

命令格式:ipvsadm -a|e -t|u|f service-address -r realserver-address [-g|i|m] [-w weight]

  • -a ? ? ? ? # 添加 realserver
  • -e ? ? ? ? # 更改 realserver
  • -t ? ? ? ? ?# tcp 協議
  • -u ? ? ? ? # udp 協議
  • -f ? ? ? ? ?# 火墻標簽
  • -r ? ? ? ? ?# realserver 地址
  • -g ? ? ? ? # 直連路由模式
  • -i ? ? ? ? ?# ipip 隧道模式
  • -m ? ? ? ? # nat 模式
  • -w ? ? ? ? # 設定權重
  • -Z ? ? ? ? # 清空計數器
  • -C ? ? ? ? # 清空 lvs 策略
  • -L ? ? ? ? # 查看 lvs 策略
  • -n ? ? ? ? # 不做解析
  • --rate? ? # 輸出速率信息

ipvsadm -a -t 172.25.254.100:80 -r 192.168.96.10:80 -m:將真實服務器 192.168.96.10:80 添加到虛擬服務 172.25.254.100:80 中,并使用 NAT 模式(即 -m?參數)?

ipvsadm -a -t 172.25.254.100:80 -r 192.168.96.20:80 -g:將另一個真實服務器 192.168.96.20:80 添加到虛擬服務 172.25.254.100:80 中,使用直接路由模式(即 -g?參數)?

注:NAT 模式與直連路由不能混用,這里僅展示參數使用

ipvsadm -e -t 172.25.254.100:80 -r 192.168.96.10:80 -i:更改已有的真實服務器 192.168.96.10:80,將其轉發方式更改為 IP 隧道模式(即 -i 參數)?

ipvsadm -e -t 172.25.254.100:80 -r 192.168.96.10:80 -i -w 2:設置真實服務器 192.168.96.10:80 的權重為 2(即 -w 2)

ipvsadm -Z:重置所有虛擬服務的連接計數器,將統計值歸零

ipvsadm -Ln --rate:列出當前所有的虛擬服務及其真實服務器,并顯示速率信息(即 --rate)?

3)IPVS 的備份及恢復

ipvsadm-save:將當前運行的 IPVS 規則以文本形式輸出到標準輸出?

ipvsadm-save -n:以數字形式輸出規則信息,即不進行 DNS 反向解析,直接顯示 IP 地址和端口號

ipvsadm-save -n > /mnt/ipvsadm.rule:將數字格式的配置重定向到文件 /mnt/ipvsadm.rule,用于持久化保存當前的 IPVS 規則,便于后續恢復。

然后清除當前所有的 IPVS 規則和配置?

ipvsadm-restore < /mnt/ipvsadm.rule:從文件 /mnt/ipvsadm.rule 恢復之前保存的 IPVS 規則

六、LVS 實戰案例

1.部署 NAT 模式集群案例?

1)NAT 模式實驗環境設定

主機名ip角色
clientNAT-eth0:172.25.254.111測試機(客戶端)
lvs

NAT-eth0:172.25.254.100

僅主機-eth1:192.168.96.100

調度器(VS)
RS1僅主機-eth0:192.168.96.10真實服務器(RS1)
RS2僅主機-eth0:192.168.96.20真實服務器(RS2)

在 RS1 和 RS2 中都安裝 httpd,禁用并立即停止防火墻服務,啟用并立即啟動 httpd 服務,然后分別創建一個簡單的測試頁面,用于驗證 http?服務是否正常工作。

?RS1:?

RS2:?

lvs:?

訪問 RS1 和 RS2 兩個真實服務器的地址,檢測是否能夠成功訪問。

2)配置命令

① 在 lvs 中啟用內核路由功能

查看系統中所有與 ipv4 轉發相關的內核參數,net.ipv4.ip_forward = 0 表示當前未啟用 ipv4 轉發。

將啟用 IPv4 轉發的配置寫入系統內核參數配置文件?/etc/sysctl.conf,實現永久生效。

sysctl -p:從配置文件加載并立即應用內核參數,無需重啟系統。

② 在 lvs 中安裝 ipvsadm?

③ 添加調度策略并查看策略

④ 保存規則

⑤ 刪除所有規則

⑥ 重新加載規則

⑦ 以上操作均為臨時,設定開機自啟動

⑧ 測試

⑨ 修改為權重調用算法

測試:?

2.部署 DR 模式集群案例

1)DR 模式實驗環境設定

主機名ipvip角色
clientNAT-eth0:172.25.254.111null測試機(客戶端)
router

NAT-eth0:172.25.254.100

僅主機-eth1:192.168.96.100

null路由器
DR-lvs

僅主機-eth0:192.168.96.200

網關:192.168.96.100

lo:192.168.96.220調度器(VS)
RS1

僅主機-eth0:192.168.96.10

網關:192.168.96.100

lo:192.168.96.220web 服務器(RS1)
RS2

僅主機-eth0:192.168.96.20

網關:192.168.96.100

lo:192.168.96.220web 服務器(RS2)

client:在客戶端主機(client)中設定為 nat 模式網卡,網關為 router 的 172.25.254.100

router:在路由主機(router)中設定雙網卡,eth0 為 nat 網卡,eth1 為僅主機網卡

對 eth0 的設定:?

對 eth1?的設定:?

在持久化內核參數的配置文件中寫入 net.ipv4.ip_forward = 1,并重新加載 /etc/sysctl.conf 中的內核參數配置,使修改立即生效,無需重啟系統。

立即啟用并設置開機自啟動?firewalld 服務,并配置防火墻允許?NAT(網絡地址轉換),使內網設備能通過該服務器訪問外網。

永久允許需要刷新才能實現。(若為 no,則缺少 firewall-cmd --reload 命令進行刷新)?

lvs:對于dr調度器設定網卡為僅主機模式

DIP 為 192.168.96.200/24,VIP 為192.168.96.220/24,對外通信

對于?RS1 和 RS2?的設定網卡為僅主機模式,VIP 都為 192.268.96.200/32(對外不響應)

RS1:??

RS2:??

2)解決 vip 響應問題

限制響應級別:arp_ignore

  • 0:默認值,表示可使用本地任意接口上配置的任意地址進行響應
  • 1:僅在請求的目標IP配置在本地主機的接收到請求報文的接口上時,才給予響應

限制通告級別:arp_announce

  • 0:默認值,把本機所有接口的所有信息向每個接口的網絡進行通告
  • 1:盡量避免將接口信息向非直接連接網絡進行通告
  • 2:必須避免將接口信息向非本網絡進行通告

在 lvs 和兩臺 RS(RS1、RS2)中設定 vip?

在 RS1 和 RS2 中的 /etc/sysctl.conf 文件中寫入以下內容,并通過 sysctl -p 加載,設定 lo 不對外響應。

在 lvs 中配置策略,模式為直連路由。

測試結果:

3.防火墻標簽解決輪詢問題

1)輪詢規則中可能回遇到的錯誤

在 RS1 和 RS2 中安裝 mod_ssl,并重啟 apache。

RS1:?

RS2:?

確保 lvs 的防火墻是關閉的。?

在 lvs 中設置調度,設定兩組策略,調度 80 和 443 兩個端口。

測試問題:?

2)防火墻標記解決輪詢調度問題

在 VS 調度器中設定端口標簽,人為 80 和 443 是一個整體。

設定調度規則?

測試結果:

4.LVS 持久鏈接

在 lvs 調度器中設定,設置超時時間為 1 分鐘?

此時客戶端訪問 192.168.96.220 顯示的是192.168.96.10 的主機?

等時間超過了之后,再次訪問 192.168.96.220,便輪詢到 192.168.96.20。?

此時時間會重新計時,在這個時間內訪問的是 192.168.96.20 的主機

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

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

相關文章

兩個路由器通過不同的網段互聯

一&#xff0c;實驗拓撲圖&#xff1a;二、實驗說明 &#xff1a;在兩個接口配置好兩個不同網段的的ip地址后是不能相互通信的。經過測試用ospf把兩個網段宣告進area 0 是行不通的。最后我們通過靜態路由來配置&#xff0c;遇到一個最大的問題是&#xff0c;我們的下一跳地址應…

Python趣味算法:冒泡排序——從理論到極致優化

排序算法是程序員的必修課,而冒泡排序是理解算法思維的絕佳起點。本文將深入解析冒泡排序的7種優化技巧,通過可視化演示+多維度性能分析,帶你徹底掌握這一經典算法! 看在每天堅持分享有趣知識的份上,點個關注吧(づ ̄ 3 ̄)づ 關注是我更新的動力 ̄︶ ̄? ̄︶ ̄?) 作者會…

[simdjson] document_stream | iterate_many() | batch_size | 線程加速 | 輕量handle

第七章&#xff1a;文檔流 歡迎回來 在前面的章節中&#xff0c;我們學習了如何使用解析器結合填充字符串獲取表示JSON根節點的文檔&#xff0c;并通過按需API&#xff08;On-Demand API&#xff09;遍歷值、對象和數組&#xff0c;同時使用simdjson_result進行錯誤處理。 到…

【機器學習】向量數據庫選型指南:企業內網部署場景

向量數據庫選型指南&#xff1a;企業內網部署場景一、選型背景與關鍵需求 在企業級機器學習應用中&#xff0c;特別是涉及圖片、視頻等非結構化數據的場景&#xff0c;向量數據庫已成為核心基礎設施。傳統數據庫難以高效處理高維向量的相似度檢索需求&#xff08;如圖片相似性搜…

Django母嬰商城項目實踐(八)- 數據渲染與顯示之首頁

8、數據渲染與顯示 1 概述 Django作為Web框架,需要一種很便利的方法動態地生成HTML網頁,因此有了模板這個概念。模板包含所需HTML的部分代碼以及一些特殊語法,特殊語法用于描述如何將視圖傳遞的數據動態插入HTML網頁中。 Django可以配置一個或多個模板引擎(甚至是0個,如前…

Redis常見線上問題

文章目錄 Redis常見線上問題 引言 報告背景與目的 Redis版本與環境說明 性能瓶頸問題 慢查詢分析與優化 高CPU與網絡延遲 內存管理問題 內存碎片成因與優化 BigKey與內存溢出 數據一致性與高可用問題 主從同步延遲 腦裂問題與解決方案 持久化機制問題 RDB與AOF對比 核心特性對比…

Typecho博客集成阿里云CDN+OSS實現全站加速方案

文章目錄 Typecho博客系統集成阿里云CDN和OSS實現靜態資源加速 引言 一、技術選型與準備工作 1.1 為什么選擇阿里云CDN+OSS組合 1.2 準備工作 二、OSS存儲桶創建與配置 2.1 創建OSS存儲桶 2.2 配置Bucket權限 2.3 配置跨域訪問(CORS) 三、CDN加速配置 3.1 添加CDN域名 3.2 配置…

計算機畢業設計Java網咖管理系統 Java技術實現的網咖綜合管理系統開發 基于Spring Boot框架的網咖運營管理系統設計

計算機畢業設計Java網咖管理系統e0btvq7l &#xff08;配套有源碼 程序 mysql數據庫 論文&#xff09;本套源碼可以先看具體功能演示視頻領取&#xff0c;文末有聯xi 可分享隨著互聯網技術的飛速發展和電子競技的全球興起&#xff0c;網咖作為一種新興的休閑娛樂場所&#xff0…

Kotlin main函數

main() 函數 來仔細看看 main() 函數。實際上&#xff0c;它就是一個很常見的函數&#xff1a;你可以對它做任何你能對普通函數做的事。唯一的不同是&#xff1a;它是程序的入口點&#xff08;entry point&#xff09;。這意味著程序的執行從調用這個函數開始。 我們來拆解一下…

深入理解 Spring:事務管理與事件機制全解析

文章目錄前言一、Spring 事務管理&#xff08;Transaction Management&#xff09;1. 使用 Transactional 管理事務2. 核心屬性說明3. 事務傳播行為詳解&#xff08;Propagation&#xff09;4. 異常回滾策略分析5. 底層原理剖析&#xff08;源碼級&#xff09;二、Spring 事件機…

AWD練習的平臺搭建

ubuntu虛擬機搭建 前提資源準備 進行AWD我們需要在一個獨立的虛擬機 現在就來搭建一個ubuntu的 這里我們使用的VMware是17的 然后下載鏡像的地址&#xff1a;Ubuntu最全的國內鏡像下載地址 - 嗶哩嗶哩 我下載的是中科大的 這里需要準備的前提資源就有了。 創建Ubuntu虛…

C++ 詳談繼承體系下的構造函數和析構函數

前言 前面呢, 我們說了C中實現多態的原理, 其中也說了, 虛函數表和虛函數指針的創建時機, C 詳談多態實現原理-CSDN博客 , 這一節呢, 我們會說說在C中繼承體系下的另一個知識點, 那就是: 繼承體系下的構造函數和析構函數~~, 主要圍繞兩個問題: 執行順序? 虛析構函數的作用? …

PostgreSQL 字段類型速查與 Java 枚舉映射

1. 查詢 SQLSELECTc.table_schema,c.table_name,c.column_name,c.data_type,c.udt_name,CASE-- 數值WHEN c.udt_name IN (int2,int4,int8,float4,float8,numeric,money)THEN NUMERIC-- 布爾WHEN c.udt_name boolTHEN BOOLEAN-- 日期/時間WHEN c.udt_name IN (date,time,timetz…

數據分析綜合應用 30分鐘精通計劃

?? 數據分析綜合應用 30分鐘精通計劃(完整版含輸出) ? 時間分配 5分鐘:數據加載與清洗基礎 10分鐘:探索性數據分析(EDA) 10分鐘:數據分析實戰案例 5分鐘:分析報告生成 ?? 第一部分:數據加載與清洗基礎 (5分鐘) 1. 模擬真實數據集 import pandas as pd import nu…

Python爬蟲實戰:研究psd-tools庫相關技術

一、引言 1.1 研究背景 Adobe Photoshop 是目前最流行的圖像處理軟件之一,其原生文件格式 PSD(Photoshop Document)包含了豐富的圖像信息和編輯歷史。PSD 文件不僅在設計領域廣泛使用,還在數字營銷、版權保護和安全分析等領域具有重要價值。然而,手動分析大量 PSD 文件是…

基于卷積傅里葉分析網絡 (CFAN)的心電圖分類的統一時頻方法

一、研究背景與核心問題??ECG分類的挑戰?&#xff1a;心電圖&#xff08;ECG&#xff09;信號分類在心律失常檢測、身份識別等領域至關重要&#xff0c;但傳統方法難以同時有效整合時域和頻域信息。現有方法包括&#xff1a;?時域分類&#xff08;CNN1D&#xff09;??&am…

Linux——LinuxOS

cd,pwd,mkdir,rm,ls,touch,cat,echo,

深度學習篇---矩陣

在機械臂解算、深度學習網絡等硬件和軟件領域中&#xff0c;矩陣運算作為核心數學工具&#xff0c;承擔著數據表示、變換、映射和優化的關鍵作用。以下從具體領域出發&#xff0c;詳細總結涉及的矩陣運算及對應的核心知識&#xff1a;一、機械臂解算領域機械臂解算&#xff08;…

元宇宙:技術烏托邦與數字化未來——基于技術哲學的分析

一、技術哲學視域下的元宇宙本質哲學源流與技術基因的雙重映射理想世界的千年回響&#xff1a;從柏拉圖洞穴隱喻中的影子世界&#xff0c;到普特南“缽中之腦”對虛擬與現實界限的消弭&#xff0c;元宇宙的構想深植于人類對平行世界的永恒追問。中國傳統神話中“天人二元結構”…

如何構建一個基于大模型的實時對話3D數字人?

近年來&#xff0c;隨著元宇宙和AIGC技術的爆發&#xff0c;3D數字人從影視特效走向日常應用。無論是虛擬主播、AI客服&#xff0c;還是數字教師&#xff0c;其核心訴求都是**“能聽、會說、有表情”**的實時交互能力。本文就帶大家了解如何構建一個基于大模型的實時對話的3D數…