LVS(Linux Virtual Server)是Linux內核中實現的一個虛擬服務器,是國內的開發者開發的一個自由軟件項目,它的主要作用是負載均衡。它有兩部分組成,一個是內核中的核心處理叫IPVS,另一個是用戶空間的配置工具ipvsadm,IPVS是Linux內核的一個框架,是在Linux內核的netfilter框架基礎之上實現的,在三個HOOK點添加了自己的處理函數。IPVS是以IP做的負載均衡,也即是三層的負載均衡,這個和haproxy、nginx是有區別的。
LVS技術要達到的目標是:通過LVS提供的負載均衡技術和Linux操作系統實現一個高性能、高可用的服務器群集,它具有良好可靠性、可擴展性和可操作性。可以以低廉的成本實現較高的服務性能。
IPVS的官方網址為:http://www.linuxvirtualserver.org/,下面分析的內核版本為Linux-2.6.32。
LVS實現了三種轉發類型:
l LVS-NAT模型,稱為網絡地址轉換,實現起來比較簡單,類似於NAT,比NAT簡單很多;
l LVS-DR模型,稱為直接路由模型,主要是修改MAC地址;
l LVS-TUN模型,稱為隧道模型,添加一層IP封裝。
1) 所有的RealServer集群節點和前端調度器Director都要在同一個子網中
2) 通常情況下RealServer的IP地址(以下簡成RIP)為私有地址,便於RealServer集群節點之間進行通信
3) 通常情況下前端的Director有兩個IP地址,一個為VIP,是虛擬的IP地址,客戶端向此IP地址發起請求。一個是DIP,是真正的Director的IP地址,RIP的網關要指向Director的DIP。
4) RealServer的操作系統可以是任意操作系統
5) 前端的Director既要處理客戶端發起的請求,又要處理後台RealServer的響應信息,將RealServer響應的信息再轉發給客戶端
6) 前端Director很容易成為整個集群系統性能的瓶頸。
1) 所有的RealServer集群節點和前端調度器Director都要在同一個物理網絡中
2) RIP可以使用公網的IP
3) RIP的網關不能指向DIP
4) 前端的Director只處理客戶端的請求,然後將請求轉發給RealServer,由後台的RealServer直接響應客戶端,不再經過Director
1) RealServer服務器與前端的Director可以在不同的網絡中
2) RIP一定不能是私有IP
3) 前端的Director只處理客戶端的請求,然後將請求轉發給RealServer,由後台的RealServer直接響應客戶端,不再經過Director