目錄
lvs工作模式
1、NAT模式(VS-NAT)
2、直接路由模式(VS-DR)
3、IP隧道模式(VS-TUN)
LVS調(diào)度算法
LVS群集類型
1)負載均衡群集 LB
2)高可用群集 HA
3)高性能運輸群集 HPC
LVS-NAT模式搭建
1、NFS部署
2、web服務(wù)器部署(節(jié)點服務(wù)器)
3、負載調(diào)度器配置
?4、使用客戶端測試
LVS-DR模式搭建
1、NFS部署
2、節(jié)點服務(wù)器部署
3、調(diào)度服務(wù)器部署
4、使用客戶端測試
LVS-DR+keepaliced群集高可用
1、NFS部署
2、節(jié)點服務(wù)器部署
3、調(diào)度服務(wù)器+keepalived部署
4、使用客戶機測試
lvs工作模式
LVS 有三種負載均衡的模式,分別是VS/NAT(nat 模式)、VS/DR(路由模式)、VS/TUN(隧道模式)
1、NAT模式(VS-NAT)
原理:首先負載均衡器接收到客戶的請求數(shù)據(jù)包時,根據(jù)調(diào)度算法決定將請求發(fā)送給哪個后端的真實服務(wù)器(RS)。然后負載均衡器就把客戶端發(fā)送的請求數(shù)據(jù)包的目標(biāo)IP地址及端口改成后端真實服務(wù)器的IP地址(RIP)。真實服務(wù)器響應(yīng)完請求后,查看默認路由,把響應(yīng)后的數(shù)據(jù)包發(fā)送給負載均衡器,負載均衡器在接收到響應(yīng)包后,把包的源地址改成虛擬地址(VIP)然后發(fā)送回給客戶端。
優(yōu)點:集群中的服務(wù)器可以使用任何支持TCP/IP的操作系統(tǒng),只要負載均衡器有一個合法的IP地址。
缺點:擴展性有限,當(dāng)服務(wù)器節(jié)點增長過多時,由于所有的請求和應(yīng)答都需要經(jīng)過負載均衡器,因此負載均衡器將成為整個系統(tǒng)的瓶頸。
2、直接路由模式(VS-DR)
原理:首先負載均衡器接收到客戶的請求數(shù)據(jù)包時,根據(jù)調(diào)度算法決定將請求發(fā)送給哪個后端的真實服務(wù)器(RS)。然后負載均衡器就把客戶端發(fā)送的請求數(shù)據(jù)包的目標(biāo)MAC地址改成后端真實服務(wù)器的MAC地址(R-MAC)。真實服務(wù)器響應(yīng)完請求后,查看默認路由,把響應(yīng)后的數(shù)據(jù)包直接發(fā)送給客戶端,不需要經(jīng)過負載均衡器。
優(yōu)點:負載均衡器只負責(zé)將請求包分發(fā)給后端節(jié)點服務(wù)器,而RS將應(yīng)答包直接發(fā)給用戶。所以,減少了負載均衡器的大量數(shù)據(jù)流動,負載均衡器不再是系統(tǒng)的瓶頸,也能處理很巨大的請求量。
缺點:需要負載均衡器與真實服務(wù)器RS都有一塊網(wǎng)卡連接到同一物理網(wǎng)段上,必須在同一個局域網(wǎng)環(huán)境。
3、IP隧道模式(VS-TUN)
原理:首先負載均衡器接收到客戶的請求數(shù)據(jù)包時,根據(jù)調(diào)度算法決定將請求發(fā)送給哪個后端的真實服務(wù)器(RS)。然后負載均衡器就把客戶端發(fā)送的請求報文封裝一層IP隧道(T-IP)轉(zhuǎn)發(fā)到真實服務(wù)器(RS)。真實服務(wù)器響應(yīng)完請求后,查看默認路由,把響應(yīng)后的數(shù)據(jù)包直接發(fā)送給客戶端,不需要經(jīng)過負載均衡器。
優(yōu)點:負載均衡器只負責(zé)將請求包分發(fā)給后端節(jié)點服務(wù)器,而RS將應(yīng)答包直接發(fā)給用戶。所以,減少了負載均衡器的大量數(shù)據(jù)流動,負載均衡器不再是系統(tǒng)的瓶頸,也能處理很巨大的請求量。
缺點:隧道模式的RS節(jié)點需要合法IP,這種方式需要所有的服務(wù)器支持“IP Tunneling”。
LVS調(diào)度算法
輪詢(Round Robin);
加權(quán)輪詢(Weighted Round Robin);
最少連接(Least Connections);
加權(quán)最少連接(Weighted Least Connections);
源地址哈希值(source hash);
目的地址哈希值(destination hash);
基于地址的最小連接(locality-based least-connection)。
以上是一些常用的LVS調(diào)度算法。
LVS群集類型
群集的類型:
1)負載均衡群集 LB
作用:提高系統(tǒng)響應(yīng)效率,處理更多的訪問請求,減少延遲,實現(xiàn)高并發(fā)、高負載的能力
典型代表:軟件類:LVS ?Nginx ?HAProxy 等 ? ? 硬件類:F5 ?綠盟
2)高可用群集 HA
作用:提高系統(tǒng)可靠性,減少中斷時間,確保服務(wù)的連續(xù)性(通常使用 N 個 9 來代表高可用的指標(biāo))
典型代表:Keepalived ? ?heartbeat
3)高性能運輸群集 HPC
作用:通過云計算或分布式計算獲取高性能的CPU、內(nèi)存等資源,來提高整體運算能力
LVS-NAT模式搭建
ipvsadm 工具選項說明:
-A:添加虛擬服務(wù)器
-D:刪除整個虛擬服務(wù)器
-s:指定負載調(diào)度算法(輪詢:rr、加權(quán)輪詢:wrr、最少連接:lc、加權(quán)最少連接:wlc)
-a:表示添加真實服務(wù)器(節(jié)點服務(wù)器)
-d:刪除某一個節(jié)點
-t:指定 VIP地址及 TCP端口(負載均衡服務(wù)器)
-r:指定 RIP地址及 TCP端口(群集服務(wù)器)
-m:表示使用 NAT群集模式
-g:表示使用 DR模式
-i:表示使用 TUN模式
-w:設(shè)置權(quán)重(權(quán)重為 0 時表示暫停節(jié)點)
-p 60:表示保持長連接60秒(默認關(guān)閉連接保持)
-l:列表查看 LVS 虛擬服務(wù)器(默認為查看所有)
-n:以數(shù)字形式顯示地址、端口等信息,常與“-l”選項組合使用。ipvsadm -ln
搭建環(huán)境:
負載調(diào)度器:內(nèi)網(wǎng)關(guān) ens33:192.168.3.104,外網(wǎng)關(guān) ens36:12.0.0.1
Web節(jié)點服務(wù)器1:192.168.3.101
Web節(jié)點服務(wù)器2:192.168.3.102
NFS服務(wù)器:192.168.3.103
客戶端:12.0.0.12
1、NFS部署
在NFS服務(wù)器和Web節(jié)點服務(wù)器上下載nfs-utils,然后在NFS服務(wù)器上配置nfs服務(wù)
mkdir /opt/test1
echo? "test1"? > /opt/test1/index.html
mkdir /opt/test2
echo? "test2"? > /opt/test1/index.html
mkdir /opt/tomcat1
echo? "tomcat1"? > /opt/tomcat1/test.jsp
mkdir /opt/tomcat2
echo? "tomcat2"? > /opt/tomcat2/test.jsp
vim /etc/exports? ? ? ? #配置共享的文件/opt/test1 192.168.3.0/24(rw,sync)
/opt/test2 192.168.3.0/24(rw,sync)
/opt/tomcat1 192.168.3.0/24(rw,sync)
/opt/tomcat2 192.168.3.0/24(rw,sync)exportfs -v? ? ? ? #查看自己的nfs配置
systemctl start nfs? ? ? ? #啟動nfs服務(wù)
2、web服務(wù)器部署(節(jié)點服務(wù)器)
使用nginx服務(wù),提前安裝好的nginx,將nfs共享文件掛載到nginx網(wǎng)頁的根目錄下
#web服務(wù)器1
mount? 192.168.3.103:/opt/test1? /apps/nginx/html? ? ? ?#掛載nfs共享文件
systemcrl? start nginx.service
vim /etc/sysconfig/network-scripts/ifcfg-ens33????????#設(shè)置節(jié)點服務(wù)器的網(wǎng)關(guān)指向網(wǎng)關(guān)服務(wù)器地址GATEWAY=192.168.3.104
systemctl restart network
#web服務(wù)器2mount? 192.168.3.103:/opt/test2? /apps/nginx/html? ? ? ??????????#掛載nfs共享文件
systemcrl? start nginx.service
vim /etc/sysconfig/network-scripts/ifcfg-ens33? ? ? ? #設(shè)置節(jié)點服務(wù)器的網(wǎng)關(guān)指向網(wǎng)關(guān)服務(wù)器地址
GATEWAY=192.168.3.104
systemctl restart network? ? ? ? #重啟網(wǎng)卡
?修改web服務(wù)的長連接保持時間為0,修改/安裝目錄/nginx/conf/nginx.conf主配置文件
如果是tomcat服務(wù),修改/安裝目錄/conf/server.xml,在文檔結(jié)尾加上KeepAlive? off字段即可
3、負載調(diào)度器配置
1)首先加個網(wǎng)卡,將其設(shè)置為僅主機模式,并配置ip地址為12.0.0.12
ip a? ? ? ? ? ? ? ? ?#查看你添加的網(wǎng)卡名
cd /etc/sysconfig/network-scripts/? ? ? ? #切換到網(wǎng)卡配置目錄下
cp ifcfg-ens33 ifcfg-ens36? ? ? ? #復(fù)制ens33網(wǎng)卡到當(dāng)前文件下,并改名ens36
vim? ifcfg-ens36? ? ? ? ? #修改ens36配置文件
TYPE=Ethernet
BOOTPROTO=static
NAME=ens36
DEVICE=ens36
ONBOOT=yes
IPADDR=12.0.0.12
NETMASK=255.255.255.0
systemctl restart network? ? ? ? #重啟網(wǎng)卡
2)開啟路由轉(zhuǎn)發(fā)功能,并配置防火墻
vim /etc/sysctl.conf? ? ? ? #編輯該配置文件,在最后一行添加如下語句,實現(xiàn)路由轉(zhuǎn)發(fā)
net.ipv4.ip_forward = 1
#然后使用sysctl? ?-p命令使其生效sysctl? -p
iptables -F
iptables -F -t natiptables -t nat -A POSTROUTING -s 192.168.80.0/24 -o ens36 -j SNAT --to-source 12.0.0.1
3)加載LVS內(nèi)核模塊,并安裝ipvsadm管理工具
modprobe ip_vs?? ??? ??? ??? ??? ?#加載 ip_vs模塊
cat /proc/net/ip_vs?? ??? ??? ??? ?#查看 ip_vs版本信息for i in `ls /usr/lib/modules/3.10.0-693.el7.x86_64/kernel/net/netfilter/ipvs/|grep -o "^[^.]*"`
> do
> modprobe $i
> done# 使用循環(huán)加載所有的ip_vs模塊
yum -y install ipvsadm? ? ? ? #安裝ipvsadm工具
4)配置負載均衡策略
ipvsadm-save > /etc/sysconfig/ipvsadm
或者 ipvsadm --save > /etc/sysconfig/ipvsadm? ? ? ? #配置前須先保存負載均衡分配策略ipvsadm -C ?? ??? ??? ??? ??? ?#清除原有策略
ipvsadm -A -t 12.0.0.1:80 -s rr? ? ? ? ?#添加虛擬服務(wù)器地址,以及調(diào)度算法
ipvsadm -a -t 12.0.0.1:80 -r 192.168.80.11:80 -m? ? ?#添加節(jié)點服務(wù)器,-m表示使用NAT模式
ipvsadm -a -t 12.0.0.1:80 -r 192.168.80.12:80 -mipvsadm? ? ? ? #啟用策略
?4、使用客戶端測試
先將客戶端的ip改為12.0.0.12,且網(wǎng)卡是僅主機模式
LVS-DR模式搭建
負載調(diào)度器: 192.168.3.104? ? ? ? VIP(ens33:0):192.168.3.254
Web節(jié)點服務(wù)器1:192.168.3.101????????VIP(lo:0):192.168.3.254
Web節(jié)點服務(wù)器2:192.168.3.102????????VIP(lo:0):192.168.3.254
NFS服務(wù)器:192.168.3.103
客戶端:192.168.3.100?
1、NFS部署
參照LVS-NAT中的NFS部署
2、節(jié)點服務(wù)器部署
web1:192.168.3.101? ?web2:192.168.3.102
vim /etc/sysctl.conf? ? ? ? #添加如下語句,否則ifup lo:0不成功
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
sysctl -p? ? ? ? #使上述語句生效vim /etc/sysconfig/network-scripts/ifcfg-lo:0? ? ? ? #添加VIP
ifup? lo:0
ifconfig? lo:0
修改web服務(wù)的長連接保持時間為0,修改/安裝目錄/nginx/conf/nginx.conf主配置文件
如果是tomcat服務(wù),修改/安裝目錄/conf/server.xml,在文檔結(jié)尾加上KeepAlive? off字段即可
3、調(diào)度服務(wù)器部署
調(diào)度服務(wù)器:192.168.3.104
vim? /etc/sysctl.conf
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
vim /etc/sysconfig/network-scripts/ifcfg-ens33:0DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.3.254
NETMASK=255.255.255.255
route add -host 192.168.3.254?dev lo:0? ? ? ? #添加路由
安裝ipvsadm和加載ip_vs模塊
modprobe ip_vs? ? ? ? #加載ip_vs模塊
cat /proc/net/ip_vs
yum -y install ipvsadm? ? ? ? #安裝ipvsadmipvsadm-save > /etc/sysconfig/ipvsadm? ? ? ? #備份ipvsadm原有的配置
systemctl start ipvsadm? ? ? ? #開啟ipvsadmipvsadm -C? ? ? ? ? ? ? ? #清除原有的ipvsadm配置
ipvsadm -A -t 192.168.3.254:80 -s rr? ? ? ? #添加虛擬IP (VIP)
ipvsadm -a -t 192.168.3.254:80 -r 192.168.3.101:80 -g?? ??? ??? ?#若隧道模式,-g替換為-i
ipvsadm -a -t 192.168.3.254:80 -r 192.168.3.102:80 -g? ? ? ? ? ? #添加節(jié)點服務(wù)器ipvsadm
ipvsadm -ln?? ??? ??? ??? ??? ?#查看節(jié)點狀態(tài),Route代表 DR模式
4、使用客戶端測試
在瀏覽器中輸入192.168.3.254,然后一直刷新就會出現(xiàn)不同的頁面,說明實現(xiàn)負載均衡效果文章來源:http://www.zghlxwxcb.cn/news/detail-732766.html
LVS-DR+keepaliced群集高可用
負載調(diào)度器: 192.168.3.104? ? ? ? VIP(ens33:0):192.168.3.254
Web節(jié)點服務(wù)器1:192.168.3.101????????VIP(lo:0):192.168.3.254
Web節(jié)點服務(wù)器2:192.168.3.102????????VIP(lo:0):192.168.3.254
NFS服務(wù)器:192.168.3.103
客戶端:192.168.3.1
1、NFS部署
與上述LVS-NAT模式中的NFS部署一樣,參照LVS-NAT模式中的NFS部署
2、節(jié)點服務(wù)器部署
與上述LVS-DR模式的節(jié)點服務(wù)器部署操作一樣,參照上述LVS-DR模式的節(jié)點服務(wù)器部署
3、調(diào)度服務(wù)器+keepalived部署
主調(diào)度服務(wù)器
yum -y install ipvsadm keepalived
modprobe ip_vs
cat /proc/net/ip_vs
vim? /etc/keepalived/keepalived.conf
vim /etc/keepalived/keepalived.conf
.....
global_defs { #定義全局參數(shù)
--10行--修改,郵件服務(wù)指向本地
smtp_server 127.0.0.1
--12行--修改,指定服務(wù)器(路由器)的名稱,主備服務(wù)器名稱須不同,主為LVS_01,備為LVS_02
router_id LVS_01
--14行--注釋掉,取消嚴(yán)格遵守VRRP協(xié)議功能,否則VIP無法被連接
#vrrp_strict
}
vrrp_instance VI_1 { #定義VRRP熱備實例參數(shù)
--20行--修改,指定熱備狀態(tài),主為MASTER,備為BACKUP
state MASTER
--21行--修改,指定承載vip地址的物理接口
interface ens33
--22行--修改,指定虛擬路由器的ID號,每個熱備組保持一致
virtual_router_id 10
#nopreempt #如果設(shè)置非搶占模式,兩個節(jié)點state必須為BACKUP,并加上配置 nopreempt
--23行--修改,指定優(yōu)先級,數(shù)值越大優(yōu)先級越高,這里設(shè)置主為100,備為90
priority 100
advert_int 1 #通告間隔秒數(shù)(心跳頻率)
authentication { #定義認證信息,每個熱備組保持一致
auth_type PASS #認證類型
--27行--修改,指定驗證密碼,主備服務(wù)器保持一致
auth_pass abc123
}
virtual_ipaddress { #指定群集vip地址
192.168.3.254
}
}
--36行--修改,指定虛擬服務(wù)器地址(VIP)、端口,定義虛擬服務(wù)器和Web服務(wù)器池參數(shù)
virtual_server 192.168.3.254 80 {
delay_loop 6 #健康檢查的間隔時間(秒)
lb_algo rr #指定調(diào)度算法,輪詢(rr)
--39行--修改,指定群集工作模式,直接路由(DR)
lb_kind DR
persistence_timeout 0 #連接保持時間(秒)
protocol TCP #應(yīng)用服務(wù)采用的是 TCP協(xié)議
--43行--修改,指定第一個Web節(jié)點的地址、端口
real_server 192.168.3.101 80 {
weight 1 #節(jié)點的權(quán)重
--45行--刪除,添加以下健康檢查方式
TCP_CHECK {
connect_port 80 #添加檢查的目標(biāo)端口
connect_timeout 3 #添加連接超時(秒)
nb_get_retry 3 #添加重試次數(shù)
delay_before_retry 3 #添加重試間隔
}
}
real_server 192.168.3.102 80 { #添加第二個 Web節(jié)點的地址、端口
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
##刪除后面多余的配置##
}
修改后的配置
1 ! Configuration File for keepalived
2
3 global_defs {
4 notification_email {
5 acassen@firewall.loc
6 failover@firewall.loc
7 sysadmin@firewall.loc
8 }
9 notification_email_from Alexandre.Cassen@firewall.loc
10 smtp_server 127.0.0.1 #修改IP為127.0.0.1
11 smtp_connect_timeout 30
12 router_id LVS_01 #修改為LVS_01,并刪除下面4行
13 }
14
15 vrrp_instance VI_1 {
16 state MASTER
17 interface ens33 #修改成自己的網(wǎng)卡名
18 virtual_router_id 51
19 priority 100
20 advert_int 1
21 authentication {
22 auth_type PASS
23 auth_pass 1111
24 }
25 virtual_ipaddress {
26 192.168.3.254 #虛擬地址(VIP)
27 }
28 }
29
30 virtual_server 192.168.3.254 80 { #虛擬地址(VIP)端口號
31 delay_loop 6
32 lb_algo rr #調(diào)度算法 rr表示輪詢
33 lb_kind DR #LVS模式DR
34 persistence_timeout 0 #超時時間
35 protocol TCP
36
37 real_server 192.168.3.101 80 { #節(jié)點服務(wù)器地址和端口
38 weight 1 #權(quán)重
39 TCP_CHECK { #健康檢查
40 connect_port 80 #添加檢查的目標(biāo)端口號
41 connect_timeout 3 #添加連接超時
42 nb_get_retry 3 #添加超時重試次數(shù)
43 delay_before_retry 3 #添加重試間隔時間
44 }
45 }
46 real_server 192.168.3.102 80 { #節(jié)點服務(wù)器地址和端口
47 weight 1 #權(quán)重
48 TCP_CHECK { #健康檢查
49 connect_port 80 #添加檢查的目標(biāo)端口號
50 connect_timeout 3 #添加連接超時
51 nb_get_retry 3 #添加超時重試次數(shù)
52 delay_before_retry 3 #添加重試間隔時間
53 }
54 }
55 }
調(diào)整 proc 響應(yīng)參數(shù),關(guān)閉Linux 內(nèi)核的重定向參數(shù)響應(yīng)
vim /etc/sysctl.conf
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
sysctl -p
?
?啟動keepalived和ipvsadm
systemctl start keepalived
ip a
ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadmipvsadm -ln
#如沒有VIP 的分發(fā)策略,則重啟 keepalived 服務(wù),systemctl restart keepalived
備調(diào)度服務(wù)器
步驟與主調(diào)度服務(wù)器一樣,只有在keepalived.conf文件中有差別,如下:
?12 ? ?router_id LVS_02? ? ? ? #文檔的第12行
?16 ? ? state BACKUP? ? ? ? #文檔的第16行
?19 ? ? priority 90? ? ? ? ? ? ? ?#優(yōu)先級也需要改,比主設(shè)備的優(yōu)先級小
4、使用客戶機測試
在瀏覽器中輸入192.168.3.254,然后一直刷新就會出現(xiàn)不同的頁面,說明實現(xiàn)負載均衡效果
?文章來源地址http://www.zghlxwxcb.cn/news/detail-732766.html
到了這里,關(guān)于LVS負載均衡群集——LVS-NAT模式搭建和LVS-DR模式搭建的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!