LVS負載均衡集群

目錄

集群

什么是集群 (含義)

集群的分類

LVS

負載均衡器的集群架構

負載均衡器的群集工作模式

LVS負載均衡器的調度算法

LVS組成作用

組成

作用

LVS群集創建與管理

創建步驟

ipvsadm工具

LVS-NAT部署實戰

1、部署共享存儲

2、配置節點服務器(后端服務器)

3、配置負載調度器LVS

配置SNAT轉發規則

加載LVS內核模塊

安裝ipvsadm管理工具

配置負載分配策略

測試


集群

什么是集群 (含義)

Cluster、集群、群集,由多臺主機構成,但對外只表現為一個整體,只提供一個訪問入口(域名與IP地址),相當于一臺大型計算機。將多臺主機作為一個整體,對外提供相同的服務就是集群

集群使用的場景
高并發時使用

集群的分類

負載均衡群集
減少響應延遲,提供并發處理能力。
提高應用系統的響應能力、盡可能處理更多的訪問請求減少延遲為目標,獲得高并發、高負載(LB)的整體性能LB的負載分配依賴于主節點的分流算法

高可用群集
保證系統穩定性,減少服務器中斷的時間,減少損失
提高應用系統的可靠性、盡可能地減少中斷時間為目標,確保服務的連續性,達到高可用(HA)的容錯效果HA的工作方式包括雙工和主從兩種模式

高性能運算群集?
分布式,高性能運算能力,并發
提高應用系統的CPU運算速度、擴展硬件資源和分析能力為目標,獲得相當于大型、超級計算機的高性能運算(HPC)能力高性能依賴于“分布式運算”、“并行計算”,通過專用硬件和軟件將多個服務器的CPU、內存等資源整合在一起,實現只有大型、超級計算機才具備的計算能力

LVS

負載均衡器的集群架構


第一層,負載調度器?
通過調度算法以及RIP發送
訪問整個群集系統的唯一入口,對外使用所有服務器共有的VIP地址,也稱為群集IP地址。通常會配置主、備兩臺調度器實現熱備份,當主調度器失效以后能夠平滑替換至備用調度器,確保高可用性。
第二層,節點服務池
所有服務器用的資源通過
群集所提供的應用服務、由服務器池承擔,其中每個節點具有獨立的RIP地址(真實IP),只處理調度器分發過來的客戶機請求。當某個節點暫時失效時,負載調度器的容錯機制會將其隔離,等待錯誤排除以后再重新納入服務器池。
第三層,共享存儲
提供網站,存儲資源
為服務器池中的所有節點提供穩定、一致的文件存取服務,確保整個群集的統一性。共享存儲可以使用NAS設備,或者提供NFS共享服務的專用服務器。

?

負載均衡器的群集工作模式

地址轉換

簡稱NAT模式Network Address Translation,類似于防火墻的私有網絡結構,負載調度器作為所有服務器節點的網關,即作為客戶機的訪問入口,也是各節點回應客戶機的訪問出口服務器節點使用私有IP地址,與負載調度器位于同一個物理網絡,安全性要優于其他兩種方式

調度作為網關,是訪問請求的入口,也是響應訪問的出口,在高并發場景中負載壓力很高,NAT轉換可以提高安全性,一般不會使用這種方式


IP隧道

IP Tunnel,簡稱TUN模式采用開放式的網絡結構,負載調度器僅作為客戶機的訪問入口,各節點通過各自的Internet連接直接回應客戶機,而不再經過負載調度器
服務器節點分散在互聯網中的不同位置具有獨立的公網IP地址,通過專用IP隧道與負載調度器相互通信

僅是訪問請求的入口,響應數據不經過調度器但是需要大量的公網IP和專用的IP隧道成本太高,數據轉發受IP隧道的額外影響,不會使用這種方式


直接路由

Direct Routing,簡稱DR模式采用半開放式的網絡結構,與TUN模式的結構類似,但各節點并不是分散在各地,而是與調度器位于同一個物理網絡負載調度器與各節點服務器通過本地雙絡連接,不需要建立專用的IP隧道
關于LVS虛擬服務器

僅是訪問請求入口,響應數據不經過調度器,節點服務器和調度器在一個物理網絡中,數據進行轉發不受額外影響

LVS負載均衡器的調度算法

輪詢
加權輪詢
最少連接
加權最少連接

LVS組成作用

組成

