哪里有做企業(yè)網(wǎng)站的石家莊seo網(wǎng)站排名
目錄
LVS 體系結(jié)構(gòu)
LVS 相關(guān)概念術(shù)語(yǔ)
?lvs 集群常見類型
實(shí)驗(yàn)一:?
LVS NAT模式
LVS NAT特性
實(shí)驗(yàn)二:?
LVS DR模式
?LVS DR特性
LVS是Linux virtual server的縮寫,是一個(gè)高性能的、開源的負(fù)載均衡器,它運(yùn)行于Linux操作系統(tǒng)之上,用于將網(wǎng)絡(luò)請(qǐng)求分發(fā)給后端服務(wù)器集群中的服務(wù)器。
LVS簡(jiǎn)單工作原理為用戶請(qǐng)求LVS VIP,LVS根據(jù)轉(zhuǎn)發(fā)方式和算法,將請(qǐng)求轉(zhuǎn)發(fā)給后端服務(wù)器,后端服務(wù)器接收到請(qǐng)求,返回給用戶。
LVS 體系結(jié)構(gòu)
LVS架構(gòu)主要由三個(gè)部分組成:
1)負(fù)載均衡層:位于整個(gè)集群系統(tǒng)的最前端,由一臺(tái)或多臺(tái)負(fù)載調(diào)度器(Director Server)組成,LVS模塊就安裝在調(diào)度器上。
2)服務(wù)器群組層:由一組實(shí)際運(yùn)行的應(yīng)用服務(wù)器(Real Server)組成,可以是web服務(wù)器、mail服務(wù)器、DNS服務(wù)器、FTP服務(wù)器等。
3)數(shù)據(jù)共享存儲(chǔ)層:為所有Real Server提供共享存儲(chǔ)空間和內(nèi)容一致性的存儲(chǔ)區(qū)域,一般通過NFS網(wǎng)絡(luò)文件系統(tǒng)或集群文件系統(tǒng)實(shí)現(xiàn)。
LVS 相關(guān)概念術(shù)語(yǔ)
- VS: Virtual Server。負(fù)責(zé)調(diào)度。
- RS:Real Server。后端真實(shí)的工作服務(wù)器,負(fù)責(zé)真正提供服務(wù)。
- DS(Director Server):指的是前端負(fù)載均衡器節(jié)點(diǎn),調(diào)度服務(wù)器,將負(fù)載分發(fā)到Real Server的服務(wù)器上。
- VIP:Virtual IP。虛擬 IP,向外部直接面向用戶請(qǐng)求,作為用戶請(qǐng)求的目標(biāo)的IP地址。[ VS外網(wǎng)的IP ]
- DIP:Director IP Address。Director連接到Real Server的IP地址。主要用于和內(nèi)部主機(jī)通訊。[ VS內(nèi)網(wǎng)的IP ]
- RIP:Real IP Address。真實(shí)IP地址,(后端服務(wù)器)集群節(jié)點(diǎn)上使用的IP地址。
- CIP:Client IP??蛻舳说腎P地址。
訪問流程:CIP VIP == DIP RIP ?
?lvs 集群常見類型
按轉(zhuǎn)發(fā)方式劃分:
LVS-NAT(網(wǎng)絡(luò)地址轉(zhuǎn)換):LVS將請(qǐng)求報(bào)文中的目標(biāo)地址和目標(biāo)端口修改為選定到的真實(shí)服務(wù)器的IP和端口,從而實(shí)現(xiàn)報(bào)文的轉(zhuǎn)發(fā)。
LVS-DR(直接路由):也稱為Direct Routing,通過為請(qǐng)求報(bào)文重新封裝一個(gè)MAC首部進(jìn)行轉(zhuǎn)發(fā),源MAC是DIP所在的接口的MAC,目標(biāo)MAC是某挑選出的RS的RIP所在接口的MAC地址;源IP/PORT,以及目標(biāo)IP/PORT均保持不變。
LVS-TUN(隧道):不修改請(qǐng)求報(bào)文的IP首部,而在源IP報(bào)文之外再封裝一個(gè)IP首部(源IP是DIP,目標(biāo)IP是RIP),將報(bào)文發(fā)往挑選出的目標(biāo)Real Server,Real Server直接響應(yīng)給客戶端(源IP是VIP,目標(biāo)IP是CIP)。
LVS-FULLNAT:通過同時(shí)修改請(qǐng)求報(bào)文的源IP地址和目標(biāo)IP地址進(jìn)行轉(zhuǎn)發(fā)。
實(shí)驗(yàn)一:?
LVS NAT模式
NAT 模式雙向流量都經(jīng)過 LVS。?
LVS NAT特性
- VIP和RIP不需要在同一個(gè)網(wǎng)段內(nèi);
- NAT的包的進(jìn)出都需要經(jīng)過LVS,所以LVS可能會(huì)成為一個(gè)系統(tǒng)的瓶頸問題。
-----------------------------------------------------------
lvs:設(shè)置兩個(gè)網(wǎng)卡:eth0? 172.25.254.100/24? NAT? ? eth1? 192.168.0.100/24? 僅主機(jī)
webserver1: eth0? 192.168.0.10/24?? 僅主機(jī)模式
webserver2 :eth0? 192.168.0.20/24?? 僅主機(jī)模式
lvs:調(diào)度器
systemctl disable --now?firewalld.service
vim /etc/sysctl.conf? ? ?##配置內(nèi)核參數(shù):net.ipv4.ip_forward = 1? 啟用IP轉(zhuǎn)發(fā)
sysctl -p? ?##應(yīng)用更改
yum install httpd -y
yum install ipvsadm -y? ?##安裝工具包
:ipvsadm
?是一個(gè)用于管理 Linux 虛擬服務(wù)器(IPVS)的工具,它允許系統(tǒng)管理員設(shè)置和管理負(fù)載均衡器。ipvsadm -A -t 172.25.254.100:80 -s rr? ?##添加虛擬服務(wù)
ipvsadm -a -t 172.25.254.100:80 -r 192.168.0.10:80 -m? ?##添加后端服務(wù)器
ipvsadm -a -t 172.25.254.100:80 -r 192.168.0.20:80 -m
ipvsadm -Ln? ?##列出?Linux 虛擬服務(wù)器(IPVS)表中當(dāng)前配置
systemctl restart httpd
webserver1: #webserver2類似
systemctl disable --now firewalld
yum install httpd -y
echo webserver1-192.168.0.10 >/var/www/html/index.html??
systemctl restart httpd?
?在lvs上測(cè)試:
curl 192.168.0.10
curl 192.168.0.20
實(shí)驗(yàn)二:?
LVS DR模式
DR 模式 LVS 邏輯比較簡(jiǎn)單,數(shù)據(jù)包通過直接路由方式轉(zhuǎn)發(fā)給后端服務(wù)器,而且響應(yīng)數(shù)據(jù)包是由 RS 服務(wù)器直接發(fā)送給客戶端,不經(jīng)過 LVS。
?LVS DR特性
- 前端路由將目標(biāo)地址為VIP報(bào)文統(tǒng)統(tǒng)發(fā)給Director Server;
- RS跟Director Server必須有一個(gè)網(wǎng)卡在同一個(gè)物理網(wǎng)絡(luò)中;
- 所有的請(qǐng)求報(bào)文經(jīng)由Director Server,但響應(yīng)報(bào)文必須不能進(jìn)過Director Server;
- 所有的real server機(jī)器上都有VIP地址。
-----------------------------------------------------------
router:路由器
NAT模式:172.25.254.100/24? ? ? ?僅主機(jī)模式:192.168.0100/24
systemctl disable --now firewalld.service
vim /etc/NetworkManager/system-connections/eth0.connection
vim /etc/NetworkManager/system-connections/eth1.connection
nmcli connection reload
nmcli connection up eth0
nmcli connection up eth1
vim /etc/sysctl.conf
sysctl -p
webserver1:web服務(wù)器1?
僅主機(jī):ip:192.168.0.10;gateway:192.168.0.100
systemctl disable --now firewalld.service
vim /etc/NetworkManager/system-connections/eth0.connection
nmcli connection reload
nmcli connection up eth0
route -n
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
【arp_ignore
?和?arp_announce
?是與ARP(地址解析協(xié)議)相關(guān)的內(nèi)核參數(shù)】ip addr a 192.168.0.200/32 dev lo
nmcli connection reload
webserver1 和 webserver2 解決響應(yīng)問題:
webserver2:web服務(wù)器2
僅主機(jī):ip:192.168.0.20;gateway:192.168.0.100
systemctl disable --now firewalld.service
vim /etc/NetworkManager/system-connections/eth0.connection
nmcli connection reload
nmcli connection up eth0
route -n
##解決響應(yīng)問題
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore?
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
ip addr a 192.168.0.200/32 dev lo? ?##將IP地址添加到回環(huán)接口
nmcli connection reload
lvs:調(diào)度器
僅主機(jī):ip:192.168.0.50/24;lo:192.168.0.200/32
systemctl disable --now firewalld.service
vim /etc/sysconfig/network-scripts/ifcfg-eth1? #lvs環(huán)境我用的RedHat7版本
nmcli connection reload
nmcli connection up eth1
ip addr a 192.168.0.200/32 dev lo
nmcli connection reload
ipvsadm -A -t 192.168.0.200:80 -s wrr
ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.20:80 -g -w 2
ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.10:80 -g -w 1
systemctl restart httpd
?client:測(cè)試主機(jī)
NAT:ip:172.25.254.200/24;gateway:172.25.254.100
systemctl disable --now firewalld.service
測(cè)試效果如下:?
?
?