1. 程式人生 > 其它 >搭建LVS-NAT模式叢集實現負載均衡

搭建LVS-NAT模式叢集實現負載均衡

一、叢集的概述

1.什麼是叢集?
叢集(cluster)就是一組計算機,它們作為一個整體向用戶提供網路資源,這些單個的計算機系統就是叢集的節點(node)。


擴充套件:
PV ( page view )即頁面瀏覽量,通常是衡量一個網路新問頻道或網站甚至一條網路新聞的主要指標。網頁瀏覽數是評價網站流量最常用的指標之一,簡稱為 PV 。
UV ( unique visitor ),指訪問某個站點或點選某條新聞的不同 IP 地址的人數。
在同一天內, uv 只記錄第一次進入網站的具有獨立IP的訪問者,在同一天內再次訪問該網站則不計數。獨立IP訪問者提供了一定時間內不同觀眾數量的統計指標,而沒有反應出網站的全面活動。

2.叢集的種類.集群系統主要分為
LB 負載均衡( Load Balance )叢集。
HA 高可用( High Availability )叢集
HPC 高效能運算( High Perfermance Computing )叢集

LB 實現手段.
硬體:F5負載均衡器
軟體: LVS (4層)- Nginx (7層)

3、 LVS ( Linux Virtual Server )
LVS 是 Linux Virtual Server 的簡寫,即 Linux虛擬伺服器,是一個虛擬的伺服器集群系統。
本專案在1998年5月由章文嵩博士成立,是中國國內最早出現的自由軟體專案之一。
LVS分為3種模式:DR、NAT、TUN
第四種:FULLNAT 擴充套件: 淘寶 ospf+lvs
4、LVS叢集採用三層結構,其主要組成部分為:

第一層:負載排程器(load balancer)
它是整個叢集對外服務的前端機,負責將客戶的請求傳送到後端的一組伺服器上執行,而客戶認為伺服器是來自同一個IP地址(我們可以稱之為VIP 虛擬IP地址)上的。
第二層:伺服器池(server pool)
它是一組真正執行客戶請求的伺服器,執行服務有WEB、MAIL、FTP、DNS等。
第三層:共享儲存(share storage)
它為伺服器池提供一個共享的儲存區,這樣很容易使伺服器池擁有相同的內容,提供相同的服務

二、實戰搭建LVS-NAT模式叢集實現負載均衡

1、NAT(網路地址對映)把私有地址轉換成為公網地址
LVS NAT優點:NAT方式可支援任何作業系統及私有網路並且只需要一個公網IP
LVS NAT缺點:整個系統的效能受到限制,因為執行NAT每次需要重寫包,有一定的延遲;另外,大部份應用有80%的資料是從伺服器流向客戶機,也就是使用者的請求非常短,而伺服器的迴應非常大,對負載均衡器形成很大壓力,成為了新的瓶頸。
真實環境中的拓撲圖如下

本次實驗拓撲圖如下

2、在分發器snowy201增加一塊網絡卡eh1並將這塊網絡卡的網路連線方式設為vmnet4(如VM無vmnet,可以選擇LAN區段)如下圖所示

snowy201: eth0 橋接 IP:192.168.1.201 閘道器:192.168.1.1
snowy201: eth1 vmnet4/LAN區段 IP:192.168.1.202

3、開啟snwoy201分發器的路由轉發功能
[root@snowy201~]#vi /etc/sysctl.conf #編輯配置檔案
net.ipv4.ip_forward=1 #新增此行內容,開啟路由轉發功能
[root@snowy201~]#sysctl -p #讓配置立刻生效
[root@snowy201~]#iptables -F

4、配置snowy201為LVS NAT模式叢集:
安裝:LVS管理工具:ipvsadme
[root@snowy201~]#rpm -ivh /mnt/Packages/ipvsadm-1.25-9.el6.x86_64.rpm
snowy201配置LVS:
新增一個虛擬服務,VIP地址192.168.1.63,服務埠:80
[root@snowy201~]#ipvsadm - A -t 192.168.1.201:80 -s rr
-A 新增一個虛擬服務
-t 表示 TCP 的服務 VIP:PORT .
-s 指定排程演算法
rr 表示 round-robin 代表輪循

新增虛擬伺服器後端的real server:
[root@snowy201~]#ipvsadm -a -t 192.168.1.201 -r 192.168.1.202 -m
[root@snowy201~]#ipvsadm -a -t 192.168.1.201 -r 192.168.1.203 -m
-a 表示新增一個real server
-r 指定real sever的IP地址
-m 表示masquerade也就是NAT方式的LVS
檢視:
[root@snowy201 ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.1.201:80 rr
-> 192.168.2.202:80 Masq 1 0 0
-> 192.168.2.203:80 Masq 1 0 0

三、RealServer:snowy202和snowy203上面的配置:

1、配置2臺real server的IP及網路連線方式
snowy202: ens33 vmnet4/LAN區段 IP:192.168.2.202 閘道器:192.168.2.201
snowy203: ens33 vmnet4/LAN區段 IP:192.168.2.203 閘道器:192.168.2.201
兩臺real server網路連線設定如下圖,如VM無vmnet4,可以選擇LAN區段:

2、兩臺real server機器上都安裝httpd並啟動:
snowy202:
[root@snowy202 ~]#yum install -y httpd
[root@snowy202 ~]#echo "192.168.2.202" > /var/www/html/index.html
[root@snowy202 ~]#systemctl enable httpd --now
[root@snowy202 ~]#iptables -F
[root@snowy202 ~]#netstat -tulnp|grep 80 #檢視服務是否啟動成功
[root@snowy202 ~]#curl http://192.168.2.202 #檢視站點能否訪問
192.168.2.202

snowy203:
[root@snowy203 ~]#yum install -y httpd
[root@snowy203 ~]#echo "192.168.2.203" > /var/www/html/index.html
[root@snowy203 ~]#systemctl enable httpd --now
[root@snowy203 ~]#iptables -F
[root@snowy203 ~]#netstat -tulnp|grep 80 #檢視服務是否啟動成功
[root@snowy203 ~]#curl http://192.168.2.203 #檢視站點能否訪問
192.168.2.203

3、測試LVS NAT模式
[root@snowy201 ~]# curl http://192.168.1.201
192.168.2.202
[root@snowy201 ~]# curl http://192.168.1.201
192.168.2.203
[root@snowy201 ~]# curl http://192.168.1.201
192.168.2.202
[root@snowy201 ~]# curl http://192.168.1.201
192.168.2.203