LVS負載均衡群集
LVS地址轉換模式
群集概述
群集的含義
Cluster,叢集,群集
有多臺主機構成,但是對外只表現為一個整體
問題
網際網路應用中,隨著站點對硬體效能能、相應速度、服務穩定性、資料可靠性登要求越來越高,單臺伺服器力不從心
解決方法
使用介個昂貴的小機型、大型機
使用普通伺服器構建伺服器群集
群集的種類
根據群集所針對的目標差異,可分為三種型別
1.負載均衡群集(Load Balance Cluster)
提高應用系統的響應能力、儘可能處理更多的訪問請求、減少延遲為目標,獲得高併發、高負載(LB)的整體效能
LB的負載分配依賴於主節點的分流演算法
2.高可用群集(High Availability Cluster)
提高應用系統的可靠性、儘可能地減少中斷時間為目標,確保服務的連續性,達到高可用(HA)的容錯效果
HA的工作方式包括雙工和主從兩種模式
3.高效能運算群集(High Performance Computer Cluster)
提高應用系統的CPU運算速度、擴充套件硬體資源和分析能力為目標,獲得相當於大型、超級計算機的高效能運算(HPC)能力
高效能依賴於“分散式運算”、“平行計算”、通過專用硬體和軟體將福哦個伺服器的CPU、記憶體登資源整合在一起,實現只有大型、超級計算機才具備的計算能力
負載均衡群集架構
負載均衡的結構
第一層,負載排程器(Load Balancer或Director)
第二層,伺服器池(Server Pool)
第三層,共享儲存(Share Storage)
負載均衡群集工作模式
地址轉換——NAT
IP隧道——Tunnel
直接路由——DR
1.NAT模式(地址轉換)
Network Address Translation,簡稱NAT模式
類似於防火牆的私有網路結構,負載排程器作為所有伺服器節點的閘道器,即作為客戶機的訪問入口,也是個節點回應客戶機的訪問出口
伺服器節點使用私有IP地址,與負載排程器位於同一個物理網路,安全性要尤其其他兩種方式,缺點負載量小
2.TUN模式(IP隧道)
IP Tunnel,簡稱TUN模式
採用開放式的網路結構,負載排程器僅作為客戶機的訪問入口,個節點通過各自的Internet連線直接回應客戶機,而不再經過負載排程器
伺服器節點分散在網際網路中的不同位置,具有獨立的公網IP地址,通過專用IP隧道與負載排程器相互通訊
3.DR模式(直接路由)
Direct Routing ,簡稱DR模式
採用半開放式的網路結構,與TUN模式的結構類似,但各節點並不是分散在各地,而是與排程器位於同一個物理網路
負載排程器與各個節點伺服器通過本地網路連線,不需要建立專用的IP隧道
群集工作模式區別
1.DR模式相同點web節點直接響應客戶機
2.tunnel模式各個節點都有獨立的公網地址,DR沒有
3.TUN各web節點和排程器IP隧道通訊,DR是區域網通訊
4.TUN的web節點直接響應,DR通過路由器響應
LVS虛擬機器伺服器
Linux Virtual Server
針對Linux核心的負載均衡解決方案
1998年5月,由我國的章文嵩博士建立
官方網站:http://www.linuxvirtualserver.org/
確認對lvs的支援
modprobe ip_vs
cat /proc/netip_vs
LVS負載排程演算法
1.輪詢 (Round Robin)
將收到的訪問請求按照順序輪流分配給群集中的各個節點(真是伺服器),均等地對待每一臺伺服器,而不管伺服器實際的連線數和系統負載
2.加權論輪詢(Weighted Round Robin)
根據排程器設定的權重值來分發請求,權重值高的節點優先獲得任務,分配的請求數越多
保證效能牆的伺服器承擔更多的訪問流量
3.最少連線(Least Connections)
根據真是伺服器已簡歷的連線數進行分配,將受到的訪問請求優先分配給連線數最少的節點
4.加權最少連線(Weighted Least Connections)
在伺服器節點的效能差異較大時,可以為真是伺服器自動調整權重
效能較高的節點將承擔更大比例的活動連線負載
LVS群集建立與管理
建立虛擬伺服器
新增、刪除伺服器節點
檢視群集節點情況
儲存負載分配策略
LVS群集部署
部署步驟
1.載入ip_vs模組,安裝ipvsadm工具
2.開啟路由轉發
3.新建LVS虛擬機器伺服器並新增節點伺服器
4.配置節點伺服器
建立測試網站
掛載NFS共享儲存
建立測試網頁
5.儲存規則並測試
群集拓撲圖
部署環境
IP設定
裝置 | IP地址 | 子網掩碼 | 閘道器 | 內/外網 |
---|---|---|---|---|
LVS | 20.0.0.15 | 255.255.255.0 | 外網 | |
LVS | 192.168.2.15 | 255.255.255.0 | 內網 | |
web1 | 192.168.2.16 | 255.255.255.0 | 192.168.2.15 | 內網 |
web2 | 192.168.2.17 | 255.255.255.0 | 192.168.2.15 | 內網 |
nfs | 192.168.2.18 | 255.255.255.0 | 內網 |
NFS共享儲存
1.需安裝nfs-utils、rpcbind軟體包
yum -y install nfs-utils rpcbind
2.設定共享目錄
(為了便於測試,所以設定兩個不同的目錄區分)
mkdir /opt/web1
mkdir /opt/web2
echo "<html><title>web1</title><body><h1>This is web1</h1></body></html>" >> /opt/web1/index.html
echo "<html><title>web2</title><body><h1>This is web2</h1></body></html>" >> /opt/web2/index.html
vi /etc/exports
/opt/web1 192.168.2.16(ro)
/opt/web2 192.168.2.17(ro)
重啟
systemctl restart nfs
檢視本機發布的NFS共享目錄
showmount -e
web1節點
安裝httpd用於測試
yum -y install httpd
檢視NFS伺服器共享的目錄
showmount -e 192.168.2.18
將目錄掛載到網站根目錄
mount 192.168.2.18:/opt/web1 /var/www/html/
檢查一下是否掛載成功
開啟httpd
systemctl start httpd
關閉防火牆
systemctl stop firewalld
setenforce 0
vi /etc/selinux/config
測試
curl http://localhost
web2節點
web2節點和web1節點,除了更改幾個引數之外,其它都一樣
安裝httpd用於測試
yum -y install httpd
檢視NFS伺服器共享的目錄
showmount -e 192.168.2.18
將目錄掛載到網站根目錄
mount 192.168.2.18:/opt/web2 /var/www/html/
檢查一下是否掛載成功
cat /var/www/html/index.html
開啟httpd
systemctl start httpd
關閉防火牆
systemctl stop firewalld
setenforce 0
vi /etc/selinux/config
測試
curl http://localhost
LVS排程部署
1.開啟路由轉發
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
2.手動載入ip_vs模組
modprobe ip_vs
檢視
cat /proc/net/ip_vs
安裝 ipvsadm
yum -y install ipvsadm
編寫指令碼
vim nat.sh
#!/bin/bash
ipvsadm -C
ipvsadm -A -t 20.0.0.15:80 -s rr
ipvsadm -a -t 20.0.0.15:80 -r 192.168.2.16:80 -m
ipvsadm -a -t 20.0.0.15:80 -r 192.168.2.17:80 -m
ipvsadm -Ln
ipvsadm選項
選項 | 說明 |
---|---|
-C | 清除核心虛擬伺服器表中的所有記錄 |
-A | 新增虛擬伺服器 |
-a | 新增真是伺服器 |
-t | 用來指定VIP地址及TCP埠 |
-r | 用來指定RIP地址及TCP埠 |
-s | 用來指定負載排程演算法 |
-m | 表示使用NAT群集模式 |
-g | 表示使用DR群集模式 |
i | 表示使用TUN群集模式 |
執行指令碼
測試
檢視詳細資訊
ipvsadm -Lnc
相關文章
- LVS負載均衡群集--NAT模式負載模式
- LVS負載均衡群集概念、NAT模式LVS負載均衡實戰部署負載模式
- 伺服器群集—LVS負載均衡群集(LVS-NAT部署)伺服器負載
- 伺服器群集LVS負載均衡-NAT伺服器負載
- LVS 負載均衡負載
- Linux LVS 負載均衡Linux負載
- 負載均衡LVS+NAT負載
- 負載均衡之--Nginx、LVS、HAProxy負載Nginx
- LVS 負載均衡之 VS/NAT 模式負載模式
- LVS 負載均衡之 VS/TUN 模式負載模式
- LVS 負載均衡之 VS/DR 模式負載模式
- LVS+KEEPALIVED負載均衡實驗負載
- Haproxy搭建 Web 群集實現負載均衡Web負載
- lvs+keepAlived→效率最高的負載均衡負載
- LVS#MySQL+Keepalived四層負載均衡MySql負載
- 負載均衡之LVS與Nginx對比負載Nginx
- Nginx—tomcat負載均衡動靜分離群集NginxTomcat負載
- 運維講堂:LVS負載均衡模式與F5負載均衡盤點運維負載模式
- LVS+Keepalived 實現高可用負載均衡負載
- LVS負載均衡配置與keepalive服務配置負載
- 伺服器群集—Nginx+Tomcat+keepalived負載均衡、動靜分離群集伺服器NginxTomcat負載
- 叢集,lvs負載均衡的四種工作模式負載模式
- LVS和Nginx實現負載均衡功能的比較Nginx負載
- LVS+Keepalive 實現負載均衡高可用叢集負載
- Nginx+Tomcat負載均衡,動靜分離群集部署解析NginxTomcat負載
- LVS+Keepalived群集
- Nginx/LVS/HAProxy負載均衡軟體的優缺點詳解Nginx負載
- 基於MySQL Cluster + LVS + KeepAlived部署負載均衡高可用架構MySql負載架構
- 使用LVS實現負載均衡原理及安裝配置詳解負載
- 帶你瞭解Nginx+Tomcat負載均衡,動靜分離群集NginxTomcat負載
- gRPC負載均衡(自定義負載均衡策略)RPC負載
- gRPC負載均衡(客戶端負載均衡)RPC負載客戶端
- 負載均衡負載
- lvs 負載均衡兩臺Discuz+rsync+innotify實現資料同步負載
- IP負載均衡負載
- WebSocket負載均衡Web負載
- nginx負載均衡Nginx負載
- NGINX 負載均衡Nginx負載