LVS:Linux Virtual Sevser,Linux虛擬服務器,由章文嵩先生成立的有關負載均衡的開源項目。基於Linux內核。優化后並發量可以達到百萬級。
NAT模式:
NAT(Network Address Translation)網絡地址轉換,內網主機可以通過路由NAT實現訪問外網主機。
1、client請求資源,當報文到達director時,源和目標IP是CIP-VIP,IPVS會強行修改目標地址為RIP,將報文從INPUT發向POSTROUTING,源和目標IP修改為CIP-RIP,RS驗證目標地址是本地地址,則接受報文並處理請求。
2、RS響應請求,由於請求報文源IP是CIP,所以響應報文的目標IP是CIP;將響應報文發送給網關director后,director會通過SNAT將源IP修改為VIP,這樣client才可以明確是響應它請求報文的數據包。
特點:
- director與RS必須在同一個局域網呢。
- RS的網關必須指向director的私網DIP。
- 請求和響應報文都需要director轉發,會成為整個系統的瓶頸。
- 支持端口映射,client訪問80端口,director可以映射到RS的8080端口上。
- director必須是Linux系統。
- director需要兩個網卡,一個與互聯網通信的公網VIP,一個與RS通信的私網DIP。
NAT模式配置過程:https://www.cnblogs.com/houyongchong/p/10551079.html
TUN模式:
IP隧道技術又稱IP封裝,在源和目標IP地址的基礎上,利用新的源和目標IP地址對數據報文進行第二次封裝。
1、client請求資源,源和目標IP為CIP-VIP的報文到達director,IPVS會利用隧道技術將DIP-RIP封裝在請求報文中,經POSTROUTING鏈發送至RS,RS本地需要配置tunl0地址為VIP,當RS接收到報文,二次封裝的目標地址RIP為本地eth0地址,原始目標地址VIP為本地tunl0地址,所以RS就會認定是發送給自己的數據包,就會處理請求。
2、RS響應請求,由於請求報文源和目標IP是CIP-VIP,所以響應報文的源和目標地址應為VIP-CIP;此時報文會經由RS的網關路由一直送達client。
特點:
- VIP、DIP、RIP都是公網IP。
- RS網關不會也不能指向DIP。
- 請求報文經過director,響應報文直接由RS發送給client,director不再成為系統瓶頸。
- RS必須支持隧道技術。
- 不支持端口映射。
DR(direct route)模式:
1、client請求資源,請求報文經過路由到達交換機,然后交換機查看目標IP為VIP,則修改源和目標MAC后再封裝報文發送給director,IPVS則將報文源MAC修改為DIP的MAC地址,目標MAC修改為RIP的MAC地址,然后經POSTROUTING鏈發送出去,通過交換機轉送給RS。DR模式會lo接口上配置一個虛擬地址VIP,當RS收到報文拆封發現目標MAC地址是自己,目標IP地址也是自己的lo地址VIP,就會處理請求。
2、RS響應請求,由於請求報文的目標IP是VIP,所以響應報文就通過lo接口傳送到eth0網卡發出。
特點:
- 保證前端路由將目標地址為VIP的報文全部發送給DS,而不是RS
- RS的RIP可以使用私有地址,但也可以使用公網地址
- RS和director必須在同一物理網絡中
- 請求報文有director調度,但響應報文不一定經由director
- 不支持端口映射
- RS的網關不能指向DIP
DR模式配置過程:https://www.cnblogs.com/houyongchong/p/10535993.html
調度算法:
rr,輪詢算法(round robin),調度器會將所有的請求平均分配給每個服務器。
wrr,加權輪詢(weight round robin),給每個RS分配權重比例。
lc,最小連接(least connections),把新請求分配到當前連接數最小的服務器上,,集群系統的真實服務器具有相近的系統性能,采用最小連接調度算法可以比較好地均衡負載
wlc,加權最小連接(weight least connections),在lc算法上為每台服務器分配上權重比例。