天天看點

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

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算法;

     本文轉自阿倫艾弗森 51CTO部落格,原文連結:http://blog.51cto.com/perper/1972109,如需轉載請自行聯系原作者

繼續閱讀