1.LVS基于內核態的netfilter框架來實現的IPVS功能,工作在內核態,用戶配置VIP等相關信息并且傳遞到IPVS,需要用到IPVSadm工具
2.IPVSadm是IVS用戶態的配套工具,它可以實現VIP和RS的增刪改查。IPVSadm就是類似于iptables根據的地位

作用

1.主要用于多服務器的負載均衡
2.工作在網絡層,可實現高性能、高可用的服務集群技術
3.廉價,可以把許多低性能的服務器組合在一起形成一個超級服務器
4.易用,配置簡單,有多重負載均衡的方式
5.穩定可靠,即使在集群的服務器中,某臺服務器無法正常工作,也不影響整體效果
6.可擴展性好

LVS群集創建與管理

創建步驟

1.創建虛擬服務器
2.添加、刪除服務器節點
3.查看群集及節點情況
4.保存負載分配策略

ipvsadm工具

選項說明

-A?? ?添加虛擬服務器
-D?? ?刪除整個虛擬服務器
-s?? ?指定負載調度算法 (輪詢:rr、加權輪詢: wrr、最少連接: lc、加權最少連接: wlc )
-a?? ?表示添加真實服務器 (節點服務器)
-d?? ?刪除某一個節點
-t?? ?指定 VIP地址及 TCP端口
-r?? ?指定 RIP地址及 TCP端口
-m?? ?表示使用 NAT群集模式.
-g?? ?表示使用 DR模式
-i?? ?表示使用 TUN模式
-w?? ?設置權重 (權重為 0 時表示暫停節點)
-p 60?? ?表示保持長連接60秒
-l?? ?列表查看 LVS 虛擬服務器 (默認為查看所有)
-n?? ?以數字形式顯示地址、端口等信息,常與 “-l” 選項組合使用。ipvsadm -ln

LVS-NAT部署實戰

LVS負載調度器:ens33:192.168.233.110 ens36:10.0.0.1(vmnet3)
Web1 節點服務器1:192.168.233.60
Web2 節點服務器2:192.168.233.70
NFS服務器:192.168.233.100
客戶端(win10):10.0.0.12 (Vmnet3)

PS:?
① win10虛擬機(客戶端)網關設置為10.0.0.1
② web服務器 網關設置為 192.168.233.110

1、部署共享存儲

(NFS服務器:192.168.233.100)

systemctl stop firewalld.service?
systemctl disable firewalld.service?
setenforce 0yum install -y nfs-utils rpcbindsystemctl start nfs.service?
systemctl start rpcbind.service
systemctl enable nfs.service?
systemctl enable rpcbind.servicemkdir /opt/kgc /opt/benet
chmod 777 /opt/kgc /opt/benetvim /etc/exports
/usr/share *(ro,sync)
/opt/kgc 192.168.233.0/24(rw,sync)
/opt/benet 192.168.233.0/24(rw,sync)#發布共享
exportfs -rv
showmount -e

2、配置節點服務器(后端服務器)

192.168.233.60、192.168.233.70systemctl stop firewalld.service?
systemctl disable firewalld.service?
setenforce 0#修改網卡網關為LVS服務器yum install -y httpd
systemctl start httpd.service?
systemctl enable httpd.serviceyum install -y nfs-utils rpcbindsystemctl start rpcbind.service
systemctl enable rpcbind.serviceshowmount -e 192.168.233.100#web1:192.168.233.60
mount.nfs 192.168.233.100:/opt/kgc /var/www/html/echo 'this is kgc' > /var/www/html/index.htmlvim /etc/fstab?
192.168.233.100:/opt/kgc /var/www/html nfs defaults,_netdev 0 0
mount -a#web2:192.168.233.70
mount.nfs 192.168.233.100:/opt/benet /var/www/html/echo 'this is benet' > /var/www/html/index.htmlvim /etc/fstab?
192.168.233.100:/opt/benet /var/www/html nfs defaults,_netdev 0 0mount -a

3、配置負載調度器LVS

ens33:192.168.233.110?ens36:10.0.0.1

systemctl stop firewalld.service?
systemctl disable firewalld.service?
setenforce 0


配置SNAT轉發規則

vim /etc/sysctl.conf
net.ipv4.ip_forward=1sysctl -piptables -t nat -F
iptables -Fiptables -t nat -A POSTROUTING -s 192.168.233.0/24 -o ens36 -j SNAT --to-source 10.0.0.1

加載LVS內核模塊

