高性能負載均衡器集群LVS

此文檔主要來自高俊峰老師的資料匯總

LVS體系結(jié)構(gòu)

??使用 LVS 架設(shè)的服務(wù)器集群系統(tǒng)有三個部分組成:最前端的負載均衡層,用 Load Balancer表示,中間的服務(wù)器群組層,用 Server Array 表示,最底端的數(shù)據(jù)共享存儲層,用 Shared Storage 表示,在用戶看來,所有的內(nèi)部應(yīng)用都是透明的,用戶只是在使用一個虛擬服務(wù)器提供的高性能服務(wù)。

LVS 體系結(jié)構(gòu)如下圖所示:


  • Load Balancer 層:位于整個集群系統(tǒng)的最前端,有一臺或者多臺負載調(diào)度器
    (Director Server)組成,LVS 模塊就安裝在 Director Server 上,而 Director 的主要作用類似于一個路由器,它含有完成 LVS 功能所設(shè)定的路由表,通過這些路由表把用戶的請求分發(fā)給 Server Array 層的應(yīng)用服務(wù)器(Real Server)上。同時,在 Director Server 上還要安裝對 Real Server 服務(wù)的監(jiān)控模塊 Ldirectord,此模塊用于監(jiān)測各個Real Server 服務(wù)的健康狀況。在 Real Server 不可用時把它從 LVS 路由表中剔除,恢復(fù)時重新加入。
  • Server Array 層:由一組實際運行應(yīng)用服務(wù)的機器組成,Real Server 可以是 WEB 服務(wù)器、MAIL 服務(wù)器、FTP 服務(wù)器、DNS 服務(wù)器、視頻服務(wù)器中的一個或者多個,每個Real Server 之間通過高速的 LAN 或分布在各地的 WAN 相連接。在實際的應(yīng)用中,Director Server 也可以同時兼任 Real Server 的角色。
  • Shared Storage 層:是為所有 Real Server 提供共享存儲空間和內(nèi)容一致性的存儲區(qū)域,在物理上,一般有磁盤陣列設(shè)備組成,為了提供內(nèi)容的一致性,一般可以通過 NFS網(wǎng)絡(luò)文件系統(tǒng)共享數(shù)據(jù),但是 NFS 在繁忙的業(yè)務(wù)系統(tǒng)中,性能并不是很好,此時可以采用集群文件系統(tǒng),例如 Red hat 的 GFS 文件系統(tǒng),oracle 提供的 OCFS2 文件系統(tǒng)等。


lvs負載均衡

??負載均衡技術(shù)有很多實現(xiàn)方案,有DNS負載均衡、HTTP重定向、反向代理負載均衡、IP負載均衡、直接路由、IP隧道,在這些負載調(diào)度算法中,執(zhí)行效率最高的是數(shù)據(jù)鏈路負載均衡。
關(guān)于服務(wù)器集群負載均衡參考文檔:https://www.zhihu.com/question/22610352
注意:
反向代理負載均衡不是數(shù)據(jù)鏈路層的負載均衡,數(shù)據(jù)鏈路層的負載均衡可以實現(xiàn)三角傳輸(DR模式)。
數(shù)據(jù)鏈路層負載均衡是目前使用最廣泛的一種負載均衡方式。著名的負載均衡開源產(chǎn)品LVS(Linux Virtual Server),同時支持上面的IP負載均衡和數(shù)據(jù)鏈路層負載均衡。

??LVS 的 IP 負載均衡技術(shù)是通過 IPVS 模塊來實現(xiàn)的,IPVS 是 LVS 集群系統(tǒng)的核心軟件,lvs集群整個執(zhí)行流程為:訪問的請求首先經(jīng)過 VIP 到達負載調(diào)度器,然后由負載調(diào)度器從 Real Server 列表中選取一個服務(wù)節(jié)點響應(yīng)用戶的請求。
??當用戶的請求到達負載調(diào)度器后,調(diào)度器如何將請求發(fā)送到提供服務(wù)的 Real Server 節(jié)點,而 Real Server 節(jié)點如何返回數(shù)據(jù)給用戶,是 IPVS 實現(xiàn)的重點技術(shù),IPVS 實現(xiàn)負載均衡機制有三種,分別是 NAT、TUN 和 DR,詳述如下:

1. DR模式
DR模式

DR 模式: 即 Virtual Server via Direct Routing,也就是用直接路由技術(shù)實現(xiàn)虛擬服務(wù)器。VS/DR 通過改寫請求報文的 MAC 地址,將請求發(fā)送到 Real Server,而 Real Server將響應(yīng)直接返回給客戶。這種調(diào)度方式的性能最好的。

DR模式小結(jié):
1、DR 模式是通過在調(diào)度器 LB 上修改數(shù)據(jù)包的目的 MAC 地址實現(xiàn)轉(zhuǎn)發(fā)。因此數(shù)據(jù)包來源地址保持不變,目的地址仍然是 VIP 地址。
2、請求的報文經(jīng)過調(diào)度器,而 RS 響應(yīng)處理后的報文無需經(jīng)過調(diào)度器 LB,因此并發(fā)訪問量大時使用效率很高(和 NAT 模式比)
3、因為 DR 模式是通過 MAC 地址改寫機制實現(xiàn)轉(zhuǎn)發(fā),因此所有 RS 節(jié)點和調(diào)度器 LB 只能在一個局域網(wǎng)里面
4、RS 主機需要綁定 VIP 地址在 LO 接口上,并且需要配置 ARP 抑制。
5、RS 節(jié)點的默認網(wǎng)關(guān)不需要配置成 LB,而是直接配置為上級路由的網(wǎng)關(guān),能讓 RS 直接出網(wǎng)就可以。
6、由于 DR 模式的調(diào)度器僅做 MAC 地址的改寫,所以調(diào)度器 LB 就不能改寫目標端口,那么 RS 服務(wù)器就得使用和 VIP 相同的端口提供服務(wù)。

