負載均衡知識全概要

會當擊水三千里發表於2016-05-23

LB--負載均衡

在負載均衡叢集中需要一個分發器,我們將其稱之為Director,它位於多臺伺服器的上面的中間層,根據內部鎖定義的規則或排程方式從下面的伺服器群中選擇一個以此來進行響應請求,而其分發的方式則是根據某個演算法進行的。HA--高可用

一、負載均衡的型別

負載均衡可以採用硬體裝置,也可以採用軟體負載。

商用硬體負載裝置成本通常較高(一臺幾十萬上百萬很正常),所以在條件允許的情況下我們會採用軟負載,軟負載解決的兩個核心問題是:選誰、轉發,其中最著名的是LVS(Linux Virtual Server)。

二、LVS:

LVS:Linux Virtual Server,linux虛擬服務——LVS是一個開源的軟體,可以實現LINUX平臺下的簡單負載均衡

LVS是四層負載均衡,也就是說建立在OSI模型的第四層——傳輸層之上,傳輸層上有我們熟悉的TCP/UDP,LVS支援TCP/UDP的負載均衡。
用 LVS 搭建一個負載均衡叢集——http://blog.jobbole.com/87503/
1、LVS的工作模式
Virtual Server via Network Address Translation NAT(VS/NAT)  :虛擬伺服器通過網路地址轉換(VS / NAT)
    VS/NAT是一種最簡單的方式,所有的RealServer只需要將自己的閘道器指向Director即可。
Virtual Server via IP Tunneling(VS/TUN)IP隧道實現虛擬伺服器
    IP隧道(IP tunneling)是將一個IP報文封裝在另一個IP報文的技術,這可以使得目標為一個IP地址的資料包文能被封裝和轉發到另一個IP地址。
Virtual Server via Direct Routing(VS/DR)  通過直接路由實現虛擬伺服器
    VS/DR方式是通過改寫請求報文中的MAC地址部分來實現的。Director和RealServer必需在物理上有一個網路卡通過不間斷的區域網相連。
2、模式對比和選擇
VS/NAT缺點:請求和響應報文都需要通過負載排程器,所以只能十分有限的伺服器節點,會成為系統瓶頸
VS/TUN和VS/DR:只將請求排程到不同的後端伺服器,後端伺服器將應答的資料直接返回給使用者。這樣,負載排程器就可以處理大量的請求,它甚至可以排程百臺以上的伺服器(同等規模的伺服器),而它不會成為系統的瓶頸。
需要注意的是
VS/TUN:會有IP隧道的開銷,需要提高網路卡配置百兆/千兆網路卡;所有的伺服器必須支援“IP Tunneling”或者“IP Encapsulation”協議
VS/DR:要求負載排程器與實際伺服器都有一塊網路卡連在同一物理網段上,伺服器網路裝置(或者裝置別名)不作ARP響應,或者能將報文重定向(Redirect)到本地的Socket埠上
3、容災:

容災分為RS的容災和LVS的容災。

RS的容災可以通過LVS定期健康檢測實現,如果某臺RS失去心跳,則認為其已經下線,不會在轉發到該RS上。

LVS的容災可以通過主備+心跳的方式實現。主LVS失去心跳後,備LVS可以作為熱備立即替換。

容災主要是靠KeepAlived來做的。

4、LVS負載均衡排程演算法

  ◆最少的連線方式(Least Connection):傳遞新的連線給那些進行最少連線處理的伺服器。當其中某個伺服器發生第二到第7 層的故障,BIG-IP 就把其從伺服器佇列中拿出,不參加下一次的使用者請求的分配, 直到其恢復正常。
  ◆最快模式(Fastest):傳遞連線給那些響應最快的伺服器。當其中某個伺服器發生第二到第7 層的故障,BIG-IP 就把其從伺服器佇列中拿出,不參加下一次的使用者請求的分配,直到其恢復正常。
  ◆觀察模式(Observed):連線數目和響應時間以這兩項的最佳平衡為依據為新的請求選擇伺服器。當其中某個伺服器發生第二到第7 層的故障,BIG-IP就把其從伺服器佇列中拿出,不參加下一次的使用者請求的分配,直到其恢復正常。
  ◆預測模式(Predictive):BIG-IP利用收集到的伺服器當前的效能指標,進行預測分析,選擇一臺伺服器在下一個時間片內,其效能將達到最佳的伺服器相應使用者的請求。(被BIG-IP 進行檢測)
  ◆動態效能分配(Dynamic Ratio-APM):BIG-IP 收集到的應用程式和應用伺服器的各項效能引數,動態調整流量分配。
  ◆動態伺服器補充(Dynamic Server Act.):當主伺服器群中因故障導致數量減少時,動態地將備份伺服器補充至主伺服器群。
  ◆服務質量(QoS):按不同的優先順序對資料流進行分配。
  ◆服務型別(ToS): 按不同的服務型別(在Type of Field中標識)負載均衡對資料流進行分配。
  ◆規則模式:針對不同的資料流設定導向規則,使用者可自行

三、對比nginx和lvs


高可用拓撲結構圖:(當然cache和DB也可以做叢集,DB可拆分、讀寫分離等等等)



OSI七層協議 、TCP/IP五層協議
OSI(Open System Interconnect),即開放式系統互聯
Transmission Control Protocol/Internet Protocol的簡寫,中譯名為傳輸控制協議/因特網互聯協議,又名網路通訊協議

相關文章