Linux:lvs集群技術

一.集群和分布式

1.1 集群

集群是為了解決某個特定問題將多臺計算機組合起來形成的單個系統。即當單獨一臺主機無法承載現有的用戶請求量;或者一臺主機因為單一故障導致業務中斷的時候,就可以增加服務主機數,這些主機在一起提供服務,就叫集群。

類型:

LB(負載均衡);HA(高可用);HPC(高性能計算)

1.2 分布式

一個業務被拆成多個子業務,或者本身就是不同的業務,部署在多臺服務器上。分布式 中,每一臺服務器實現的功能是有差別的,數據和代碼也是不一樣的,分布式每臺服務器功能加起 來,才是完整的業務。

1.3 集群與分布式的區別

集群:同一個業務系統,部署在多臺服務器上,集群中,每一臺服務器實現的功能沒有差別,數據和代碼都是一樣的,即通過提高單位時間內執行的任務數來提升效率,不會因個別主機無法響應而無法進行業務訪問。

分布式:一個業務被拆成多個子業務,或者本身就是不同的業務,部署在多臺服務器上。分布式 中,每一臺服務器實現的功能是有差別的,數據和代碼也是不一樣的,分布式每臺服務器功能加起 來,才是完整的業務 分布式是以縮短單個任務的執行時間來提升效率的,若個別主機無法響應則會導致無法完成完整的業務,導致無法完成服務。

二.lvs運行原理

2.1 LVS概念

VS:調度器

RS:服務器

CIP:用戶?IP

VIP: 調度器鏈接外網的IP

DIP: 調度器鏈接內網的IP

RIP: 服務器?IP

訪問流程:CIP VIP == DIP RIP

2.2 lvs集群的類型

lvs-nat: 修改請求報文的目標IP,多目標IP的DNAT

lvs-dr: 操縱封裝新的MAC地址

lvs-tun: 在原請求IP報文之外新加一個IP首部

lvs-fullnat: 修改請求報文的源和目標IP

2.2.1 nat模式

本質是多目標IP的DNAT,通過將請求報文中的目標地址和目標端口修改為某挑出的RS的RIP和

PORT實現轉發。

工作原理

1.客戶端發送訪問請求,請求數據包中含有請求來源(cip),訪問目標地址(VIP)訪問目標端口 (9000port)

2.VS服務器接收到訪問請求做DNAT把請求數據包中的目的地由VIP換成RS的RIP和相應端口

3.RS1相應請求,發送響應數據包,包中的相應保溫為數據來源(RIP1)響應目標(CIP)相應端口 (9000port)

4.VS服務器接收到響應數據包,改變包中的數據來源(RIP1-->VIP),響應目標端口(9000-->80)

5.VS服務器把修改過報文的響應數據包回傳給客戶端

缺點:lvs的NAT模式接收和返回客戶端數據包時都要經過lvs的調度機,所以lvs的調度機容易阻塞。

部署NAT模式集群案例
實驗環境
主機名ip角色
clienteth0:172.25.254.111/24用戶主機
lvs

eth0:172.25.254.100/24(VIP)

eth1:192.168.0.100/24(DIP)僅主機

調度器

rs1

eth0:192.168.0.10(RIP1)web服務器1
rs2eth0:192.168.0.20(RIP2)web服務器2

配置命令

client:

1.設置路由

?

dr-lvs:

1.安裝ipvsadm(下圖為主機已安裝的圖片)

?2.設置內核路由功能

?3.添加和查看調度策略

?ipvsadm:

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

ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]]

-A :添加

-E:修改

-Z:清空計數器

-C:清空lvs策略

-L:查看lvs策略

-t:tcp服務

-u:udp服務

-s:指定調度算法,默認為WLC -p #設置持久連接超時,持久連接可以理解為在同一個時間段同一個來源的請求調度到同一Realserver -f #firewall mask 火墻標記,是一個數字