modprobe ip_vs ? #手動加載ip_vs模塊
cat /proc/net/ip_vs ? ?#查看ip_vs版本信息

安裝ipvsadm管理工具

yum install -y ipvsadm#注意:啟動服務前必須保存負載分配策略,否則將會報錯
ipvsadm-save > /etc/sysconfig/ipvsadm
或者
ipvsadm --save > /etc/sysconfig/ipvsadm
或者
touch /etc/sysconfig/ipvsadmsystemctl start ipvsadm.service

配置負載分配策略

NAT模式只要在服務器上配置,節點服務器不需要特殊配置

ipvsadm -C ? ? #清除原有策略
ipvsadm -A -t 10.0.0.1:80 -s rr
ipvsadm -a -t 10.0.0.1:80 -r 192.168.233.60:80 -m -w 1
ipvsadm -a -t 10.0.0.1:80 -r 192.168.233.70:80 -m -w 1ipvsadm ? ? #啟動策略ipvsadm -ln ? ?#查看節點狀態,Masq代表 NAT模式
ipvsadm-save > /etc/sysconfig/ipvsadm ? ?#保存策略


測試

在win10上使用瀏覽器訪問10.0.0.1,刷新瀏覽器測試負載均衡
PS:刷新間隔時間需要稍長一點

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

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

相關文章

JetPack Compose 學習筆記(持續整理中...)

1.為什么要學? 1.命令式和聲明式 UI大戰,個人認為命令式UI自定義程度較高,能更深入到性能,內存優化方面,而申明式UI 是現在主流的設計,比如React,React Native,Flutter,Swift UI等等,現在性能也逐漸在變得更好 2.還有一個原因compose 是KMM 是完整跨平臺的UI基礎 3.…

kafka使用心得(一)

kafka入門 一種分布式的、基于發布/訂閱的消息系統,scala編寫,具備快速、可擴展、可持久化的特點。 基本概念 topic 主題 partition 分區,一個topic下可以有多個partition,消息是分散到多個partition里存儲的,part…

劍指Offer48.最長不含重復字符的子字符串 C++

1、題目描述 請從字符串中找出一個最長的不包含重復字符的子字符串,計算該最長子字符串的長度。 示例 1: 輸入: “abcabcbb” 輸出: 3 解釋: 因為無重復字符的最長子串是 “abc”,所以其長度為 3。 示例 2: 輸入: “bbbbb” 輸出: 1 解釋: 因為無重復字…

圖像處理技巧形態學濾波之膨脹操作

1. 引言 歡迎回來,我的圖像處理愛好者們!今天,讓我們繼續研究圖像處理領域中的形態學計算。在本篇中,我們將重點介紹腐蝕操作的反向效果膨脹操作。 閑話少說,我們直接開始吧! 2. 膨脹操作原理 膨脹操作…

macOS CLion 使用 bits/stdc++.h

macOS 下 CLion 使用 bits/stdc.h 頭文件 terminal運行 brew install gccCLion里配置 -D CMAKE_CXX_COMPILER/usr/local/bin/g-11

Visual Studio 2022 中解決使用scanf報錯的方法(一勞永逸)

目錄 【前言】 一、scanf報錯示例 二、解決使用scanf報錯的方法 解決方法1(不推薦) 解決方法2(不推薦) 解決方法3(強烈推薦) 第一步 第二步 第三步 三、效果演示(方法三) …

根據一棵樹的兩種遍歷構造二叉樹

