lvs負載均衡
負載均衡技術(模式):
1、lvs-dr(direct routing)直接路由模式:客戶進來的請求先經過排程器,然後再丟給伺服器,最後由伺服器直接傳送請求給客戶端(不需要再次經過排程器,這個可以跟很多伺服器,因為它回應請求不需要經過排程器)。一般是在公司,就是同一網路裡用。 效能好,安全性差。但這個用的最多。
2、lvs-nat(network address translation): 客戶進來的請求先經過排程器,然後再丟給伺服器,接著伺服器再把請求丟給排程器,從而最後是由排程器來回應給客戶端。(這樣的話,排程器比較忙,所以排程器後面不能跟太多伺服器,3-5臺即可,這個ddos攻擊的時候相對來說更安全一些,因為伺服器沒有直接暴露在外面,是隱藏在排程器後面,相對效能會差一些)
3、lvs-tun(ip tunneling):隧道模式 : 起到備份或是cdn加速的功能。備份:例如有3臺伺服器,其中一台壞掉了,那麼請求就會分給其他兩台伺服器。cdn加速:北京的請求就分給北京的伺服器,上海的請求就分給上海的伺服器,武漢的就分給武漢的伺服器,這樣來平均負載。用的最少
lvs分為靜態(四種)與動態(六種)
輪循排程(rr)
:將外部請求按順序輪流分配到集群中的真實伺服器上,它均衡的對待每一台伺服器,而不管伺服器上實際的連線數和負載數。
優點:速度快,將外部請求按順序輪流分配到集群中的真實伺服器上。
缺點:不管伺服器上實際的連線數和負載數。權重無效,因為不管怎麼設定,它總是均衡的將外部請求按順序輪流分配到集群中的真實伺服器上。
加權輪循(wrr):
數字越大,權重越高:排程演算法根據真實伺服器的不同處理能力來排程訪問請求,這樣可以保證處理能力強的伺服器處理更多的訪問流量。排程器可以自動問詢真實伺服器的附載情況,並動態的調整其權重值。
優點:可根據伺服器的效能來設定權重,從而達到負載。
缺點:不管伺服器忙與不忙,都會按照你之前的權重來進行負載訪問。
根據權重來判斷。
目標位址雜湊(dh)
:根據請表求的目標ip位址,作為雜湊鍵(hash key) 從靜態分配的雜湊表找出對應的伺服器,若伺服器是可用的且未超載,將請求傳送到伺服器,否則返回空。(相當於給wrr策略做了一次擴充套件)
優點:1、首先根據權重來訪問哪乙個伺服器,然後第乙個請求訪問伺服器後,接著只要是這個ip進行的訪問,都會在這個伺服器上,有快取來進行加速訪問。2、原客戶端ip進行訪問的同時,不會去跑到第二個伺服器上。
缺點:不管你忙與不忙,都會按照你之前的權重來進行訪問。後端所跟的伺服器不會太多,否則director server的壓力就會變得過大。
源位址雜湊(sh)
:根據請表求的源ip位址,作為雜湊鍵(hash key) 從靜態分配的雜湊表找出對應的伺服器,若伺服器是可用的且未超載,將請求傳送到伺服器,否則返回空。(從哪個介面出去,再從哪個介面回來,相當於給rr做了次擴充套件)
iptables裡有個狀態跟蹤,必須從哪個閘道器(介面)出去,再從哪個閘道器(介面)回來,否則這個狀態就會沒有意義。這個也是一樣,必須是從哪個介面出去,再從哪個介面回來。(目的保證)
靜態的有快取,而動態的沒有,靜態的比較笨一些,動態的智慧型一些。
根據活動連線數與非活動鏈結數的總和進行判斷。
活動連線:請求服務訪問,例如提交資料或是在往資料庫裡寫東西的時候。
非活動連線:例如:已經建立起3次握手了。在訪問網頁的同時,停留在網頁中,不提交資料或是不寫資料的時候。
連線數=活動連線數+非活動連線數 來判斷的
開銷:最後計算請求書哪個最小就丟給誰
server1:共有1000個請求(例如),900個變成非活動連線,100個活動連線,就是用100*256+900(非活動連線)
server2:共有1000個請求,結果全部成為非活動連線(都走了)0*256+1000(非活動連線)
根據以上演算法,來判斷哪個請求較少,誰小就丟給誰。
不設定排程演算法,預設是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
當資料少的時候使用這個
活動連線+1(加1目的是為了讓它有誤差,當連線數少的時候會有突出)*256除以權重
這樣的目錄就是為了當一台伺服器的權重過高時,為了減少權重高一些的伺服器的壓力,讓權重低的伺服器幫忙也分擔一些出來。
6、最少佇列排程(nq):只要是伺服器端活動鏈結數為零,就丟給活動鏈結數為零的那台伺服器。(這種是特殊情況下做的微調)
a120518129
LVS三種工作模式 十種排程演算法介紹
工作模式介紹 1.virtual server via nat vs nat 優點 集群中的物理伺服器可以使用任何支援tcp ip作業系統,物理伺服器可以分配internet的保留私有位址,只有負載均衡器需要乙個合法的ip位址。缺點 擴充套件性有限。當伺服器節點 普通pc伺服器 資料增長到20個或更...
LVS 負載均衡 三種工作模式 十種排程演算法
lvs linux virtual server 即linux虛擬伺服器,是由章文嵩博士主導的開源負載均衡專案,目前lvs已經被整合到linux核心模組中。該專案在linux核心中實現了基於ip的資料請求負載均衡排程方案,其體系結構如圖1所示,終端網際網路使用者從外部訪問公司的外部負載均衡伺服器,終...
LVS十種排程演算法
1.靜態排程 1 rr round robin 輪詢排程 輪詢排程演算法的原理是每一次把來自使用者的請求輪流分配給內部中的伺服器,從1開始,直到n 內部伺服器個數 然後重新開始迴圈。演算法的優點是其簡潔性,它無需記錄當前所有連線的狀態,所以它是一種無狀態排程。2 wrr weighted round...