LVS基礎知識概述
阿新 • • 發佈:2018-11-23
- LVS(Liunx Virtual Server)
LVS作用就是實現負載均衡,而負載均衡簡單來所就是將使用者請求合理的分流到後端節點之上,以實現資源的高效利用。
LVS特點是可以跨平臺,也就是在windows、Linux系統之上都可以用。
LVS的核心元件:
- ip_vs:linux的核心功能模組,工作在核心,依賴該核心模組實現負載均衡功能
- ipvsadm:應用層程式,該程式可以和核心中的ip_vs模組通訊,實現對負載均衡的管理和控制
- keepalived也可以對ip_vs進行管理
相關概念:
- DS:Director Server。前端負載均衡器節點。
- RS:Real Server。後端真實的工作伺服器。
- VIP:向外部直接面向用戶請求,作為使用者請求的目標的IP地址。
- DIP:Director Server IP,主要用於和內部主機通訊的IP地址。
- RIP:Real Server IP,後端伺服器的IP地址。
- CIP:Client IP,訪問客戶端的IP地址。
LVS的工作模式:DR模式、NAT模式、TUN模式、FULLNAT模式。
LVS的排程演算法,所謂演算法簡單來說就是按照什麼規則來送後端的多個RS中挑選一個給使用者提供服務。演算法有靜態演算法和動態演算法。
靜態演算法:無論後端的RS當前的伺服器負載情況怎麼樣,都安裝固定的方式來給RS分配使用者請求
- rr:Round Bobin,輪詢,將客戶端的請求交替分配給RS
- wrr:Weighted Round Bobin,加權輪詢,根據RS的效能不同,讓他們來承擔不同比例的使用者請求
- dh:Destination Hashing,目標地址雜湊排程,基於使用者所請求的地址做雜湊表
作用:實現將對於相同的地址的請求排程到同一個RS之上
使用場景:適應於前端是一個DR,後端是多個cache的時候 - sh:Source Hashing,源地址的雜湊排程,基於使用者的ip地址做雜湊表
作用:實現將同一個客戶端排程到相同的RS之上
動態演算法:
- lc:Least Connection,最小連線數排程,本質是排程到當前負載最低的主機上
overhead=active*256+inactive - wlc:Weighted Least Connection,加權最小連線數排程,本質是排程到當前負載最低的主機上
overhead=(active*256+inactive)/weight - SED:是wlc補充,為了降低overhead出現重複的情況
overhead=((active+1)*256+inactive))/weight - lblc:基於目標地址的最小連線數排程,這種演算法那是lc和dh的組合,適應於cache場景
- lblcr:帶有複製功能的lblc
演算法的選型:
- 一般的網路的服務(http mail mysql)
rr wlc wrr - 快取服務(web cache/db cache)
dh lblc lblcr