題目 給定兩個整數數組 preorder 和 inorder ,其中 preorder 是二叉樹的先序遍歷, inorder 是同一棵樹的中序遍歷,請構造二叉樹并返回其根節點。 示例 1: 輸入: preorder [3,9,20,15,7], inorder [9,3,15,20,7] 輸出: [3,9,20,null,null,…

Unity-Linux部署WebGL項目MIME類型添加

在以往的文章中有提到過使用IIS部署WebGL添加MIME類型使WebGL項目在瀏覽器中能夠正常加載,那么如果咱們做的是商業項目,往往是需要部署在學校或者云服務器上面的,大部分情況下如果項目有接口或者后臺管理系統,后臺基本都會使用Lin…

機器學習筆記:李宏毅ChatGPT Finetune VS Prompt

1 兩種大語言模型:GPT VS BERT 2 對于大語言模型的兩種不同期待 2.1 “專才” 2.1.1 成為專才的好處 Is ChatGPT A Good Translator? A Preliminary Study 2023 Arxiv 箭頭方向指的是從哪個方向往哪個方向翻譯 表格里面的數值越大表示翻譯的越好 可以發現專門做翻…

Ceph入門到精通-Linux下Ceph源碼編譯和GDB調試

Ceph版本:14.2.22 Linux版本:ubuntu-server 18.04 第一部分 下載Ceph源碼 1.1 配置Ceph源碼鏡像源 Ceph源碼是托管在Github上,由于某些原因,國內訪問Github網站很慢,所以需要從其他途徑加速獲取源碼。Github官方給出…

【ubuntu18.04】01-network-manager-all.yaml和interfaces和resolv.conf各有什么區別和聯系

文章目錄 01-network-manager-all.yaml、interfaces 和 resolv.conf 是與網絡配置相關的文件,它們在網絡設置中有著不同的作用和使用方式。 01-network-manager-all.yaml: 這是一個配置文件,通常在 Ubuntu 系統上使用 NetworkManager 進行網絡管理時使用…

ChatGPT?保密嗎?它有哪些潛在風險?如何規避?

自2022年11月公開發布以來,ChatGPT已成為許多企業和個人的必備工具,但隨著該技術越來越多地融入我們的日常生活,人們很自然地想知道:ChatGPT是否是保密的。 問:ChatGPT保密嗎? 答:否&#xff0…

C++11并發與多線程筆記(3)線程傳參詳解,detach()大坑,成員函數做線程函數

C11并發與多線程筆記(3)線程傳參詳解,detach 大坑,成員函數做線程函數 1、傳遞臨時對象作為線程參數1.1 要避免的陷阱11.2 要避免的陷阱21.3 總結 2、臨時對象作為線程參數2.1 線程id概念2.2 臨時對象構造時機抓捕 3、傳遞類對象…

VR時代真的到來了?

業界對蘋果的期待是,打造一臺真正顛覆性的,給頭顯設備奠定發展邏輯底座的產品,而實際上,蘋果只是發布了一臺更強大的頭顯。 大眾希望蘋果回答的問題是“我為什么需要一臺AR或者VR產品?”,但蘋果回答的是“…

從零開始學習 Java:簡單易懂的入門指南之MAth、System(十二)

常見API,MAth、System 1 Math類1.1 概述1.2 常見方法1.3 算法小題(質數)1.4 算法小題(自冪數) 2 System類2.1 概述2.2 常見方法 1 Math類 1.1 概述 tips:了解內容 查看API文檔,我們可以看到API文檔中關于Math類的定義如下: Math類…

每天一道leetcode:300. 最長遞增子序列(動態規劃中等)

今日份題目: 給你一個整數數組 nums ,找到其中最長嚴格遞增子序列的長度。 子序列 是由數組派生而來的序列,刪除(或不刪除)數組中的元素而不改變其余元素的順序。例如,[3,6,2,7] 是數組 [0,3,1,6,2,2,7] …

【JavaEE進階】SpringBoot項目的創建

文章目錄 一. SpringBoot簡介1. 什么是SpringBoot?2. SpringBoot的優點 二. SpringBoot項目創建1. 使用IDEA創建2. 使用網頁創建SpringBoot項目 三. 運行SpringBoot項目 一. SpringBoot簡介 1. 什么是SpringBoot? Spring Boot 是一個用于快速構建基于 Spring 框架的應用程序…

Spring對象裝配

在spring中,Bean的執行流程為啟動spring容器,實例化bean,將bean注冊到spring容器中,將bean裝配到需要的類中。 既然我們需要將bea裝配到需要的類中,那么如何實現呢?這篇文章,將來闡述一下如何實…

SOFABoot——基本使用(筆記)

文章目錄 一、前言二、快速開始2.1 基本搭建2.2 測試是否成功2.3 其他部分日志測試異步啟動 三、SOFABoot的模塊化開發3.1 基于Spring上下文的隔離3.2 Root Application Context3.3 模塊并行化啟動3.4 JVM服務與RPC服務的發布與引用3.5 模塊配置Module-NameRequire-ModuleSprin…

wsl2安裝mysql環境

安裝完mysql后通過如下命令啟動mysql service mysql start 會顯示如下錯誤: mysql: unrecognized service 實際上上面顯示的錯誤是由于mysql沒有啟動成功造成的 我們要想辦法成功啟動mysql才可以 1.通過如下操作就可以跳過密碼直接進入mysql環境 2.如果想找到my…