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,如需轉載請自行聯系原作者