LVS負載均衡群集--NAT模式

weixin_49226813發表於2020-11-05

叢集的含義

由多臺主機構成,但對外只表現為一個整體

問題

網際網路應用中,隨著站點對硬體效能、響應速度、服務穩定性、資料可靠性等要求越來越高,單臺伺服器力不從心

解決方法

使用價格昂貴的小型機、大型機使用普通伺服器構建服務群集

企業叢集分類

根據群集所針對的目標差異,可分為三種型別
負載均衡群集
高可用群集
高效能運算群集

負載均衡群集

提高應用系統的響應能力、儘可能處理更多的訪問請求、減少延遲為目標,獲得高併發、高負 載(LB)的整體效能
LB的負載分配依賴於主節點的分流演算法

高可用群集

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

高效能運算群集

提高應用系統的CPU運算速度、擴充套件硬體資源和分析能力為目標,獲得相當於大型、超級計算機的高效能運算(HPC)能力
高效能依賴於“分散式運算”、“平行計算”,通過專用硬體和軟體將多個伺服器的CPU、記憶體等資源整合在一起,實現只有大型、超級計算機才具備的計算能力

LVS的負載排程演算法

1、輪詢
將收到的訪問請求按照順序輪流分配給群集中的各節點(真實伺服器)均等地對待每一臺伺服器,而不管伺服器實際的連線數和系統負載
2、加權輪詢
根據排程器設定的權重值來分發請求,權重值高的節點優先獲得任務,分配的請求數越多
保證效能強的伺服器承擔更多的訪問流量

3、最少連線(Least Connections)
根據真實伺服器已建立的連線數進行分配,將收到的訪問請求優先分配給連線數最少的節點
4、加權最少連線(Weighted Least Connections)
在伺服器節點的效能差異較大時,可以為真實伺服器自動調整權重
效能較高的節點將承擔更大比例的活動連線負載
負載均衡的結構
第一層,負載排程器(Load Balancer或Director)
第二層,伺服器池(Server Pool)
第三層,共享儲存(Share Storage)
在這裡插入圖片描述

負載均衡群集工作模式分析

負載均衡群集是目前企業用得最多的群集型別群集的負載排程技術有三種工作模式
地址轉換wA7
IP隧道
直接路由
NAT模式地址轉換
Network Address Translation,簡稱NAT模式類似於防火牆的私有網路結構,負載排程器作為所有伺服器節點的閘道器,即作為客戶機的訪問入口,也是各節點回應客戶機的訪問出口
伺服器節點使用私有IP地址,與負載排程器位於同一個物理網路,安全性要優於其他兩種方式
在這裡插入圖片描述

TUN模式

IP隧道
1、IP Tunnel,簡稱TUN模式
採用開放式的網路結構,負載排程器僅作為客戶機的訪問入口,各節點通過各自的lnternet連線直接回應客戶機,而不再經過負載排程器
2、伺服器節點分散在網際網路中的不同位置,具有獨立的公網IP地址,通過專用IP隧道與負載排程器相互通訊
在這裡插入圖片描述

LVS負載均衡群集–NAT

NFS共享儲存服務
Network File System,網路檔案系統
依賴於RPC (遠端過程呼叫)
需安裝nfs-utils、rpcbind軟體包
系統服務: nfs、rpcbind
共享配置檔案:/etc/exports
使用NFS釋出共享資源
安裝nfs-utils、rpcbind軟體包
設定共享目錄
啟動NFS服務程式
檢視本機發布的NFS共享目錄
在客戶機中訪問NFS共享資源
安裝rpcbind軟體包,並啟動rpcbind服務
手動掛載NFS共享目錄
fstab自動掛載設定
LVS-NAT部署實戰
在這裡插入圖片描述

LVS-NAT部署步驟

1.載入ip_vs模組,安裝ipvsadm工具
2.開啟路由準發
3.新建LVS虛擬伺服器並新增節點伺服器
4.配置節點伺服器
建立測試網站
掛載NFS共享儲存
建立測試網頁·
5.儲存規則並測試
實驗環境準備
5臺虛擬機器,1臺LVS負載排程器、1臺客戶機、2臺web伺服器、1臺nfs共享伺服器

LVS負載排程器

倆張網路卡
主機名 :server1
IP地址1:20.0.0.10/24(內網地址)
IP地址2:192.168.1.62/24()
web1伺服器
主機名 :server2
IP地址:20.0.0.20/24
web3伺服器
主機名 :server3
IP地址:20.0.0.30/24
nfs共享伺服器
主機名 :server4
IP地址:20.0.0.40/24
客戶機
倆張網路卡
主機名 :server5
IP地址1:20.0.0.50/24
IP地址2:192.168.1.3/24

LVS負載排程器設定

[root@server1 ~]# modprobe ip_vs
[root@server1 ~]# rpm -ivh /mnt/Packages/ipvsadm-1.27-7.el7.x86_64.rpm
[root@server1 ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1		#增加
[root@server1 ~]# vim nat.sh
#!/bin/bash
echo "1" > /proc/sys/net/ipv4/ip_forward
ipvsadm -C
ipvsadm -A  -t 192.168.1.62:80 -s rr
ipvsadm -a  -t 192.168.1.62:80 -r 20.0.0.20:80 -m
ipvsadm -a  -t 192.168.1.62:80 -r 20.0.0.30:80 -m
ipvsadm -Ln
[root@server1 ~]# sh nat.sh
[root@server1 ~]#systemctl stop firewalld
[root@server1 ~]# setenforce 0

配置web伺服器
web1

[root@server2 ~]# yum -y install httpd
[root@server2 ~]# mount 20.0.0.40:/opt/web1 /var/www/html/
[root@server2 ~]# systemctl start httpd.service
[root@server2 ~]#systemctl stop firewalld
[root@server2 ~]# setenforce 0

web2

[root@server3 ~]# yum -y install httpd
root@server3 ~]# mount 20.0.0.40:/opt/web2 /var/www/html/
[root@server3 ~]# systemctl start httpd.service
[root@server3~]#systemctl stop firewalld
[root@server3 ~]# setenforce 0

nfs共享伺服器

[root@server4 ~]# mkdir /opt/web1 /opt/web2
[root@server4 ~]# echo "<h1>This is web2</h1>" >/opt/web2/index.html
[root@server4 ~]# yum -y install rpcbind nfs-utils
[root@server4 ~]# vim /etc/exports
/opt/web1       20.0.0.20(ro)
/opt/web2       20.0.0.30(ro)
[root@server4 ~]# systemctl restart nfs
[root@server4 ~]# systemctl restart rpcbind
[root@server4 ~]#systemctl stop firewalld
[root@server4 ~]# setenforce 0

相關文章