(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:ip隧道模式

-m:nat模式

-w:設定權重

--rate :輸出速率信息

?4.關閉火墻

rs1/rs2:

1.設置路由(以rs1為例):

2.關閉rs的防火墻/允許http服務通過火墻

效果 :

2.2.2 dr模式

工作原理

1.客戶端發送數據幀給vs調度主機幀中內容為客戶端IP+客戶端的MAC+VIP+VIP的MAC

2.VS調度主機接收到數據幀后把幀中的VIP的MAC該為RS1的MAC,此時幀中的數據為客戶端IP+客戶端的MAC+VIP+RS1的MAC

3.RS1得到2中的數據包做出響應回傳數據包,數據包中的內容為VIP+RS1的MAC+客戶端IP+客戶端IP的MAC

特點:

(1)Director和各RS都配置有VIP

(2)確保前端路由器將目標IP為VIP的請求報文發往Director

(3)在前端網關做靜態綁定VIP和Director的MAC地址

部署DR模式集群案例
實驗環境
主機名IP角色
clienteth0:172.25.254.111/24(CIP)客戶端主機
route

eth0:172.25.254.100/24

eth1:192.168.0.100/24(僅主機)

路由器
lvs

eth0:192.168.0.220/24(VIP)(僅主機)

eth0:192.168.0.200/24(DIP)(僅主機)

調度器
rs1

lo:127.0.0.1/8

lo:192.168.0.220/32(VIP)

eth0:192.168.0.10(RIP)(僅主機)

web服務器1

rs2

lo:127.0.0.1/8

lo:192.168.0.220/32(VIP)

eth0:192.168.0.20(RIP)(僅主機)

web服務器2
配置命令

client:

1.如nat模式設置

route:

2.設置內核路由功能

lvs:

1.添加和查看調度策略

2.若未關閉火墻則將其關閉

?rs(以rs1為例):

解決rs的響應問題,使其不對外響應

效果:

2.2.3 tun模式

工作原理

1.客戶端發送請求數據包,包內有源IP+vip+dport

2.到達vs調度器后對客戶端發送過來的數據包重新封裝添加IP報文頭,新添加的IP報文頭中包含TUNSRCIP(DIP)+TUNDESTIP(RSIP1)并發送到RS1

3.RS收到VS調度器發送過來的數據包做出響應,生成的響應報文中包含SRCIP(VIP)+DSTIP(CIP)+port,響應數據包通過網絡直接回傳給client

2.2.4 fullnet模式

特點:

fullnat:通過同時修改請求報文的源IP地址和目標IP地址進行轉發

CIP --> DIP VIP --> RIP

1.VIP是公網地址,RIP和DIP是私網地址,且通常不在同一IP網絡;因此,RIP的網關一般不會指向DIP

2.RS收到的請求報文源地址是DIP,因此,只需響應給DIP;但Director還要將其發往Client

3.請求和響應報文都經由Director

4.支持端口映射

2.3?lvs持久鏈接

在我們客戶上網過程中有很多情況下需要和服務器進行交互,客戶需要提交響應信息給服務器,如果單 純的進行調度會導致客戶填寫的表單丟失,為了解決這個問題我們可以用sh算法,但是sh算法比較簡單 粗暴,可能會導致調度失衡

解決方案

在進行調度時,不管用什么算法,只要相同源過來的數據包我們就把他的訪問記錄在內存中,也就是把 這個源的主機調度到了那個RS上 如果在短期(默認360S)內同源再來訪問我仍然按照內存中記錄的調度信息,把這個源的訪問還調度到 同一臺RS上。 如果過了比較長的時間(默認最長時間360s)同源訪問再次來訪,那么就會被調度到其他的RS上

?效果:

三.lvs的調度算法

3.1 lvs調度算法類型

靜態方法:僅根據算法本身進行調度,不考慮RS的負載情況

動態方法:主要根據每RS當前的負載狀態及調度算法進行調度Overhead=value較小的RS將被調度

3.2 lvs靜態調度算法

1. RR:roundrobin 輪詢 RS分別被調度,當RS配置有差別時不推薦

2. WRR:Weighted RR,加權輪詢根據RS的配置進行加權調度,性能差的RS被調度的次數少

3. SH:Source Hashing,實現session sticky,源IP地址hash;將來自于同一個IP地址的請求始終發往 第一次挑中的RS,從而實現會話綁定

4. DH:Destination Hashing;目標地址哈希,第一次輪詢調度至RS,后續將發往同一個目標地址的請 求始終轉發至第一次挑中的RS

3.3 lvs動態調度算法

主要根據RS當前的負載狀態及調度算法進行調度Overhead=value較小的RS會被調度

1. LC:least connections(最少鏈接發)

適用于長連接應用Overhead(負載值)=activeconns(活動鏈接數) x 256+inactiveconns(非活 動鏈接數)

2. WLC:Weighted LC(權重最少鏈接) 默認調度方法Overhead=(activeconns x 256+inactiveconns)/weight 3、SED:Shortest Expection Delay,

初始連接高權重優先Overhead=(activeconns+1+inactiveconns) x 256/weight 但是,當node1的權重為1,node2的權重為10,經過運算前幾次的調度都會被node2承接

4. NQ:Never Queue,第一輪均勻分配,后續SED

5. LBLC:Locality-Based LC,動態的DH算法,使用場景:根據負載狀態實現正向代理

6. LBLCR:LBLC with Replication,帶復制功能的LBLC,解決LBLC負載不均衡問題,從負載重的復制 到負載輕的RS

四.防火墻標簽解決輪詢錯誤

以http和https為例,當我們在RS中同時開放80和443端口,那么默認控制是分開輪詢的,這樣我們就出現了一個輪詢錯亂的問題

當我第一次訪問80被輪詢到RS1后下次訪問443仍然可能會被輪詢到RS1上

問題呈現:

RS1和RS2中安裝mod_ssl并重啟apache(以rs1為例)

?問題解決:

效果?:

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

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

相關文章

【管理】持續交付2.0:業務引領的DevOps-精要增訂本,讀書筆記(理論模型,技術架構,業務價值)

【管理】持續交付2.0:業務引領的DevOps-精要增訂本,讀書筆記(理論模型,技術架構,業務價值) 文章目錄1、持續交付的理論模型(第1-3章)1.1 結構圖1.2 持續交付的演進1.3 雙環模型理論體…

Wilcox檢驗的星星怎么規定的?

在 R 里&#xff0c;常見的把 p 值映射為“星號”標記&#xff08;顯著性水平&#xff09;的規則通常是&#xff1a;p 值范圍標記p ≤ 0.0001“****”0.0001 < p ≤ 0.001“***”0.001 < p ≤ 0.01“**”0.01 < p ≤ 0.05“*”0.05 < p ≤ 0.1“.”p > 0.1…

https與DNS的運行流程

HTTPS流程&#xff1a;HTTPS核心:加了TLS層&#xff0c;加密傳輸身份認證TLS:信息加密、校驗機制、身份證書TLS&#xff08;Transport Layer Security&#xff09;握手是建立安全通信通道的關鍵過程&#xff0c;發生在客戶端&#xff08;如瀏覽器&#xff09;和服務器之間。其主…

板子 5.29--7.19

板子 5.29–7.19 目錄 1. 樹狀數組 2. KMP 3. 矩陣快速冪 4. 數位DP 5. 狀壓枚舉子集 6. 快速冪&#xff08;新版 7. priority_queue 8. dijkstra 9. 單調棧 10. debug內容 1. 樹狀數組 // 樹狀數組 快速求前綴和 / 前綴最大值 // 維護位置數量(離散化)...// (區間加 區間求和…

min-max容斥學習筆記

最近報了航電的春季賽&#xff0c;在一道題目里面遇到了做法&#xff0c;感覺挺有意思。 考慮一個&#xff08;多重&#xff09;集合S{ai}S\{a_i\}S{ai?}&#xff0c;有如下的等式成立 min?ai∈S(ai)∑T?S,T≠?(?1)∣T∣?1max?ai∈T(ai)\min_{a_i\in S}(a_i)\sum_{T\sub…

使用帆軟制作項目

https://zhuanlan.zhihu.com/p/23429318335 項目背景 為加快大數據體系建設&#xff0c;穩步推進數字化轉型戰略&#xff0c;規范數據架構體系和數據治理體系&#xff0c;運用大數據推進全行數字化轉型建設&#xff0c;為業務發展提供創新動力&#xff0c;目標是利用金融科技和…

論C/C++的條件編譯#if、#ifdef、#ifndef、#undef

我們以實例來演示&#xff1a; ------------------------------------------實驗①------------------------------------------ 子函數&#xff1a;主函數&#xff1a;當定義了COMMENT_FLAG該宏&#xff0c;且其為0&#xff0c;則運行結果如下&#xff1a;只執行了sub_func_1函…

21、鴻蒙Harmony Next開發:組件導航(Navigation)

目錄 設置頁面顯示模式 設置標題欄模式 設置菜單欄 設置工具欄 路由操作 頁面跳轉 頁面返回 頁面替換 頁面刪除 移動頁面 參數獲取 路由攔截 單例跳轉 子頁面 頁面顯示類型 頁面生命周期 頁面監聽和查詢 頁面轉場 關閉轉場 自定義轉場 共享元素轉場 跨包…

“外賣大戰”正在改變國內“大零售”

出品 | 何璽排版 | 葉媛7月18日&#xff0c;市場監管總局約談美團、餓了么、京東三家外賣平臺&#xff0c;要求“理性競爭、規范促銷”&#xff0c;劍指近期愈演愈烈的“0元購”“0.1秒殺”等外賣補貼亂象。但約談之后&#xff0c;平臺們是真整改&#xff0c;還是玩話術&#x…

當CAN握手EtherCAT:視覺檢測系統的“雙芯合璧”時代來了

在汽車制造的高速生產線上&#xff0c;設備間的“語言不通”曾是工程師們的頭疼事&#xff1a;CAN總線像踏實的老司機&#xff0c;穩扎穩打傳輸傳感器數據&#xff1b;而EtherCAT網關則是追求極致速度的“閃電俠”&#xff0c;主導著實時控制的重任。當視覺檢測系統需要同時對接…

【C語言】動態內存管理全解析:malloc、calloc、realloc與free的正確使用

C語言學習 動態內存分配 友情鏈接&#xff1a;C語言專欄 文章目錄C語言學習前言&#xff1a;一、為什么要有動態內存分配二、malloc和free2.1 malloc2.2 free三、calloc和realloc3.1 calloc3.2 realloc總結附錄上文鏈接下文鏈接專欄前言&#xff1a; 在C語言編程中&#xff0…

基于Arduino智能家居環境監測系統—以光照強度檢測修改

2 相關技術與理論 2.1 Arduino 技術 Arduino 是一款廣受歡迎的開源電子原型平臺&#xff0c;由硬件和軟件組成&#xff0c;為開發者提供了便捷且低成本的解決方案&#xff0c;尤其適用于快速搭建交互式電子項目&#xff0c;在本智能家居環境監測系統中擔當核心角色。? 硬件方…

前端上傳 pdf 文件 ,前端自己解析出來 生成界面 然后支持編輯

要在前端解析 PDF 文件并生成可編輯界面&#xff0c;我們可以使用 PDF.js 庫來解析 PDF 內容&#xff0c;然后將其轉換為可編輯的 HTML 元素。 主要特點和工作原理如下&#xff1a; PDF 解析&#xff1a; 使用 Mozilla 的 PDF.js 庫解析 PDF 文件內容&#xff0c;提取文本信息。…

Linux“一切皆文件“設計哲學 與 Linux文件抽象層:struct file與file_operations的架構解析

在Linux系統中&#xff0c;“一切皆文件”&#xff08;Everything is a file&#xff09;是一個核心設計哲學&#xff0c;它抽象了系統資源的訪問方式&#xff0c;使得幾乎所有硬件設備、進程、網絡連接等都可以通過統一的文件接口&#xff08;如open()、read()、write()、clos…

藍橋杯零基礎到獲獎-第3章 C++ 變量和常量

藍橋杯零基礎到獲獎-第3章 C 變量和常量 文章目錄一、變量和常量1.變量的創建2.變量初始化3.變量的分類4.常量4.1 字?常量4.2 #define定義常量4.3 const 定義常量4.4 練習練習1&#xff1a;買票https://www.nowcoder.com/practice/0ad8f1c0d7b84c6d8c560298f91d5e66練習2&…

物理AI是什么技術?

當英偉達CEO黃仁勛在鏈博會上明確提出“物理AI將是AI的下一浪潮”時&#xff0c;這個看似陌生的概念瞬間引發了科技圈的廣泛關注。究竟什么是物理AI&#xff1f;它與我們熟悉的人工智能有何不同&#xff1f;又將如何重塑我們與物理世界的交互方式&#xff1f; 物理AI&#xff1…

GRIB數據處理相關指令

GRIB 數據格式簡介 GRIB(General Regularly distributed Information in Binary form)&#xff0c;是由世界氣象組織&#xff08;WMO&#xff09;設計和維護的一種用于存儲和傳輸網格數據的標準數據格式&#xff0c;它是一種自描述的二進制壓縮格式&#xff0c;通常具有擴展名…

微服務學習(六)之分布式事務

微服務學習&#xff08;六&#xff09;之分布式事務一、認識Seata二、部署TC服務1、準備數據庫表2、準備配置文件3、docker部署三、微服務集成seata1、引入依賴2、改造配置3、添加數據庫表4、測試四、XA模式1、兩階段提交2、seata的XA模型3、優缺點4、實現步驟五、AT模式1、Sea…

Go實現用戶登錄小程序

寫一個用戶登錄注冊的小程序 運行程序&#xff0c;給出提示1. 注冊輸入用戶名、密碼、年齡、性別 {"用戶名": "root", "passwd": "123456", "age": 18, "sex": "男"}注冊前要判斷是否存在此用戶2. 登錄…

鴻蒙藍牙通信

https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-bluetooth-low-energy 藍牙權限 module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.ACCESS_BLUETOOTH","reason": "…