目錄
一、什么是集群
二.集群使用在那個場景
三.集群的分類
四.負載集群的架構(gòu)
1.第一層,負載調(diào)度器
2.第二層,服務(wù)器池
3.第三層,共享存儲
五.負載均衡集群的工作模式
1.地址轉(zhuǎn)換 (NAT模式)
2.IP隧道 (TUN模式)
3.直接路由 (DR模式)
六.LVS虛擬服務(wù)器
2.LVS組成
3.LVS作用(1)主要用于多服務(wù)器的負載均衡
七.LVS負載調(diào)度算法
1.輪詢(rr)
2.加權(quán)輪詢
3.最少連接
4.加權(quán)最少連接
八.實戰(zhàn)部署步驟及需求
1.使用ipvsadm工具
?ipvasdm工具選項
NAT模式 LVS負載均衡群集部署
?部署NFS共享存儲服務(wù)(NFS服務(wù)器:192.168.158.22/24)
?編輯
部署兩臺WEB服務(wù)器(節(jié)點服務(wù)器)
第一臺web服務(wù)器 192.168.158.25/24
?編輯第二臺第二臺web服務(wù)器(192.168.158.26/24)
?部署LVS負載調(diào)度服務(wù)器
一、什么是集群
1.cluster,集群、群集
2.由多臺主機構(gòu)成,但對外只表現(xiàn)為一個整體,只提供一個訪問入口(域名與IP地址),相當(dāng)于一臺大型計算機。
二.集群使用在那個場景
用在高并發(fā)
高可用,訪問流量多的時候
三.集群的分類
1.負載均衡器群集
(1)提高應(yīng)用系統(tǒng)的響應(yīng)能力、盡可能處理更多的訪問請求減少延遲為目標(biāo),獲得高并發(fā)、高負載(LB)的整體性能
(2)LB的負載分配依賴于主節(jié)點的分流算法
(3)訪問請求分擔(dān)給多個服務(wù)器節(jié)點,從而緩解整個系統(tǒng)的負載壓力。例如,“DNS輪詢“代理”等。
2.高可用群集
(1)提高應(yīng)用系統(tǒng)的可靠性,盡可能的減少中斷時間為目標(biāo),確保服務(wù)的連續(xù)性,達到高可用(HA)的容錯效果。
(2)HA的工作方式包括雙工和主從兩種模式,雙工即所有節(jié)點同時在線,主從則只有主節(jié)點在線,但當(dāng)出現(xiàn)故障時從節(jié)點能自動切換為主節(jié)點,例如“故障切換”“雙機熱備”等
3. 高性能運算群集
(1) 以提高應(yīng)用系統(tǒng)的CPU運算速度、擴展硬件資源和分析能力為目標(biāo),獲得相當(dāng)于大型、超級計算機的高性能運算(HPC)能力
(2)? 高性能依賴于"分布式運算”、“并行計算” , 通過專用硬件和軟件將多個服務(wù)器的CPU、內(nèi)存等資源整合在一起,實現(xiàn)只有大型、超級計算機才具備的計算能力
四.負載集群的架構(gòu)
1.第一層,負載調(diào)度器
訪問整個群集系統(tǒng)的唯一入口,對外使用所有服務(wù)器共有的vip地址,也稱為群集IP地址,通常會配置主備兩臺調(diào)度器實現(xiàn)熱備份,當(dāng)主調(diào)度器失效以后能夠平滑替換至備用調(diào)度器,確保高可用性。
2.第二層,服務(wù)器池
群集所提供的應(yīng)用服務(wù),由服務(wù)器池承擔(dān),其中每個節(jié)點具有獨立的RIP地址(真實ip),只處理調(diào)度器分發(fā)過來的客戶機請求,當(dāng)某個節(jié)點暫時失效時,負載調(diào)度器的容錯機制會將其隔離,等待錯誤排除以后再重新納入服務(wù)器池
3.第三層,共享存儲
為服務(wù)器池中的所以節(jié)點提供穩(wěn)定,一致的文件存取服務(wù),確保整個群集的統(tǒng)一性。共享存儲可以使用NAS設(shè)備,或者提供NFS共享服務(wù)的專用服務(wù)器.
五.負載均衡集群的工作模式
1.地址轉(zhuǎn)換 (NAT模式)
(1)類似于防火墻的私有網(wǎng)絡(luò)結(jié)構(gòu),負載調(diào)度器作為所有服務(wù)器節(jié)點的網(wǎng)關(guān),即作為客戶機的訪問入口,也是各節(jié)點回應(yīng)客戶機的訪問出口
(2)服務(wù)器節(jié)點使用私有ip地址,與負載調(diào)度器位于同一個物理網(wǎng)絡(luò),安全性要優(yōu)于其他兩種方式
2.IP隧道 (TUN模式)
(1)采用開放式的網(wǎng)絡(luò)結(jié)構(gòu),負載調(diào)度器僅作為客戶機的訪問入口,各節(jié)點通過各自的Internet連接直接回應(yīng)客戶機,而不在經(jīng)過負載調(diào)度器
(2)服務(wù)器節(jié)點分散在互聯(lián)網(wǎng)中的不同位置,具有獨立的公網(wǎng)ip地址,通過專用的ip隧道與負載調(diào)度器相互通信
3.直接路由 (DR模式)
(1)采用半開放式的網(wǎng)絡(luò)結(jié)構(gòu),與TUN模式的結(jié)構(gòu)累死,但各節(jié)點并不是分散在各地,而是與調(diào)度器位于同一個物理網(wǎng)絡(luò)
(2)負載調(diào)度器與各節(jié)點服務(wù)器通過本地網(wǎng)絡(luò)連接,不需要建立專用的ip隧道
六.LVS虛擬服務(wù)器
1.LVS概述
(1)Linux Virtual Server是針對Linux內(nèi)核開發(fā)的負載均衡解決方案,由我國博士章文嵩在1998年創(chuàng)建,LVS實際上相當(dāng)于基于IP地址的虛擬化應(yīng)用,為基于IP地址和內(nèi)容請求分發(fā)的負載均衡提出的一種高效的解決方法
(2)LVS現(xiàn)在已成為Linux內(nèi)核的一部分,默認編譯為ip_vs模塊,必要時能夠自動調(diào)用。在CentOS7系統(tǒng)中,以下操作可以手動加載ip_vs模塊,并查看當(dāng)前系統(tǒng)中ip_vs模塊的版本信息。
六.LVS虛擬服務(wù)器
1.LVS概述
(1)Linux Virtual Server是針對Linux內(nèi)核開發(fā)的負載均衡解決方案,由我國博士章文嵩在1998年創(chuàng)建,LVS實際上相當(dāng)于基于IP地址的虛擬化應(yīng)用,為基于IP地址和內(nèi)容請求分發(fā)的負載均衡提出的一種高效的解決方法
(2)LVS現(xiàn)在已成為Linux內(nèi)核的一部分,默認編譯為ip_vs模塊,必要時能夠自動調(diào)用。在CentOS7系統(tǒng)中,以下操作可以手動加載ip_vs模塊,并查看當(dāng)前系統(tǒng)中ip_vs模塊的版本信息。
2.LVS組成
(1)Lvs是基于內(nèi)核態(tài)的net filter框架實現(xiàn)的IPVS功能,工作在內(nèi)核態(tài),用戶配置VRRP
(2)ipvsadm是lvs用戶態(tài)的配套工具,可以實現(xiàn)VID華人RS的增刪改查
3.LVS作用 (1)主要用于多服務(wù)器的負載均衡
(2)工作在網(wǎng)絡(luò)層,可實現(xiàn)高性能高可用的服務(wù)集群技術(shù)
(3)廉價,可把許多低性能的服務(wù)器組合在一起形成一個超級服務(wù)器
(4)易用,配置簡單 有多重負載均衡的方法
(5)穩(wěn)定可靠,即使在集群的服務(wù)器中某臺服務(wù)器無法正常工作,也不影響整體效果
(6)可擴展性好
4.LVS和nginx比較
(1)Lvs比nginx具有更強的抗負載能力,性能高 對內(nèi)存和CPu資源消耗低
(2)LVS工作在網(wǎng)絡(luò)層,網(wǎng)絡(luò)依懶性大,穩(wěn)定性高。nginx安裝配置比較簡單,網(wǎng)絡(luò)性依賴小
(3)LVS不支持正則匹配處理,無法實現(xiàn)動靜分離效果,nginx可以實現(xiàn)動靜分離這方面的功能
(4)LVS適用的協(xié)議范圍廣,nginx僅支持HTTP和HTTPS、Email協(xié)議,適用范圍小
七.LVS負載調(diào)度算法
1.輪詢(rr)
將收到的訪問請求按照順序輪流分配給群集中的各節(jié)點(真實服務(wù)器),均等的對待每一個服務(wù)器,而不管服務(wù)器實際的連接數(shù)和系統(tǒng)負載
2.加權(quán)輪詢
(1)根據(jù)調(diào)度器設(shè)置的權(quán)重值分發(fā)請求,權(quán)重值高的節(jié)點優(yōu)先獲得任務(wù),分配的請求數(shù)越多
(2)保證性能強的服務(wù)器承擔(dān)更多的訪問流量
3.最少連接
根據(jù)真實服務(wù)器已建立的連接數(shù)進行分配,將收到的訪問請求優(yōu)先分配給連接數(shù)最少的節(jié)點
4.加權(quán)最少連接
(1)在服務(wù)器節(jié)點的性能差異較大時,可以為真實服務(wù)器自動調(diào)整權(quán)重
(2)性能較高的節(jié)點將承擔(dān)更大比例的活動連接負載
八.實戰(zhàn)部署步驟及需求
1.使用ipvsadm工具
創(chuàng)建虛擬服務(wù)器
添加、刪除服務(wù)器節(jié)點
查看群集及節(jié)點情況
保存負載分配策略
?ipvasdm工具選項
-A:添加虛擬服務(wù)器
-D:刪除整個虛擬fuwq
-s:指定負載調(diào)度算法(輪詢,加權(quán)輪詢,最少連接,加權(quán)最少連接,wlc)
-a:表示添加真實服務(wù)器(節(jié)點服務(wù)器)
-d:刪除某一個節(jié)點
-t:指定VIP地址及TCP端口
-r:指定RIP地址及TCP端口
-m:表示使用NAT群集模式
-g:表示使用DR模式
-i:表示使用TUN模式
-w:設(shè)置權(quán)重(權(quán)重為0時表示暫停節(jié)點)
-p60:表示保持長連接60秒
-l:列表查看LVS虛擬服務(wù)器(默認為查看所有)
-n:以數(shù)字形式顯示地址,端口等信息,常與“-l”選項組合使用
NAT模式 LVS負載均衡群集部署
案例環(huán)境及部署圖示
一臺NFS服務(wù)器: 192.168.158.20/24
兩臺WEB服務(wù)器: 192.168.158.30/24,192.168.158.40/24
一臺LVS負載調(diào)度服務(wù)器(2塊網(wǎng)卡): 內(nèi)網(wǎng)192.168.72.10/24(ens33),外網(wǎng)12.0.0.254/24(ens36)
win10 客戶機: 12.0.0.200/24
?部署NFS共享存儲服務(wù)(NFS服務(wù)器:192.168.158.22/24)
1.關(guān)閉防火墻
[root@localhost ~]# systemctl disable --now firewalld
[root@localhost ~]# setenforce 0
setenforce: SELinux is disabled
2、安裝nfs-utils、rpcbind軟件包
[root@localhost ~]# yum install nfs-utils rpcbind -y
#3、新建共享目錄,并創(chuàng)建站點文件
[root@localhost ~]# mkdir /share/
[root@localhost ~]# cd /share/
[root@localhost share]# mkdir tt nn
[root@localhost share]# echo "tt is a girl" > tt/index.html
[root@localhost share]# echo "nn is a boy" > nn/index.html
?
#4、修改共享配置文件,設(shè)置共享策略
[root@localhost share]# vim /etc/exports
/share/tt 192.168.158.0/24
/share/nn 192.168.158.0/24
#5、啟動兩個服務(wù),查看本機的NFS共享目錄
啟動兩個服務(wù)
[root@localhost share]# systemctl start rpcbind
[root@localhost share]# systemctl start nfs
[root@localhost share]# showmount -e
部署兩臺WEB服務(wù)器(節(jié)點服務(wù)器)
第一臺web服務(wù)器 192.168.158.25/24
#1、關(guān)閉防火墻
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
#2、安裝httpd
[root@localhost ~]# yum install -y httpd
#3、查看nfs服務(wù)器的共享信息
[root@localhost ~]# showmount -e 192.168.158.20
Export list for 192.168.158.20:
/share/nn 192.168.158.0/24
/share/tt 192.168.158.0/24
?
#4、掛載站點。將NFS服務(wù)器的共享目錄/share/tt/,掛載到httpd服務(wù)的根目錄
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
setenforce: SELinux is disabled
[root@localhost ~]# mount 192.168.158.20:/share/tt/ /var/www/html
[root@localhost ~]# df // 查看掛在是否成功
[root@localhost ~]# cat /var/www//html/index.html
tt is a girl
#5、指定網(wǎng)關(guān),網(wǎng)關(guān)地址設(shè)置為負載調(diào)度器的內(nèi)網(wǎng)地址
vim /etc/sysconfig/network-scripts/ifcfg-ens33
GATEWAY=192.168.158.20
DNS1=8.8.8.8
#6、重啟網(wǎng)絡(luò)服務(wù),開啟httpd服務(wù)
[root@localhost ~]# systemctl restart network
[root@localhost ~]# systemctl start httpd
第二臺第二臺web服務(wù)器(192.168.158.26/24)
#1、指定網(wǎng)關(guān),網(wǎng)關(guān)地址設(shè)置為負載調(diào)度器的內(nèi)網(wǎng)地址
vim /etc/sysconfig/network-scripts/ifcfg-ens33
GATEWAY=192.168.72.10
#DNS1=8.8.8.8
[root@localhost ~]# systemctl restart network
#2、關(guān)閉防火墻
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
setenforce: SELinux is disabled
#3、安裝httpd
[root@localhost ~]# yum install -y httpd
?
#4、查看nfs服務(wù)器的共享信息
[root@localhost ~]# showmount -e 192.168.158.20
Export list for 192.168.158.20:
/share/nn 192.168.158.0/24
/share/tt 192.168.158.0/24
5. #掛載NFS的共享目錄
臨時掛載
mount 192.168.158.20:/share/nn/ /var/www/html
df //查看掛載是否成功
cat /var/www/html/index.html
6. #開啟httpd服務(wù)
systemctl start httpd
?
?
?
?部署LVS負載調(diào)度服務(wù)器
#1、添加一塊網(wǎng)卡,我這里是ens36,配置網(wǎng)卡,重啟網(wǎng)絡(luò)
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# vim ifcfg-ens33
#GATEWAY=192.168.158.2 //將網(wǎng)卡和DNS服務(wù)器地址注釋掉
#DNS1=8.8.8.8
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens36
IPADDR=12.0.0.254 //設(shè)置外網(wǎng)網(wǎng)卡IP地址
NETMASK=255.255.255.0
#GATEWAY=192.168.158.2
#DNS1=8.8.8.8
[root@localhost network-scripts]# systemctl restart network
#2、關(guān)閉防火墻
systemctl stop firewalld
setenforce 0
#3、開啟路由轉(zhuǎn)發(fā)功能
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1 在最后一行添加
?
sysctl -p #查看是否修改成功
?
?
#4、配置SNAT策略(如果內(nèi)網(wǎng)想主動連接外網(wǎng)的話,需要配置SNAT策略)
iptables -t nat -F
iptables -t nat -A POSTROUTING -s 192.168.158.0/24 -o ens36 -j SNAT --to 12.0.0.254
iptables -nL POSTROUTING -t nat
#5、加載LVS內(nèi)核模塊
[root@localhost network-scripts]# modprobe ip_vs
[root@localhost network-scripts]# cat /proc/net/ip_vs
#加載LVS所有調(diào)度算法
[root@localhost network-scripts]# for i in $(ls /usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs|grep -o "^[^.]*");do echo $i; /sbin/modinfo -F filename $i >/dev/null 2>&1 && /sbin/modprobe $i;done
?
#6、安裝ipvsadm管理工具,開啟服務(wù)
[root@localhost network-scripts]# mount /dev/sr0 /mnt
[root@localhost network-scripts]# yum install -y ipvsadm
#開啟服務(wù)前必須保存負載分配策略,生成/etc/sysconfig/ipvsadm文件。如果該文件不存在,服務(wù)無法啟動。
[root@localhost ~]# ipvsadm-save >/etc/sysconfig/ipvsadm
[root@localhost ~]# systemctl start ipvsadm.service
#7、配置負載分配策略(NAT模式只需要在負載器上配置,節(jié)點服務(wù)器不需要特殊配置)
[root@localhost ~]# ipvsadm -C ##清空原有規(guī)則
?
#指定指定VIP地址及TCP端口,-s rr 指定負載調(diào)度策略為輪詢
ipvsadm -a -t 12.0.0.254:80 -r 192.168.158.30:80 -m -w 1
ipvsadm -a -t 12.0.0.254:80 -r 192.168.158.40:80 -m -w 1
[root@localhost ~]# ipvsadm #查看策略
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP localhost.localdomain:http rr
-> 192.168.158.30:http Masq 1 0 0
-> 192.168.158.40:http Masq 1 0 0
[root@localhost ~]# ipvsadm-save >/etc/sysconfig/ipvsadm
[root@localhost ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 12.0.0.254:80 rr
-> 192.168.158.30:80 Masq 1 0 0
-> 192.168.158.40:80 Masq 1 0 0
[root@localhost network-scripts]# ipvsadm-save >/etc/sysconfig/ipvsadm
[root@localhost network-scripts]# ipvsadm -ln
?
?文章來源:http://www.zghlxwxcb.cn/news/detail-521314.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-521314.html
到了這里,關(guān)于LVS負載均衡群集——NAT模式實操的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!