LVS介紹
LVS是linux virtual server的簡寫,是服務器集群的一種負載均衡解決方案,作為netfilter的補充套件,工作于內核空間。
常見的術語
CIP:客戶端ip地址
RIP:后端服務器ip地址
VIP:lvs面向客戶端的ip地址
DIP:lvs面向后端服務器的ip地址
RS:后端服務器
VS:調試器
調試算法分靜態和動態兩種
靜態方法,根據算法本身進行調試
RR:輪詢
WRR:加權輪詢,根據服務器的權重做輪詢
SH:源地址哈希,將來自同一ip的請求都發往該ip第一次請求的RS
DH:目標地址哈希,發送到同一目的地址的請求都發往指定的RS(常用于正向代理)
動態方法,根據算法及各RS當前的負載狀態進行評估
LC:最少連接,把請求發給連接最少的RS
WLC:加權最少連接,按照服務器權重和服務器的連接數分配連接,
算法:overhead=(activeconns*256+inactive)/weight
SED:最短延遲,當連接都為0的時候,優先由權重高的服務器處理
算法:overhead=(activeconns+1)*256/weight
NQ:意為,永不排隊,開始時,按權重從大到小分配負載,之后再按SED算法進行工作。SED算法的改進
LBLC:動態的DH算法
LBLCR:帶復制功能的動態DH算法
Lvs-nat
多目標的DNAT,通過修改報文的目標地址和端口將請求轉發至后端real server,類似與iptables的DNAT
工作原理:
Client請求到VS的VIP,數據到達INPUT后匹配LVS規則, 通過調試算法把請求從DIP向后端RS轉發,RS把響應報文通過VS發給client (RS的RIP與Director必須在同一個IP網絡,且RS的網關須指向DIP)
Lvs-dr
重新封裝一個MAC地址首部請求報文,再通過調試算法轉給RS(源IP為CIP,目標IP始終為VIP)
工作原理
Client請求到VS,VS在請求報文封裝MAC首部,源MAC為DIP,目標MAC為后端某一臺RS,源IP和目標IP都保持不變,RS通過本機VIP地址直接給客戶端發響應報文。
DR類型須確保前端路由器將目標IP為VIP的請求報文一定會發送給RS。
解決這個問題的方法有:
1、 路由器靜態綁定
2、 禁止RS響應VIP的ARP請求(修改arp表或禁用RS的內核參數,并把VIP配置在特定的接口上實現禁止其響應。
Lvs-tun
不修改請求報文的IP首部,在原有的IP首部外再次封裝一個IP首部
工作原理
Client請求到VS, VS通過調試算法選定一臺公網上的RS,并在請求報文外再封裝一個IP首部,RS自己響應客戶端(RIP、DIP、VIP全是公網地址)
Lvs-fullnat
Lvs-fullnat不是標準的調試機制,需要自己編譯安裝,它是通過同進修改請求報文的源IP和目標IP實現轉發
工作原理類似nat類型,不同在于VS向后端RS轉發時可以跨網絡
LVS持久連接
LVS持久連接分3種模式
每端口持久(PPC)
每客戶端持久(PCC)
每FWM持久(PFWMC)
原創文章,作者:N27_xieqizhi,如若轉載,請注明出處:http://www.www58058.com/83613