码迷,mamicode.com
首页 > 其他好文 > 详细

lvs

时间:2017-10-13 22:29:27      阅读:270      评论:0      收藏:0      [点我收藏+]

标签:linux

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


lvs

标签:linux

原文地址:http://perper.blog.51cto.com/6284626/1972109

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!