LVS負載均衡
負載均衡技術(模式):
1、lvs-DR(direct routing)直接路由模式:客戶進來的請求先經過排程器,然後再丢給伺服器,最後由伺服器直接發送請求給用戶端(不需要再次經過排程器,這個可以跟很多伺服器,因為它回應請求不需要經過排程器)。一般是在公司,就是同一網絡裡用。 性能好,安全性差。但這個用的最多。

3、LVS-TUN(IP tunneling):隧道模式 : 起到備份或是cdn加速的功能。備份:例如有3台伺服器,其中一台壞掉了,那麼請求就會分給其他兩台伺服器。cdn加速:北京的請求就分給北京的伺服器,上海的請求就分給上海的伺服器,武漢的就分給武漢的伺服器,這樣來平均負載。用的最少
lvs的IP位址類型
排程算法
lvs分為靜态(四種)與動态(六種)
輪循排程(rr)
:将外部請求按順序輪流配置設定到叢集中的真實伺服器上,它均衡的對待每一台伺服器,而不管伺服器上實際的連接配接數和負載數。
優點:速度快,将外部請求按順序輪流配置設定到叢集中的真實伺服器上。
缺點:不管伺服器上實際的連接配接數和負載數。權重無效,因為不管怎麼設定,它總是均衡的将外部請求按順序輪流配置設定到叢集中的真實伺服器上。
權重輪循(wrr):
數字越大,權重越高:排程算法根據真實伺服器的不同處理能力來排程通路請求,這樣可以保證處理能力強的伺服器處理更多的通路流量。排程器可以自動問詢真實伺服器的附載情況,并動态的調整其權重值。
優點:可根據伺服器的性能來設定權重,進而達到負載。
缺點:不管伺服器忙與不忙,都會按照你之前的權重來進行負載通路。
根據權重來判斷。
目标位址散列(DH)
:根據請表求的目标ip位址,作為散列鍵(hash key) 從靜态配置設定的散清單找出對應的伺服器,若伺服器是可用的且未超載,将請求發送到伺服器,否則傳回空。(相當于給wrr政策做了一次擴充)
優點:1、首先根據權重來通路哪一個伺服器,然後第一個請求通路伺服器後,接着隻要是這個ip進行的通路,都會在這個伺服器上,有緩存來進行加速通路。2、原用戶端ip進行通路的同時,不會去跑到第二個伺服器上。
缺點:不管你忙與不忙,都會按照你之前的權重來進行通路。後端所跟的伺服器不會太多,否則director server的壓力就會變得過大。
源位址散列(SH)
:根據請表求的源ip位址,作為散列鍵(hash key) 從靜态配置設定的散清單找出對應的伺服器,若伺服器是可用的且未超載,将請求發送到伺服器,否則傳回空。(從哪個接口出去,再從哪個接口回來,相當于給rr做了次擴充)
Iptables裡有個狀态跟蹤,必須從哪個網關(接口)出去,再從哪個網關(接口)回來,否則這個狀态就會沒有意義。這個也是一樣,必須是從哪個接口出去,再從哪個接口回來。(目的保證)
靜态的有緩存,而動态的沒有,靜态的比較笨一些,動态的智能一些。
1、最少連結:(LC):
根據活動連接配接數與非活動連結數的總和進行判斷。
活動連接配接:請求服務通路,例如送出資料或是在往資料庫裡寫東西的時候。
非活動連接配接:例如:已經建立起3次握手了。在通路網頁的同時,停留在網頁中,不送出資料或是不寫資料的時候。
連接配接數=活動連接配接數+非活動連接配接數 來判斷的
開銷:最後計算請求書哪個最小就丢給誰
Server1:共有1000個請求(例如),900個變成非活動連接配接,100個活動連接配接,就是用100*256+900(非活動連接配接)
Server2:共有1000個請求,結果全部成為非活動連接配接(都走了)0*256+1000(非活動連接配接)
根據以上算法,來判斷哪個請求較少,誰小就丢給誰。
2、權重最少連結:(WLC):
不設定排程算法,預設是wlc,(開銷除以權重(100*256+900)/3),
還是拿上面的那個例子說
Server1:權重是3 (100*256+900)/3
Server2:權重是1 (0*256+1000)/1
誰少就丢給誰。
3、基于局部性的最少連結(LBLC):
在DH的基礎上做微調,簡單的說就是把DH做成動态排程算法。
DH:通路一個請求的時候,會一直在第一次通路時的那台伺服器上。
而LBLC就是盡量讓它在第一次通路的伺服器上,但如果發現通路的原來第一次伺服器上的資料過大時,它便會去其它的伺服器上。
算發還是用的WLC的算法。
4、帶複制的基于局部性最少連結(LBLCR):
簡單說就是又在LBLC的基礎上做的微調,把自己已有的緩存複制給别人(緩存共享)
5、最短的期望的延遲(SED):在WLC的基礎之上做的微調。
不考慮非活動連接配接數,隻考慮活動連接配接數。(這種指的是特殊情況下做的微調)
例如:活動連接配接請求都為0
Server1:權重是1 (0+1)*256/1=256
Server2:權重是10 (0+1)*256/10=25.6
當資料少的時候使用這個