LVS集群類(lèi)型比較:選擇最適合你的應(yīng)用架構(gòu)
一、什么是LVS?
LVS是Linux Virtual Server的簡(jiǎn)稱(chēng),也就是Linux虛擬服務(wù)器,是一個(gè)由章文嵩博士發(fā)起的軟件項(xiàng)目,現(xiàn)在LVS已經(jīng)是Linux標(biāo)準(zhǔn)內(nèi)核的一部分,在Linux2.4內(nèi)核以前,使用LVS時(shí)必須重新編譯內(nèi)核以支持LVS功能模塊,但是從Linux2.4內(nèi)核心之后,已經(jīng)完全內(nèi)置了LVS的各個(gè)功能模塊,無(wú)需給內(nèi)核打任何補(bǔ)丁,可以直接使用LVS提供的各種功能。
使用LVS技術(shù)要達(dá)到的目標(biāo)是:通過(guò)LVS提供的負(fù)載均衡技術(shù)和Linux操作系統(tǒng)實(shí)現(xiàn)一個(gè)高性能,高可用的服務(wù)器群集,它具有良好的可靠性、可擴(kuò)展性和可操作性。從而以低廉的成本實(shí)現(xiàn)最優(yōu)的服務(wù)性能。
二、LVS集群幾種類(lèi)型
1.LVS-NAT
原理:本質(zhì)上是多目標(biāo)IP的DNAT,通過(guò)將請(qǐng)求報(bào)文中的目標(biāo)地址和目標(biāo)端口修改為某挑出的RS的RIP和port實(shí)現(xiàn)轉(zhuǎn)發(fā)。
- RIP和DIP盡量在同一個(gè)網(wǎng)絡(luò),且使用私有網(wǎng)絡(luò),RS的網(wǎng)關(guān)盡量要指向DIP;
- 請(qǐng)求報(bào)文和響應(yīng)報(bào)文都必須經(jīng)由Diretory轉(zhuǎn)發(fā),Diretory易于成為系統(tǒng)瓶頸;
- 支持端口映射,可修改請(qǐng)求報(bào)文的目標(biāo)port;
- VS必須是linux系統(tǒng),RS可以是任意OS系統(tǒng);
2.LVS-DR(常用)
原理:Dirrect Routing,直接路由,LVS的默認(rèn)模式,應(yīng)用最廣泛,通過(guò)為請(qǐng)求報(bào)文重新封裝一個(gè)MAC首部進(jìn)行轉(zhuǎn)發(fā),源MAC是DIP所在接口的MAC,目標(biāo)MAC是挑選出來(lái)的RS的RIP所在接口的MAC地址,源IP/PORT以及目標(biāo)IP/PORT均保持不變。
- Director和各RS均要配置VIP;
- 確保前端路由器將目標(biāo)IP為VIP的請(qǐng)求報(bào)文發(fā)往Director
在RS上使用arptables工具:
arptables -A IN -d $VIP -j Drop
arptables -A OUT -s $VIP -j **** --*****-ip-s $RIP
RS上修改內(nèi)核參數(shù)以限制arp通告及應(yīng)答級(jí)別:
/proc/sys/net/ipv4/vonf/all/arp_ignore
/proc/sys/net/ipv4/conf/all/arp_announce
- RS的RIP可以使用私有網(wǎng)絡(luò)地址,也可以使用公網(wǎng)地址;RIP和DIP在同一個(gè)IP網(wǎng)絡(luò);
- RIP的網(wǎng)關(guān)不能指向DIP,以確保響應(yīng)報(bào)文不會(huì)經(jīng)過(guò)Director
- RS和Director要在同一個(gè)物理網(wǎng)絡(luò)
- 請(qǐng)求報(bào)文要經(jīng)過(guò)Director,但是響應(yīng)報(bào)文不會(huì)經(jīng)過(guò)Director,由RS直接發(fā)往Client
- 不支持端口映射,即端口固定
- RS可使用大多數(shù)OS操作系統(tǒng)
3.lvs-tun(跨異地)
原理:不修改請(qǐng)求報(bào)文的IP首部(CIP->VIP),而在原IP報(bào)文之外封裝一個(gè)IP首部(DIP->VIP),將報(bào)文發(fā)往目標(biāo)RS,RS直接響應(yīng)客戶(hù)端(VIP->CIP)。
- DIP、VIP、RIP都應(yīng)該是公網(wǎng)地址
- RS的網(wǎng)關(guān)不能指向DIP
- 請(qǐng)求報(bào)文要經(jīng)過(guò)Director,但是響應(yīng)報(bào)文不經(jīng)過(guò)直接回到Client
- 不支持端口映射
- RS的OS必須支持隧道功能
4.lvs-fullnat
原理:通過(guò)同時(shí)修改請(qǐng)求報(bào)文的源ip和目的ip進(jìn)行轉(zhuǎn)發(fā)
CIP->VIP
DIP->RIP
- VIP是公網(wǎng)地址
- RS收到的請(qǐng)求報(bào)文源地址是DIP,因此只響應(yīng)給DIP,lvs服務(wù)器將其轉(zhuǎn)發(fā)給client
- 請(qǐng)求和響應(yīng)報(bào)文都經(jīng)過(guò)LVS服務(wù)器
- 支持端口映射
- 內(nèi)核默認(rèn)不支持