LVS是Linux Virtual Server的簡寫,即Linux虛擬服務器,是一個虛擬的服務器集群系統。通過LVS提供的負載均衡技術和Linux操作系統實現一個高性能、高可用的服務器群集,它具有良好可靠性、可擴展性和可操作性。從而以低廉的成本實現最優的服務性能。
4種模型概要總結:
1、NAT的特性:
1)RS應該使用私有地址;
2)RS的網關的必須指向DIP;
3)RIP和DIP必須在同一網段內;
4)請求和響應的報文都得經過Director;在高負載場景中,Director很可能成為系統性能瓶頸;
5)支持端口映射;
6)RS可以使用任意支持集群服務的OS;

image
## 2、DR類型的特性:
1)RS可以使用私有地址;但也可以使用公網地址,此時可以直接通過互聯網連入RS以實現配置、監控等;
2)RS的網關一定不能指向DIP;
3)RS跟DR要在同一物理網絡內(不能由路由器分隔);
4)請求報文經過DR,但響應報文一定不經過DR
5)不支持端口映射;
6)RS可以使用大多數的操作系統;

image
3、 TUN類型:IP隧道
1)RIP、DIP、VIP都得是公網地址;
2)RS的網關不會指向也不可能指向DIP;
3)請求報文經過DR,但響應報文一定不經過DR;
4)不支持端口映射;
5)RS的OS必須得支持隧道功能;
4、 FullNat:
1)DR,RS可以不在同一網絡內,但它與TUN不同,所有IP報文頭部信息變更都在DR上進行,所以性能方面比LVS_NAT更差一些;
2)需要注意配置路由,保證能正常通信;
常用調度算法
靜態調度算法:基于算法本身
1)RR 輪詢
Round Robin :新的連接請求被輪流分配至各RealServer,優點是該算法無需記錄當前所有連接的狀態,效率高;但缺點是在RealServer當中如果有性能不均等的情況下,性能差的主機將負載比較大。該算法容易倒致服務器之間負載不均衡;
2)WRR 加權輪詢
Weighted RR :優點與RR一樣,無需記錄所有連接狀態;通過設定一定的權重值來分配連接請求;
3)SH 源地址哈希
Source Hashing :通過一個散列函數將去往同一個目的IP的請求映射到一臺服務器或鏈路上。
4)DH 目標地址哈希
Destination Hashing : 通過一個散列函數將來自同一個源IP的請求映射到一臺服務器或鏈路上
動態調度算法:基于算法本身與RS本身的負載情況:
1)LC 最少連接數
Least Connection :根據當前各服務器的連接數來估計服務器的負載情況,把新的連接分配給連接數最小的服務器;負載率=active*256+inactive,值小的優先分配請求;
2)WLC 加權最少連接數
Weighted LC :與LC類似,根據當前各服務器的連接數來估計服務器的負載情況,把新的連接分配給連接數最小的服務器;負載率=(active*256+inactive)/weight,值小的優先分配請求;
3)SED 最短期望延遲
Shortest Expect Delay : 這個算法主要是優化LC的,在服務均在請求少的時候避免負載到一臺服務器上做的優化;負載率=(active+1)*256/weight,值小的優先分配請求;
4)NQ 永不排隊
Nerver Queue :在負載低時,請求直接分配到空閑服務器上,不會產生請求等待;當服務器都很忙時,將輪詢;
5)LBLC 基于本地最少連接
Locality-Based Least Connection :根據請求的目標IP地址找出該目標IP地址最近使用的RealServer,若該Real Server是可用的且沒有超載,將請求發送到該服務器;若服務器不存在,或者該服務器超載且有服務器處于一半的工作負載,則用“最少鏈接”的原則選出一個可用的服務器,將請求發送到該服務器。
6)LBLCR 帶復制的基于本地最少連接
Replicated and Locality-Based Least Connection :該算法根據請求的目標IP地址找出該目標IP地址對應的服務器組,按“最小連接”原則從服務器組中選出一臺服務器,若服務器沒有超載,將請求發送到該服務器;若服務器超載,則按“最小連接”原則從這個集群中選出一臺服務器,將該服務器加入到服務器組中,將請求發送到該服務器。