|
(1).集群技術的分類 集群技術主要分為三大類:負載均衡(Load Balance)集群,簡稱LB集群;高可用(High Availability)集群,簡稱 HA 集群;高性能計算(High Perfermance Computing)集群,簡稱 HPC 集群。 (2).常見的LB集群實現(xiàn)手段 而常見的LB集群實現(xiàn)手段為:硬件實現(xiàn)的F5負載均衡器;軟件實現(xiàn)的LVS(4層,傳輸層)和Nginx(7層,應用層)。其中,LVS是基于iptables實現(xiàn)(所以使用與iptables類似),由國內(nèi)開發(fā)的開源軟件,其性能優(yōu)于Nginx,但只能實現(xiàn)4層。 (3).LVS的模式和工作原理 LVS提供了三種包轉(zhuǎn)發(fā)方式:NAT(網(wǎng)絡地址映射)、IP Tunneling(IP隧道)、Direct Rounting(直接路由),分別對應NAT模式、TUN模式、DR模式。不同的轉(zhuǎn)發(fā)方式?jīng)Q定了不同的集群網(wǎng)絡結構。 1)NAT模式介紹 NAT:網(wǎng)絡地址轉(zhuǎn)換;DNAT:目標地址轉(zhuǎn)換,改變的是目標地址;SNAT:源地址轉(zhuǎn)換,改變的是源地址;LVS-NAT:使用SNAT和DNAT完成報文的轉(zhuǎn)發(fā)。 NAT方式可支持任何的操作系統(tǒng),以及私有網(wǎng)絡,并且只需一個Internet IP地址,但是整個系統(tǒng)的性能受到限制。因為執(zhí)行NAT每次需要重寫包,有一定的延遲;另外,大部分應用有80%的數(shù)據(jù)是從服務器流向客戶機,也就是用戶的請求非常短,而服務器的回應非常大,對負載均衡器形成很大壓力,成為了新的瓶頸。 2)TUN模式介紹 director(分發(fā)器)分配請求到不同的real server,然后real server處理請求后直接回應給用戶,這樣director負載均衡器僅需處理客戶機與服務器的一半連接。IP Tunneling技術極大地提高了director的調(diào)度處理能力,同時也極大地提高了系統(tǒng)能容納的最大節(jié)點數(shù),可以超過100個節(jié)點。real server可以在任何LAN或WAN上運行,這意味著允許地理上的分布,這在災難恢復中有重要意義。服務器必須擁有正式的IP地址用于與客戶機直接通信,并且所有服務器必須支持IP隧道協(xié)議。 3)DR模式介紹(最常用的模式) 與TUN模式類似,負載均衡器僅處理一半的連接,避免了新的性能瓶頸,同樣增加了系統(tǒng)的可伸縮性。Direct Routing與IP Tunneling相比,沒有IP封裝的開銷,但由于采用物理層(修改MAC地址)技術,所有服務器都必須在一個物理網(wǎng)段。 4)NAT工作原理 客戶端訪問調(diào)度器時,調(diào)度器通過網(wǎng)絡地址轉(zhuǎn)換,調(diào)度器重寫請求報文的目標地址,根據(jù)預設的調(diào)度算法,將請求分派給后端的真實服務器;真實服務器的響應報文通過調(diào)度器時,報文的源地址被重寫,再返回給客戶,完成整個負載調(diào)度過程。 簡單來說可以分為四步:第一步、客戶端請求訪問,源地址:CIP,目標地址:VIP;第二步、請求報文到達負載均衡器,源地址:CIP,目標地址:RIP;第三步、Real Server接收到報文,處理并響應(回頭了),源地址:RIP,目標地址:CIP;第四步、負載均衡器收到報文,根據(jù)之前的轉(zhuǎn)發(fā)修改記錄還原報文,源地址VIP,目標地址CIP。 CIP:客戶端的IP;VIP:虛擬IP,對外公網(wǎng)IP,負載均衡器(Director)的外網(wǎng)IP;DIP:負載均衡器(Director)的內(nèi)網(wǎng)IP,與服務器交互的IP;RIP:真實服務器的IP。 (4).實驗 以下128網(wǎng)段是外網(wǎng)IP,5網(wǎng)段是內(nèi)網(wǎng)IP youxi1 192.168.5.101,192.168.128.213 負載均衡器(Director) youxi2 192.168.5.102(網(wǎng)關為youxi1的內(nèi)網(wǎng)IP) 真實服務器1 youxi3 192.168.5.103(網(wǎng)關為youxi1的內(nèi)網(wǎng)IP) 真實服務器2 1)首先在youxi2和youxi3兩臺真實服務器上安裝httpd用于測試 [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)關改為192.168.5.101。 2)開啟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命令設置規(guī)則 注意:ipvsadm保存的時候會使用短域名,所以需要注意/etc/hosts文件里的短域名和IP配對。 [root@youxi1 ~]# ipvsadm -A -t 192.168.128.213:80 -s rr //-A添加虛擬服務器,-t服務器的IP地址和端口,-s指定調(diào)度算法 [root@youxi1 ~]# ipvsadm -a -t 192.168.128.213:80 -r 192.168.5.102 -m //-a添加真實服務器,-r真實服務器的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選項能夠調(diào)用的算法有rr(表示round-robin,輪詢)、wrr、lc、wlc(加權最小連接)、lblc、lblcr、dh、sh、sed、nq,默認調(diào)度的是wlc。 調(diào)用算法詳細請看:https://blog.csdn.net/weixin_40470303/article/details/80541639 5)注意,如果防火墻是打開的記得添加端口號 [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)測試 刷新
如果再刷新又會變?yōu)閥ouxi2。 (5).ipvsadm的常用命令 ipvsadm -Ln查看規(guī)則,顯示內(nèi)核虛擬服務器表 [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ā)器和真實服務器的情況 [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清空當前虛擬服務器計數(shù)器(連接數(shù)等信息);ipvsadm -C清空所有規(guī)則。 來源:https://www./content-4-333001.html |
|
|