2. NAT模式
NAT模式

NAT 模式: 即 Virtual Server via Network Address Translation,也就是網(wǎng)絡(luò)地址翻譯技術(shù)實現(xiàn)虛擬服務(wù)器。當用戶請求到達調(diào)度器時,調(diào)度器將請求報文的目標地址(即虛擬IP 地址)改寫成選定的 Real Server 地址,同時將報文的目標端口也改成選定的 Real Server的相應(yīng)端口,最后將報文請求發(fā)送到選定的 Real Server。在服務(wù)器端得到數(shù)據(jù)后,Real Server 將數(shù)據(jù)返回給用戶時,需要再次經(jīng)過負載調(diào)度器將報文的源地址和源端口改成虛擬IP 地址和相應(yīng)端口,然后把數(shù)據(jù)發(fā)送給用戶,完成整個負載調(diào)度過程。

NAT模式優(yōu)缺點:
1、NAT 模式不需要 LB IP 和 realserver ip 在同一個網(wǎng)段(此圖是在同一個局域網(wǎng)下)。只需要在 LB 上配置一個公網(wǎng) IP 地址就可以了。
2、NAT 技術(shù)將請求的報文和響應(yīng)的報文都需要通過 LB 進行地址改寫,因此網(wǎng)站訪問量比較大的時候,LB 負載均衡調(diào)度器有比較大的瓶頸,一般要求最多之能 10-20 臺節(jié)點
3、每臺內(nèi)部的 realserver 服務(wù)器的網(wǎng)關(guān)地址必須是調(diào)度器 LB 的內(nèi)網(wǎng)地址。
4、NAT 模式支持對 IP 地址和端口進行轉(zhuǎn)換。即用戶請求的端口和真實服務(wù)器的端口可以不一致。

3. FULL NAT模式

FULL NATT 模式,與 NAT 模式基本一樣,不同之處在于對報文的處理方面,如下圖:

NAT與FULL NAT報文

1、FULL NAT 模式也不需要 LB IP 和 realserver ip 在同一個網(wǎng)段。
2、FULL NAT 因為要更新 Source IP 所以性能正常比 NAT 模式下降 10%。

4. IP TUNNEL模式
IP隧道.png

TUN :即 Virtual Server via IP Tunneling 也就是通過 IP 隧道技術(shù)實現(xiàn)虛擬服務(wù)器。 在 VS/TUN 方式中,調(diào)度器采用 IP 隧道技術(shù)將用戶請求轉(zhuǎn)發(fā)到某個 Real Server,而這個Real Server 將直接響應(yīng)用戶的請求,不再經(jīng)過前端調(diào)度器。此外,對 Real Server 的地域位置沒有要求,可以和 Director Server 位于同一個網(wǎng)段,也可以在獨立的一個網(wǎng)絡(luò)中。因此,在 TUN 方式中,調(diào)度器將只處理用戶的報文請求,從而使集群系統(tǒng)的吞吐量大大提高。

IP TUNNEL模式注意事項:
1、TUNNEL 模式必須在所有的 realserver 機器上面綁定 VIP 的 IP 地址
2、TUNNEL 模式的 vip ------>realserver 的包通信通過 TUNNEL 模式,不管是內(nèi)網(wǎng)和外網(wǎng)都能通信,所以不需要 lvs vip 跟 realserver 在同一個網(wǎng)段內(nèi)
3、TUNNEL 模式 realserver 會把 packet 直接發(fā)給 client 不會給 lvs 了
4、TUNNEL 模式走的隧道模式,所以運維起來比較難,所以一般不用。

LVS調(diào)度算法

Lvs 的調(diào)度算法決定了如何在集群節(jié)點之間分布工作負荷。當 director 調(diào)度器收到來自客戶端訪問 VIP 的上的集群服務(wù)的入站請求時,director 調(diào)度器必須決定哪個集群節(jié)點應(yīng)該處理請求。Director 調(diào)度器用的調(diào)度方法基本分為兩類:
固定調(diào)度算法:rr,wrr,dh,sh
動態(tài)調(diào)度算法:wlc,lc,lblc,lblcr

LVS調(diào)度算法的生產(chǎn)環(huán)境選型:
1、一般的網(wǎng)絡(luò)服務(wù),如 www,mail,mysql 等常用的 LVS 調(diào)度算法為:
a.基本輪詢調(diào)度 rr
b.加權(quán)最小連接調(diào)度 wlc
c.加權(quán)輪詢調(diào)度 wrr
2、基于局部性的最小連接 lblc 和帶復(fù)制的給予局部性最小連接 lblcr 主要適用web cache 和 DB cache
3、源地址散列調(diào)度 SH 和目標地址散列調(diào)度 DH 可以結(jié)合使用在防火墻集群中,可以保證整個系統(tǒng)的出入口唯一。

LVS的安裝與使用

  • 安裝 IPVS 管理軟件
[root@localhost ~]#yum -y install ipvsadm
[root@localhost ~]# ipvsadm --help
  • ipvsadm 的用法


    ipvsadm的用法

可以用“ipvsadm --clear”代替“ipvsadm -C”

列子:

[root@localhost ~]#ipvsadm -C
[root@localhost ~]#ipvsadm -A -t 192.168.60.200:80 -s rr -p 600
[root@localhost ~]#ipvsadm -a -t 192.168.60.200:80 -r 192.168.60.132:80 -g
[root@localhost ~]#ipvsadm -a -t 192.168.60.200:80 -r 192.168.60.144:80 –g
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容