1. 程式人生 > >lvs負載均衡叢集(NAT模式)

lvs負載均衡叢集(NAT模式)

在這裡插入圖片描述

群集的型別

1、負載均衡叢集:(LB)以提高系統的響應能力,儘可能處理更多的訪問請求、減少延遲為目標,獲得高併發、高負載的整體效能。

2、高可用叢集:(HA)以提高應用系統的可靠性,儘可能減少中斷時間為目標、確保服務的連續性,達到高可用的容錯效果。

3、高效能運算叢集:(HPC)以提高應用系統的CPU運算速度、擴充套件硬體資源和分析能力為目標,獲得相當於大型、超級計算機的高效能運算能力。
在這裡插入圖片描述
1、 第一層,負載排程器:(前端)這是訪問整個群集系統的唯一入口。對外使用所有伺服器共有的vip(虛擬IP)地址。通常配置主、備兩臺伺服器實現熱備份。

2、第二層,伺服器池:群集所提供的應用服務 如http ftp。

3、第三層,共享儲存:為伺服器的所有節點提供穩定、一致的檔案存取服務,確保整個叢集的統一性。
在這裡插入圖片描述
1、地址轉換:簡稱NAT模式,負載排程器作為所有伺服器節點的閘道器,既作為客戶機的訪問入口,也是各節點回應客戶機的訪問出口。(回包給排程器)

2、 IP隧道:簡稱TUN模式,負載排程器僅作為客戶機的訪問入口。各節點通過各自的internet連線直接回應客戶機,而不再經過負載排程器,伺服器節點分散在網際網路中的不同位置,具有獨立的公網IP地址,通過專用IP隧道與負載排程器相互通訊。

3、直接路由:簡稱DR模式,採用半開放網路式結構,各節點並不是分散在各地,而是與排程器同處一個物理網路,負載排程器與各節點伺服器通過本地網路連線,不需要建立專用的IP隧道。(回包給client)

以上三種工作模式中,NAT方式只需要一個公網IP地址,從而成為最易用的一種負載均衡模式。 相比較而言DR 和TUN模式的負載能力更加強大、適用範圍更廣,但節點的安全性較差。
在這裡插入圖片描述
1、輪詢(rr):將收到的訪問請求按照順序輪流分配給叢集中的各節點,均等的對待每一臺伺服器,而不管伺服器實際的連線數和系統負載。

2、加權輪詢(wrr)根據真實伺服器的處理能力輪流分配收到的訪問請求,排程器可以自動查詢各節點的負載情況,並動態調整其權重。這樣能力強的伺服器就承擔了更多的訪問量。

3、最少連結(lc):根據真實伺服器的連線數進行分配,將收到的訪問請求優先分配給連線數最少的節點。如果所有伺服器節點效能相近,這種方式可以更好的均衡負載。

4、加權最少連線(wlc):在伺服器節點效能差異較大的情況下,可以為真實伺服器自動調整權重,權重較高的節點將承受更大比例的活動連線負載。

案例

client 訪問vip 可以訪問到web1和web2網站, 使用NFS釋出共享資源。使得網站同步。(NAT)
在這裡插入圖片描述
首先停掉四臺的這些東西

chkconfig iptables off
chkconfig NetworkManager off
service iptables stop
service NetworkManager stop
cat /etc/sysconfig/selinux | grep SELINUX

在這裡插入圖片描述
把網路配置好 不同的是web1 和web2 需要指定閘道器1.1。拿web1 來舉例
在這裡插入圖片描述

cat /etc/sysctl.conf | grep ip_forward
net.ipv4.ip_forward = 0
sed -i s'/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/' /etc/sysctl.conf 
sysctl -p           #配置路由轉發

在這裡插入圖片描述

 modprobe ip_vs #載入ip_vs模組
 cat /proc/net/ip_vs #確認核心對lvs的支援

在這裡插入圖片描述

yum -y install ipvsadm  #裝ipvsadm群集管理工具

在這裡插入圖片描述

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to 200.0.0.1
service iptables save 
chkconfig iptables on      #寫防火牆規則 1.0網段地址 從eth0 出 源地址轉換成200.0.0.1

在這裡插入圖片描述

ipvsadm -A -t 200.0.0.1:80 -s rr  
ipvsadm -a -t 200.0.0.1:80 -r 192.168.1.2:80 -m -w 1
ipvsadm -a -t 200.0.0.1:80 -r 192.168.1.3:80 -m -w 1
ipvsadm -ln    
service ipvsadm save
chkconfig ipvsadm on    #建立虛擬伺服器 新增伺服器節點

在這裡插入圖片描述
A 表示新增虛擬伺服器
-t 用來指定vip地址及埠
-s 用來指定負載均衡排程演算法——輪詢(rr)、加權輪詢(wrr)、最少連線(lc)、加權最少連線(wlc)
-p 秒數 -p 60 為保持時間(60秒)
-a 表示新增真實伺服器
-r 用來指定rip地址及tcp埠
-m 表示使用NAT叢集模式(-g DR模式、-i TNU模式)
-w 用來設定權重(權重為0表示暫停節點)
-ln 檢視群集狀態

echo 111111 > /var/www/html/index.html
 service httpd start  #建立測試網頁檔案 web2我設定的不一樣 為了看效果

在這裡插入圖片描述
訪問結果如下
在這裡插入圖片描述

使用NFS共享儲存服務

yum -y install nfs-utils rpcbind

在這裡插入圖片描述

chkconfig nfs on
chkconfig rpcbind on

在這裡插入圖片描述

mkdir -p /opt/wwwroot
vim /etc/exports 
/opt/wwwroot    192.168.2.0/24(rw,sync,no_root_squash) #寫入配置檔案
cat /etc/exports  
chmod 770 /opt/wwwroot/  #許可權要注意檔案本身的許可權
#設定共享目錄 NFS配置檔案為/etc/exports 同時共享給不同客戶機、不同許可權,空格隔開指定多個客戶機選項就可以
tail -1 /etc/mtab  # 檢視掛載結果將有以下輸出
192.168.2.1:/opt/wwwroot /var/www/html nfs rw,vers=4,addr=192.168.2.1,clientaddr=192.168.2.2 0 0

在這裡插入圖片描述
ro 為只讀 rw 為讀寫 sync 表示同步寫入
no_root_squash 表示以root身份訪問時賦予本地root許可權(預設是root_squash ,將作為nfsnobody降權對待)

service rpcbind restart 
service nfs start  #注意啟動順序,不然不可以訪問
netstat -anpt | grep rpcbind #將有以下輸出

tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      2280/rpcbind        
tcp        0      0 :::111                      :::*                        LISTEN      2280/rpcbind        

在這裡插入圖片描述

showmount -e 192.168.2.1 #web 1  web 2 檢視共享儲存將有以下輸出
Export list for 192.168.2.1:
/opt/wwwroot 192.168.2.0/24
mount 192.168.2.1:/opt/wwwroot /var/www/html  #掛載共享儲存到本地網站首頁路徑
#web1  web2 同樣操作

在這裡插入圖片描述

echo 456456456456 > /var/www/html/index.html  #web1 更新網站首頁檔案

在這裡插入圖片描述
web 2 也變了
在這裡插入圖片描述

#改了一下網頁內容

在這裡插入圖片描述

setenforce 0 #如果httpd服務起不來 輸入這個服務起來 訪問不了去lvs排程器也執行一下。

在這裡插入圖片描述
寫自動掛載配置檔案

vim /etc/fstab 
192.168.2.1:/opt/wwwroot   /var/www/html  nfs defaults,_netdev  0  0

在這裡插入圖片描述