新聞中心
- 負載均衡(LB)軟件
常見負載均衡軟件有:LVS、Nginx、Haproxy
LVS:
1). 基于4層網(wǎng)絡(luò)協(xié)議,幾乎無流量產(chǎn)生,這個特點也決定這幾個負載均衡軟件里負載能力最強,內(nèi)存、CPU占用資源也低。
2). 應(yīng)用范圍廣,不僅對Web服務(wù)做負載均衡,而且可結(jié)合其他應(yīng)用做負載,如LVS+MySQL負載均衡。
3). 配置簡單, 可配置東西較少。
4). 無流量,LVS只分發(fā)請求,而流量并不從它本身出去,這點保證了均衡器IO的性能不會收到大流量的影響。
5). 有個虛IP概念。
Nginx:
1). 基于7層網(wǎng)絡(luò)協(xié)議,對Http應(yīng)用做分流策略,如配置域名。
2). 高負載、穩(wěn)定。支持上萬高并發(fā)。負載能力小于LVS。
3). 安裝配置簡單,支持的正則比Haproxy豐富。且對網(wǎng)絡(luò)穩(wěn)定性的依賴非常小。
4). 可通過端口檢測到服務(wù)器內(nèi)部的故障,如根據(jù)服務(wù)器處理網(wǎng)頁返回的狀態(tài)碼、超時等,把返回錯誤的請求重新提交到另一個節(jié)點。
5). 作Web服務(wù)器。
6). 反向代理\負載均衡。
Haproxy:
1). 支持虛擬主機,可工作在4層、7層。
2). 負載均衡效率上來講Haproxy比Nginx更出色,在并發(fā)處理上也是優(yōu)于Nginx。
3). 能夠補充Nginx的一些缺點,如支持Session的保持,Cookie的引導(dǎo)。同時支持通過獲取指定的url來檢測后端服務(wù)器的狀態(tài)。
4). 支持負載均衡策略較多。如roundrobin簡單輪詢、leastconn最少服務(wù)器連接數(shù)、static-rr權(quán)重輪詢、uri哈希、sourceIP哈希、url_param請求的URL參數(shù)等。 - LVS+Keepalived
LVS 是一個開源的軟件,可實現(xiàn) Linux平臺下的負載均衡。LVS 是 Linux Virtual Server 的縮寫,意思是 Linux 虛擬服務(wù)器。 Linux 內(nèi)核2.4版本后,LVS 已經(jīng)是 Linux 內(nèi)核標準的一部分。
LVS主要工作是提供調(diào)度算法,把客戶端請求按照需求調(diào)度在Real Server上,Keepalived 主要工作是提供 LVS 控制器的一個冗余,并且對Real Server做健康檢查,發(fā)現(xiàn)Real Server故障,就把它從 LVS 集群中剔除,Real Server只負責提供服務(wù)。如LVS+Keepalived+Nginx模式,Nginx作為Real Server。
LVS轉(zhuǎn)發(fā)模式
VS/NAT(Virtual Server via Network Address Translation):通過網(wǎng)絡(luò)地址轉(zhuǎn)換,調(diào)度器重寫請求報文的目標地址,請求到后端Real Server,后端Real Server的響應(yīng)報文通過調(diào)度器時,報文的源地址被重寫,再返回給客戶,完成整個負載調(diào)度過程??蛻粽埱竽睦飦韽哪膬悍祷亍?br/>VS/TUN(Virtual Server via IP Tunneling):在使用上面的NAT 技術(shù)時,由于請求和響應(yīng)報文都必須經(jīng)過調(diào)度器地址重寫,當客戶請求越來越多時,調(diào)度器的處理能力將成為瓶頸。為了解決這個問題,調(diào)度器把請求報文通過 IP 隧道轉(zhuǎn)發(fā)至Real Server,而Real Server將響應(yīng)直接返回給客戶,所以調(diào)度器只處理請求報文。由于一般網(wǎng)絡(luò)服務(wù)應(yīng)答比請求報文大許多,采用 VS/TUN 技術(shù)后,集群系統(tǒng)的最大吞吐量可提高 10 倍。
VS/DR (Virtual Server via Direct Routing):VS/DR 通過改寫請求報文的 MAC 地址,將請求發(fā)送到Real Server,而后端的Real Server將響應(yīng)直接返回給客戶。同 VS/TUN 技術(shù)一樣,VS/DR 技術(shù)可極大地提高集群系統(tǒng)的伸縮性。后面就按此VS/DR模式作為操作例子。 - LVS(VS/DR)+Keepalived高可用集群實例
OS環(huán)境:CentOS7
1). 在20、21上安裝ipvsadm和keepalived軟件yum -y install ipvsadm yum -y install keepalived
啟動keepalived服務(wù)
創(chuàng)新互聯(lián)是一家專業(yè)提供福清企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、H5技術(shù)、小程序制作等業(yè)務(wù)。10年已為福清眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進行中。
systemctl start keepalived.service
使用配置LVS的時候,不能直接配置內(nèi)核中的ipvs,需使用ipvs的管理工具ipvsadm進行管理。用于查看lvs轉(zhuǎn)發(fā)及代理情況的工具。
2).修改keepalived配置文件
20的Master配置文件如下:
vim /etc/keepalived/keepalived.conf! Configuration File for keepalived global_defs { notification_email { admin@localhost } notification_email_from root@localhost router_id LVS_01 #表示運行keepalived服務(wù)器的一個標識,發(fā)郵件時顯示在郵件主題的信息 vrrp_skip_check_adv_addr vrrp_garp_interval 0 vrrp_gna_interval 0 } vrrp_instance VI_1 { state MASTER #指定keepalived的角色Master interface ens192 #網(wǎng)卡,ip a查看 virtual_router_id 100 #虛擬路由標識,主備兩個節(jié)點的設(shè)置必須一樣,以指明各個節(jié)點屬于同一VRRP組 priority 100 #定義優(yōu)先級,Master的priority要高于slave advert_int 1 #設(shè)定MASTER與BACKUP負載均衡器之間同步檢查的時間間隔,單位秒 authentication { #設(shè)置驗證類型和密碼 auth_type PASS auth_pass 1111 } virtual_ipaddress { 10.20.1.99/24 dev ens192 #設(shè)置VIP } } virtual_server 10.20.1.99 443 { #設(shè)置虛擬服務(wù)器,需指定虛擬IP地址和服務(wù)端口 delay_loop 3 #健康時間檢查,單位秒 lb_algo rr #負載均衡調(diào)度算法wlc|rr lb_kind DR #設(shè)置LVS實現(xiàn)負載均衡機制,有NAT、TUN、DR三個模式 persistence_timeout 50 #會話保持時間,單位秒。此選項對動態(tài)網(wǎng)頁是非常有用 protocol TCP #指定轉(zhuǎn)發(fā)協(xié)議類型,有TCP和UDP real_server 10.20.1.22 443 { #Real Server服務(wù)器,這里為Nginx服務(wù)器 weight 1 #設(shè)置權(quán)重 TCP_CHECK { #設(shè)置檢查方式,可以設(shè)置HTTP_GET | SSL_GET connect_port 443 #檢測Real Server的偵聽端口 connect_timeout 5 #超時時間,單位秒。如果在這個時間內(nèi)無返回,則說明一次監(jiān)測失敗 retry 3 #設(shè)置多少次監(jiān)測失敗,就判斷這個Real Server死掉 delay_before_retry 3 #重試間隔 } } real_server 10.20.1.23 443 { weight 1 TCP_CHECK { connect_port 443 connect_timeout 5 retry 3 delay_before_retry 3 } } }
21的slave的/etc/keepalived/keepalived.conf配置,需更改state Backup和修改priority的值小于master的priority。
Master服務(wù)器上查看IP,VIP在Master上。
ipvsadm命令查看規(guī)則。
3). Real Server配置
因為VS/DR模式,在后端Real Server即Nginx服務(wù)器上配置腳本。配置兩臺Nginx服務(wù)器上為回環(huán)地址lo:0綁定VIP地址、ARP廣播。
vim /opt/scripts/lvs_rs.sh#!/bin/bash vip=10.20.1.99 ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up route add -host $vip dev lo:0 echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce sysctl -p &>/dev/null
在22、23服務(wù)器上分別執(zhí)行。
4). 測試LVS+Keepalived高可用群集
客戶端的瀏覽器中,能夠通過LVS+Keepalived群集的VIP地址漂移(10.20.1.99)正常訪問web,驗證群集構(gòu)建成功。
先在20Master上將keepalived.service服務(wù)器關(guān)閉,查看IP情況:
發(fā)現(xiàn)VIP沒了。
然后在21Slave上查看VIP是否漂移過來了:
發(fā)現(xiàn)VIP已經(jīng)來到Slave上了。
這時,將20Master上將keepalived.service服務(wù)又重新啟動,VIP后回來了。
網(wǎng)頁標題:常見負載均衡軟件有哪些?
本文來源:http://www.dlmjj.cn/article/pghjde.html