lvs

cluster

系統擴展的方式;

scale up:向上擴展

scale out;向外擴展

集羣類型;

LB:負載均衡集羣。load banlancing

HA:高可用集羣。high availability

HP:高性能集羣。high performancing

系統運維:可用--> 標準化-->自動化

構建高可擴展性系統的重要原則;在系統內部儘量避免串行化;


LB集羣的實現;

硬件:

F5 BIG-IP

Citrix NetScaler

A10

Array

Red

Redware

軟件:

lvs

haproxy

nginx

ats(apach traffic server)

perlbal

傳輸層:LVS,HAPROXY(MODE TCP)

應用層:haproxy,nginx,ats,perlbal

lvs:

章文嵩

lvs:linux virtual server

L4:四層交換,四層路由;

根據請求報文的目標ip和port將其轉發至後端主機集羣中的某一臺主機(根據算法);

lvs:ipvsadm/ipvs 

ipvsadm:用戶空間的命令行工具,用於管理集羣服務

ipvs:工作內核中netfilter INPUT上;

grep -i -A 10  'IPVS' /boot/config-3.10.0-229.el7.x86_64 

支持TCP,UDP,AH,EST,AH_EST,SCTP等協議

lvs arch:

調度器,director,dispatcher,balancer

RS:real server

cip

vip

dip

lvs type

lvs-nat

lvs-dr(direct routing)

lvs-tun(ip tuueling)

lvs-fullnat

lvs-nat

1.RS和DIP應該使用私網地址,且RS的網關要指向DIP;

2.請求和響應報文都要經由director轉發,極高負載的場景中,director會成爲瓶頸;

3.支持端口映射;

4.RS可以使用任意OS

5.RS的RIP和director的DIP必須在同一個網絡;

lvs-dr:direct routing

通過修改請求報文的目標MAC地址進行轉發;

director:VIP,DIP

RS:RIP,VIP

1.保證前段路由器將目標IP爲VIP的請求報文發送給director

解決辦法;靜態綁定

 arptalbes

 修改RS主機內核的參數

2.RS的RIP可以使用私有地址,也可以使用公網地址;

3.RS和director必須在同一個物理網絡中

4.請求報文經由Director調度,但響應報文一定不能經由director

5.不支持端口映射

6.RS可以大多數OS

7.RS的網關不能指向DIP

lvs-tun

1.RIP,DIP,VIP全是公網地址

2.RS的網關不能指向DIP

3.請求報文必須經由director,響應的必須不經過director

4.不支持端口映射

5.RS的OS必須支持隧道功能

lvs-fullnat;

director通過同時修改請求報文的目標地址和源地址進行轉發

1.VIP是公網地址:RIP和DIP是私網地址,二者無須在同一網絡中;

2.RS接收到的請求報文的源地址爲DIP,因此要響應給DIP

3.請求報文和響應報文都必須經由director

4.支持端口映射;

5.RS可以使用任意OS

session保持;

session綁定;

source ip hash

cookie 

session集羣;rs之間複製session信息。

session服務器;單獨的session服務器。

lvs scheduler:調度算法

# IPVS scheduler

#

CONFIG_IP_VS_RR=m

CONFIG_IP_VS_WRR=m

CONFIG_IP_VS_LC=m

CONFIG_IP_VS_WLC=m

CONFIG_IP_VS_LBLC=m

CONFIG_IP_VS_LBLCR=m

CONFIG_IP_VS_DH=m

CONFIG_IP_VS_SH=m

CONFIG_IP_VS_SED=m

靜態方法:僅根據算法本身進行調度;

RR:round robin,輪調

WRR:weighted rr,加權輪調

SH:source hash,實現session保持的機制,來自同一個ip的請求調度到同一個RS

DH:destination hash,將對同一個目標的請求始終發往同一個RS

動態方法;根據算法及各RS的當前負載狀態進行調度;

LC:least connect

overhead=active*256+inactive 

WLC:weighted LC

overhead=(active*256+inactive)/weight

SED:shortest expection delay 最短期望延遲

overhead=(active+1)*256/weight

NQ:never queue 永不排隊

SED算法的改進。

LBLC:locality-Based LC ,動態的DH算法

正向代理情形下的cache server

LBLCR:locality-based least-connection with replication,帶複製功能的LBLC算法;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章