(1).集群技術(shù)的分類 集群技術(shù)主要分為三大類:負(fù)載均衡(Load Balance)集群,簡(jiǎn)稱LB集群;高可用(High Availability)集群,簡(jiǎn)稱 HA 集群;高性能計(jì)算(High Perfermance Computing)集群,簡(jiǎn)稱 HPC 集群。 (2).常見(jiàn)的LB集群實(shí)現(xiàn)手段 而常見(jiàn)的LB集群實(shí)現(xiàn)手段為:硬件實(shí)現(xiàn)的F5負(fù)載均衡器;軟件實(shí)現(xiàn)的LVS(4層,傳輸層)和Nginx(7層,應(yīng)用層)。其中,LVS是基于iptables實(shí)現(xiàn)(所以使用與iptables類似),由國(guó)內(nèi)開(kāi)發(fā)的開(kāi)源軟件,其性能優(yōu)于Nginx,但只能實(shí)現(xiàn)4層。 (3).LVS的模式和工作原理 LVS提供了三種包轉(zhuǎn)發(fā)方式:NAT(網(wǎng)絡(luò)地址映射)、IP Tunneling(IP隧道)、Direct Rounting(直接路由),分別對(duì)應(yīng)NAT模式、TUN模式、DR模式。不同的轉(zhuǎn)發(fā)方式?jīng)Q定了不同的集群網(wǎng)絡(luò)結(jié)構(gòu)。 1)NAT模式介紹 NAT:網(wǎng)絡(luò)地址轉(zhuǎn)換;DNAT:目標(biāo)地址轉(zhuǎn)換,改變的是目標(biāo)地址;SNAT:源地址轉(zhuǎn)換,改變的是源地址;LVS-NAT:使用SNAT和DNAT完成報(bào)文的轉(zhuǎn)發(fā)。 NAT方式可支持任何的操作系統(tǒng),以及私有網(wǎng)絡(luò),并且只需一個(gè)Internet IP地址,但是整個(gè)系統(tǒng)的性能受到限制。因?yàn)閳?zhí)行NAT每次需要重寫包,有一定的延遲;另外,大部分應(yīng)用有80%的數(shù)據(jù)是從服務(wù)器流向客戶機(jī),也就是用戶的請(qǐng)求非常短,而服務(wù)器的回應(yīng)非常大,對(duì)負(fù)載均衡器形成很大壓力,成為了新的瓶頸。 2)TUN模式介紹 director(分發(fā)器)分配請(qǐng)求到不同的real server,然后real server處理請(qǐng)求后直接回應(yīng)給用戶,這樣director負(fù)載均衡器僅需處理客戶機(jī)與服務(wù)器的一半連接。IP Tunneling技術(shù)極大地提高了director的調(diào)度處理能力,同時(shí)也極大地提高了系統(tǒng)能容納的最大節(jié)點(diǎn)數(shù),可以超過(guò)100個(gè)節(jié)點(diǎn)。real server可以在任何LAN或WAN上運(yùn)行,這意味著允許地理上的分布,這在災(zāi)難恢復(fù)中有重要意義。服務(wù)器必須擁有正式的IP地址用于與客戶機(jī)直接通信,并且所有服務(wù)器必須支持IP隧道協(xié)議。 3)DR模式介紹(最常用的模式) 與TUN模式類似,負(fù)載均衡器僅處理一半的連接,避免了新的性能瓶頸,同樣增加了系統(tǒng)的可伸縮性。Direct Routing與IP Tunneling相比,沒(méi)有IP封裝的開(kāi)銷,但由于采用物理層(修改MAC地址)技術(shù),所有服務(wù)器都必須在一個(gè)物理網(wǎng)段。 4)NAT工作原理 客戶端訪問(wèn)調(diào)度器時(shí),調(diào)度器通過(guò)網(wǎng)絡(luò)地址轉(zhuǎn)換,調(diào)度器重寫請(qǐng)求報(bào)文的目標(biāo)地址,根據(jù)預(yù)設(shè)的調(diào)度算法,將請(qǐng)求分派給后端的真實(shí)服務(wù)器;真實(shí)服務(wù)器的響應(yīng)報(bào)文通過(guò)調(diào)度器時(shí),報(bào)文的源地址被重寫,再返回給客戶,完成整個(gè)負(fù)載調(diào)度過(guò)程。 簡(jiǎn)單來(lái)說(shuō)可以分為四步:第一步、客戶端請(qǐng)求訪問(wèn),源地址:CIP,目標(biāo)地址:VIP;第二步、請(qǐng)求報(bào)文到達(dá)負(fù)載均衡器,源地址:CIP,目標(biāo)地址:RIP;第三步、Real Server接收到報(bào)文,處理并響應(yīng)(回頭了),源地址:RIP,目標(biāo)地址:CIP;第四步、負(fù)載均衡器收到報(bào)文,根據(jù)之前的轉(zhuǎn)發(fā)修改記錄還原報(bào)文,源地址VIP,目標(biāo)地址CIP。 CIP:客戶端的IP;VIP:虛擬IP,對(duì)外公網(wǎng)IP,負(fù)載均衡器(Director)的外網(wǎng)IP;DIP:負(fù)載均衡器(Director)的內(nèi)網(wǎng)IP,與服務(wù)器交互的IP;RIP:真實(shí)服務(wù)器的IP。 (4).實(shí)驗(yàn) 以下128網(wǎng)段是外網(wǎng)IP,5網(wǎng)段是內(nèi)網(wǎng)IP youxi1 192.168.5.101,192.168.128.213 負(fù)載均衡器(Director) youxi2 192.168.5.102(網(wǎng)關(guān)為youxi1的內(nèi)網(wǎng)IP) 真實(shí)服務(wù)器1 youxi3 192.168.5.103(網(wǎng)關(guān)為youxi1的內(nèi)網(wǎng)IP) 真實(shí)服務(wù)器2 1)首先在youxi2和youxi3兩臺(tái)真實(shí)服務(wù)器上安裝httpd用于測(cè)試 [root@youxi2 ~]# yum -y install httpd [root@youxi2 ~]# systemctl start httpd.service [root@youxi2 ~]# echo youxi2 > /var/www/html/index.html [root@youxi3 ~]# yum -y install httpd [root@youxi3 ~]# systemctl start httpd.service [root@youxi3 ~]# echo youxi3 > /var/www/html/index.html 如果是和我一樣使用yum安裝,那么安裝完成后需要將網(wǎng)關(guān)改為192.168.5.101。 2)開(kāi)啟youxi1的路由轉(zhuǎn)發(fā)功能 [root@youxi1 ~]# vim /etc/sysctl.conf net.ipv4.ip_forward = 1 //添加或修改 [root@youxi1 ~]# sysctl -p //重新加載sysctl net.ipv4.ip_forward = 1 3)安裝ipvsadmin [root@youxi1 ~]# yum -y install ipvsadm [root@youxi1 ~]# systemctl start ipvsadm.service 4)使用ipvsadm命令設(shè)置規(guī)則 注意:ipvsadm保存的時(shí)候會(huì)使用短域名,所以需要注意/etc/hosts文件里的短域名和IP配對(duì)。 [root@youxi1 ~]# ipvsadm -A -t 192.168.128.213:80 -s rr //-A添加虛擬服務(wù)器,-t服務(wù)器的IP地址和端口,-s指定調(diào)度算法 [root@youxi1 ~]# ipvsadm -a -t 192.168.128.213:80 -r 192.168.5.102 -m //-a添加真實(shí)服務(wù)器,-r真實(shí)服務(wù)器的IP地址和端口,-m使用NAT模式 [root@youxi1 ~]# ipvsadm -a -t 192.168.128.213:80 -r 192.168.5.103 -m [root@youxi1 ~]# ipvsadm -Ln //-L列出IPVS表,-n顯示IP和端口 IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.128.213:80 rr -> 192.168.5.102:80 Masq 1 0 0 -> 192.168.5.103:80 Masq 1 0 0 [root@youxi1 ~]# ipvsadm --save > /etc/sysconfig/ipvsadm //保存,也可以使用ipvsadm -S [root@youxi1 ~]# cat /etc/sysconfig/ipvsadm -A -t youxi1:http -s rr -a -t youxi1:http -r youxi2.cn:http -m -w 1 -a -t youxi1:http -r 192.168.5.103:http -m -w 1 -s選項(xiàng)能夠調(diào)用的算法有rr(表示round-robin,輪詢)、wrr、lc、wlc(加權(quán)最小連接)、lblc、lblcr、dh、sh、sed、nq,默認(rèn)調(diào)度的是wlc。 調(diào)用算法詳細(xì)請(qǐng)看:https://blog.csdn.net/weixin_40470303/article/details/80541639 5)注意,如果防火墻是打開(kāi)的記得添加端口號(hào) [root@youxi1 ~]# firewall-cmd --permanent --zone=public --add-port=80/tcp success [root@youxi1 ~]# firewall-cmd --reload success [root@youxi2 ~]# firewall-cmd --permanent --zone=public --add-port=80/tcp success [root@youxi2 ~]# firewall-cmd --reload success [root@youxi3 ~]# firewall-cmd --permanent --zone=public --add-port=80/tcp success [root@youxi3 ~]# firewall-cmd --reload success 6)測(cè)試 刷新 如果再刷新又會(huì)變?yōu)閥ouxi2。 (5).ipvsadm的常用命令 ipvsadm -Ln查看規(guī)則,顯示內(nèi)核虛擬服務(wù)器表 [root@youxi1 ~]# ipvsadm -Ln IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.128.213:80 rr -> 192.168.5.102:80 Masq 1 0 3 -> 192.168.5.103:80 Masq 1 0 1 ipvsadm -Lnc查看客戶端連接分發(fā)器和真實(shí)服務(wù)器的情況 [root@youxi1 ~]# ipvsadm -Lnc IPVS connection entries pro expire state source virtual destination TCP 00:50 SYN_RECV 192.168.128.137:49464 192.168.128.213:80 192.168.5.103:80 TCP 00:50 SYN_RECV 192.168.128.137:49467 192.168.128.213:80 192.168.5.103:80 TCP 00:26 SYN_RECV 192.168.128.137:49433 192.168.128.213:80 192.168.5.103:80 TCP 00:50 SYN_RECV 192.168.128.137:49465 192.168.128.213:80 192.168.5.102:80 TCP 00:26 SYN_RECV 192.168.128.137:49432 192.168.128.213:80 192.168.5.102:80 還有ipvsadm -Ln --stats查看分發(fā)情況和ipvsadm -Ln --rate查看速率 [root@youxi1 ~]# ipvsadm -Ln --stats IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes -> RemoteAddress:Port TCP 192.168.128.213:80 23 8807 782 627655 38778 -> 192.168.5.102:80 11 5357 524 404849 26620 -> 192.168.5.103:80 12 3450 258 222806 12158 [root@youxi1 ~]# ipvsadm -Ln --rate IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port CPS InPPS OutPPS InBPS OutBPS -> RemoteAddress:Port TCP 192.168.128.213:80 0 0 0 0 0 -> 192.168.5.102:80 0 0 0 0 0 -> 192.168.5.103:80 0 0 0 0 0 ipvsadm -Z清空當(dāng)前虛擬服務(wù)器計(jì)數(shù)器(連接數(shù)等信息);ipvsadm -C清空所有規(guī)則。 來(lái)源:https://www./content-4-333001.html |
|
來(lái)自: 印度阿三17 > 《開(kāi)發(fā)》