lvs 基本概念

LVS(linux virtual machine) 的簡寫,是一個虛擬的服務器集群系統,主要用于4層負載均衡。

宗旨:

使用集群技術和Linux操作系統實現一個高性能、高可用的服務器.

很好的可伸縮性(Scalability)

很好的可靠性(Reliability),應該還是高可用吧

很好的可管理性(Manageability)。很容易使用,很好學。

 

lvs自身應該不能實現高可用,需要結合其它軟件實現。

可伸縮性:

1、可伸縮性,簡單來說,是以更大的規模來做你現在所做的事。伸展一個Web應用的規模在于讓更多的人使用你的程序。如果你沒法找出方法在伸展規模的同時提高性能,沒關系。而且只要你可以伸展規模來處理更大數量的用戶,那么有幾個單點故障(single point of failure)也沒關系。

 

LVS的幾個術語:

VIPDirector用來向外部提供服務的IP地址,也就是DNS通過域名解析到的IP

RIP:集群節點(后臺真正提供服務的服務器)所使用的IP地址

DIPDirector用來和RIP進行交互的IP地址

CIP:客戶端使用的IP或公網IP

R S :集群節點服務器Real server

lvs內核模型:

    }}F`_{GJ1PS7Y$K611MFNWY.png

LVS的三種負載均衡技術:

NAT

優點服務器可以運行任何支持TCP/IP的操作系統,它只需要一個IP地址配置在LVS主機上,服務器組可以用私有的IP地址。

缺點擴充能力有限,當服務器結點數目很多時,LVS主機本身有可能成為系統的新瓶頸,因為在VS/NAT中請求和響應封包都需要通過負載平衡LVS主機。

特點:

                1、RIP要使用使用地址,網關指向DIP

                2、請求報文和響應報文都需經過Director:所以Director可能成為系統性能瓶頸。

                3、支不支持端口映射,支持

                4、RS可以使用任意操作系統。

       請求流程:

KA37VB0A8Q_G_@%~GA2EJ$O.jpg

ICM7J3(T_FZY}{X601CDRH6.jpg

 

DR

VS/DR LVS主機只處理客戶到服務器端的連接,響應資料可以直接從獨立的網絡路由返回給客戶。這可以極大地提高LVS集群系統的伸縮性。

同 VS/TUN相比,這種方法沒有IP隧道的開銷,但是要求負載平衡LVS主機與實際服務器都有一塊網卡連在同一物理網段上,服務器網絡設備或者設備別名不 作 ARP 響應。

 

特點:

                    1、保證前端路由將VIP的報文通通發往Directory,而不是RS

                    解決方案:

                    (1)、靜態地址綁定,在前端路由器上操作

                    問題:未必有路由操作權限

                    (2)、在real server上配置iptables不讓響應

                    (3)、修改RS上的內核參數,將RS上的VIP配置在lo接口的別名上,并且限制其不能響應對VIP地址解析請求。

                    2、RS可以使用私有地址,也可以使用公網地址,此時可以通過互聯網對其直接進行訪問。

                    3、RS和Directory必須在同一物理網絡中。

                    4、所有的請求報文經由Director,但是響應報文必須不能經過Director

                    5、不支持端口映射。

                    6、RS可以是大多數常見的OS。

                    7、RS網關不指向DIP

    請求流程

lvs 基本概念UQ9VLPSCK[(`}%BBH]L5BUV.jpg

TUN

在VS/TUN 的集群系統中,負載平衡LVS主機只將請求分配到不同的實際服務器,實際服務器將應答的資料直接返回給用戶。這樣,負載平衡LVS主機就可以處理巨量的請 求,而不會成為系統的瓶頸。即使負載平衡LVS主機只有100Mbps的全雙工網卡,虛擬服務器的最大吞吐量可以達到幾Gbps。所以,VS/TUN可以 極大地增加負載平衡LVS主機分配的服務器數量,它可以用來構建高性能超級服務器。VS/TUN技術對服務器的要求是所有的服務器必須支持"IP Tunneling"或者"IP Encapsulation"協議。目前,VS/TUN 的后端服務器主要運行Linux操作系統。因為"IP Tunneling"正成為各個操作系統的標準協議,所以VS/TUN也會適用運行其它操作系統的后端服務器。

 

特點:

                    1、RIP、VIP、DIP全部是公網地址

                    2、RS的網關不會也不可能指向DIP

                    3、請求報文經由Director,但響應報文必須不能經過Director

                    4、不支持端口映射

                    5、支持隧道類型

   請求流程

M[K_PLL]GAAIBXJHQDJ{2FO.png

 

 

XL@TSIX5ROX4%1KX3GN2AEX.pngLVS的常見調度算法:

rr(round robin):將工作平均的分配到服務器 (用于實際服務主機性能一致)

lc:(least-connections )

    向較少連接的服務器分配較多的工作(tcp計時器判斷后端連接數量。用于實際服務主機性能一致。)

    overhead值,表示當前負載狀況 。

    overhead = active*256 + innactive


wrr(weighted round robin):

    加權輪詢,能者多勞。誰性能好分給誰的請求多。 (用于實際服務主機性能不一致時)

wlc(weighted least-connections):

    考慮它們的容量向較少連接的服務器分配較多的工作。容量通過用戶指定的砝碼來說明,可以根據裝載信息動態的向上或向下調整。(用于實際服務主機性能不一致時)

    overhead = (active*256 + inactive) /weight

 

   sh:(source hashing):

源地址hash,為了session持久的功能,在IPv4的代碼中自行位置一個hash表,把CIPhash存儲,任何一個客戶端在來,先查hash表。這就是來自同一個IP的主機將始終定向至同一個real server.

   dh:(destination hashing),目標地址hash,real server訪問外部時,   

還有一些調度算法,用的比較少,就不再列舉了。

 

參考:

http://www.infoq.com/cn/news/2007/10/whatisscalability  你真的明白什么是可伸縮性嗎?

http://baike.baidu.com/link?url=jIw3aTgnp6_SV7Op9LnIb7bL1Ik8xQGxTfhz-D5GraGOPkR97y6f3rMXtgS8axp9NlNilEUpLHWUNoJ5EVUGU18J4sdJlmOCbfCNeHwgZzy   LVS百度百科的介紹

http://os.51cto.com/art/201202/319979.htm  專題:LVS負載均衡手冊

總結:

    1、網上已經有很多lvs的資料了,這篇博客也沒有什么新意,edraw軟件在電腦上沒反應,沒有好的畫圖工具,三種lvs 調度模型,描述的就不夠詳細,而且是摘抄的別人的圖。

    2、感覺概念一般是死的,寫來寫去好像也就是這么多東西,不過總結一下對自己有些幫助吧。

    3、如果布局太差,那么在編輯的時候,文字間距離看起來還行啊,預覽的時候行間距就很大,這下次編輯的時候在看看是不是還是這種情況。

最后就是,接著這篇博客,會寫一下lvs調度模型的具體實現。

原創文章,作者:艾賀,如若轉載,請注明出處:http://www.www58058.com/8096

(0)
艾賀艾賀
上一篇 2015-09-14
下一篇 2015-09-14

相關推薦

評論列表(2條)

  • stanley
    stanley 2015-09-14 09:32

    總結的內容到位,只是樣式上的亂了些,很容易看到一半就放棄了

  • 云中鶴
    云中鶴 2015-09-14 09:59

    下次我要注意布局

欧美性久久久久