超詳細LVS負載均衡群集-NAT模式
群集(或集群)和稱呼來自於英文單詞cluster,表示一群、一串的意思,用在服務器領域則表示大量服務器的集合體,以區分於單個服務器。
企業群集分類
根據群集所針對的目標差異,可分為三種類型
負載均衡群集(Load Balance Cluster)
以提高應用系統的響應能力、盡可能處理更多的訪問請求、減少延遲為目標,獲得高並發、高負載(LB)的整體性能。例如,"DNS輪詢",,"應用層交換"、"反向代理"等都可用作負載均衡群集。LB的負載分配依賴於主節點的分流算法,將來自客戶機的訪問請求分擔給多個服務器節點,從而緩解整個系統的負載壓力
高可用群集(High Availability Cluster)
以提高應用系統的可靠性、盡可能地減少中斷時間為目標,確保服務的連續性,達到高可用(HA)的容錯效果。例如,“故障切換”、“雙機熱備”、“多機熱備”等都屬於高可用群集技術(不能中斷,要繼續予以客戶響應)。HA的工作方式包括雙工和主從兩種模式。雙工即所有節點同時在線;主從則只有主節點在線,但當出現故障時從節點能自動切換為主節點。
高性能運算群集(High Performance Computer Cluster)
以提高應用系統的CPU運算速度、擴展硬件資源和分析能力為目標,獲得相當於大型、超級計算機的高性能運算(HPC)能力。例如,"雲計"、"網格計算"也可視為高性能運算的一種。高性能運算群集的高性能依賴於"分布式運算"、"並行計算",通過專用硬件和軟件將多個服務器的CPU、內存等資源整合在一起,實現只有大型、超級計算機才具備的計算能力
負載均衡群集工作原理
地址轉換( Network Address Translation):
簡稱NAT模式,類似於防火墻的私有網絡結構,負載調度器作為所有服務器節點的網關,即作為客戶機的訪問入口,也是各節點回應客戶機的訪問出口。服務器節點使用私有IP地址,與負載調度器位於同一個物理網絡,安全性要優於其他兩種方式
IP隧道(IP Tunnel):
簡稱TUN模式,采用開放式的網絡結構,負載調度器僅作為客戶機的訪問入口,各節點通過各自的Internet連接直接回應客戶機,而不再經過負載調度器。服務器節點分散在互聯網中的不同位置,具有獨立的公網IP地址,通過專用IP隧道與負載調度器相互通信
直接路由(Direct Routing):
簡稱DR模式,采用半開放式的網絡結構,與TUN模式的結構類似,但各節點並不是分散在各地,而是與調度器位於同一個物理網絡。負載調度器與各節點服務器通過本地網絡連接,不需要建立專用的IP隧道
LVS調度算法
輪詢(Round Robin):將收到的訪問請求按照順序輪流分配給群集中的各節點(真實服務器),均等地對待每一臺服務器,而不管服務器實際的連接數和系統負載。
加權輪詢(Weighted Round Robin):根據真實服務器的處理能力輪流分配收到的訪問請求,調度器可以自動查詢各節點的負載情況,並動態調整其權重。這樣可以保證處理能力強的服務器承擔更多的訪問流量。
最少連接(Least Connections):根據真實服務器已建立的連接數進行分配,將收到的訪問請求優先分配給連接數最少的節點。如果所有的服務器節點性能相近,采用這種方式可以更好地均衡負載。
加權最少連接(Weighted Least Connections):在服務器節點的性能差異較大的情況下,可以為真實服務器自動調整權重,權重較高的節點將承擔更大比例的活動連接負載
實驗環境
主機 | 操作系統 | IP地址 |
---|---|---|
負載調度器 | CentOS 7.4 x86_64 | 172.16.16.1公網(ens37);192.168.100.1內網(ens33) |
Web節點服務器 01 | CentOS 7.4 x86_64 | 192.168.100.72 |
Web節點服務器 02 | CentOS 7.4 x86_64 | 192.168.100.73 |
NFS共享存儲服務器 | CentOS 7.4 x86_64 | 192.168.100.74 |
Client端 | CentOS 7.4 x86_64 | 172.16.16.16 |
搭建步驟
一、部署LVS_NAT
1、調度服務器開啟路由功能
[root@localhost ~]# vim /etc/sysctl.conf
添加以下參數:
net.ipv4.ip_forward = 1 #設置為1,開啟路由功能
[root@localhost ~]# sysctl -p #重新讀取配置文件
2、加載ip_vs模塊,安裝ipvsadm工具
[root@localhost ~]# modprobe ip_vs #加載內核模塊
[root@localhost ~]# cat /proc/net/ip_vs
[root@localhost ~]# yum -y install ipvsadm #安裝ipvsadm工具
3、配置調度器SNAT轉發規則
[root@localhost ~]# iptables -t nat -F #清除防火墻規則
[root@localhost ~]# iptables -F
[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens37 -j SNAT --to-source 172.16.16.1 #設置SNAT規則
[root@localhost ~]# iptables -t nat -L -n
4、配置調度器負載分配策略
[root@localhost ~]# ipvsadm -C #清除內核虛擬服務器表中的所有記錄
[root@localhost ~]# ipvsadm -A -t 172.16.16.1:80 -s rr
[root@localhost ~]# ipvsadm -a -t 172.16.16.1:80 -r 192.168.100.72 -m -w 1
[root@localhost ~]# ipvsadm -a -t 172.16.16.1:80 -r 192.168.100.73 -m -w 2
ipvsadm工具參數說明
-A:添加虛擬服務器
-a:表示添加真實服務器
-d:刪除某一個節點
-t:指定VIP地址及TCP端口(虛擬服務器)
-r:指定RIP地址及TCP端口(真實服務器)
-s:指定負載調度算法
-m:NAT群集模式
-g:DR模式
-i:TUN模式
-w:設置權重(權重為0時表示暫停節點) 即優先級
[root@localhost ~]# ipvsadm -L -n
[root@localhost ~]# ipvsadm --save > /etc/sysconfig/ipvsadm #保存已修改的分配策略
[root@localhost ~]# systemctl start ipvsadm.service #啟動服務
二、配置節點服務器
1、配置節點1Web服務器
[root@localhost ~]# yum -y install httpd #安裝Web服務器
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf #修改主配置文件
編輯以下參數:
ServerName www.bt.com:80
Listen 192.168.100.72:80
[root@localhost ~]# systemctl start httpd.service #啟動服務
[root@localhost ~]# cd /var/www/html/ #進入站點目錄
[root@localhost html]# echo "this is server1 AAAAAAAAAA" > index.html #編輯默認首頁
2、配置節點2Web服務器
[root@localhost ~]# yum -y install httpd #安裝Web服務器
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf #修改主配置文件
編輯以下參數:
ServerName www.cloud.com:80
Listen 192.168.100.72:80
[root@localhost ~]# systemctl start httpd.service #啟動服務
[root@localhost ~]# cd /var/www/html/ #進入站點目錄
[root@localhost html]# echo "this is server2 BBBBBBBBBB" > index.html #編輯默認首頁
三、Client測試
1、測試輪詢算法
2、測試加權輪詢算法
[root@localhost ~]# ipvsadm -E -t 172.16.16.1:80 -s wrr #將調度算法設置為加權輪詢
[root@localhost ~]# ipvsadm -L -n
四、部署共享存儲
1、安裝NFS軟件包
[root@localhost ~]# yum -y install nfs-utils rpcbind #默認已經安裝
2、啟動服務
[root@localhost ~]# systemctl start rpcbind.service
[root@localhost ~]# systemctl start nfs.service
3、編輯主配置文件
[root@localhost ~]# vim /etc/exports
4、創建共享目錄
[root@localhost ~]# mkdir /opt/page #創建共享目錄
[root@localhost ~]# chmod 777 /opt/page/ #修改共享目錄權限
[root@localhost ~]# cd /opt/page/
[root@localhost page]# echo "<h1>Hello world</h1>" > index.html #創建測試頁面
5、掛載共享目錄
[root@localhost ~]# exportfs -avr
[root@localhost ~]# showmount -e 192.168.100.74
6、刪除所有節點服務器站點網頁
[root@localhost ~]# cd /var/www/html/
[root@localhost html]# rm -rf *
7、所有節點服務器掛載NFS共享目錄
[root@localhost ~]# mount -t nfs 192.168.100.74:/opt/page /var/www/html/ #掛載到Apache站點目錄下
8、測試
超詳細LVS負載均衡群集-NAT模式