QQ截图20180904065528.png

负载均衡集群经典开源软件

Lvs
Nginx
haproxy
lighttpd


高可用性集群经典常用开源软件

keepalived
heartbeat


关键术语

VIP----虚拟IP地址,向客户端提供服务的IP地址
RIP----真实IP地址,集群几点上使用的IP地址,物理IP地址
DIP----Director用于连接内外网络的IP地址,物理网卡上的IP地址,是负载均衡器和人IP
CIP---客户端用户请求集群服务器的IP地址,改地址作发送给集群的请求源IP地址。

ARP广播而进行新的地址解析。具体命令:

/sbin/arping -I eth0 -c 3 -s 10.0.0.162 10.0.0.253 
/sbin/arping -U 一I eth0 10.0.0.162



LVS 工作模式DR,直接路由模式

    

1、通过在调度器LB上修改数据包的目的MAC地址实现转发。注意,源IP地址仍然是 CIP,目的IP地址仍然是VIP

2、请求的报文经过调度器,而RS响应处理后的报文无需经过调度器LB,因此,并发访 问量大时使用效率很高(和NAT模式比)

3、因DR模式是通过MAC地址的改写机制实现的转发,因此,所有RS节点和调度器LB 只能在一个局域网LAN中(小缺点)

4、需要注意RS节点的VIP的绑定(lo:vip,lo1:vip)和ARP抑制问题

5、强调下:RS节点的默认网关不需要是调度器LB的DIP,而直接是IDC机房分配的上级路由器的IP (这是RS带有外网IP地址的情况),理论讲:只要RS可以出网即可,不 是必须要配置外网IP

6、由于DR模式的调度器仅进行了目的MAC地址的改写,因此,调度器LB无法改变请求的报文的目的端口(和NAT要区别)

7、当前,调度器LB支持几乎所有的UNIX,LINUX系统,但目前不支持WINDOWS系统。真实服务器RS节可以是WINDOWN系统

8、总的来说DR模式效率很高,但是配置也较麻烦,因此,访问量不是特别大@ 用haproxy/nginx取代之。这符合运维的原则:简单、易用、高效。日2000W PV或并发 请求1万以下都可以考虑用haproxy/nginx (LVS NAT模式)

9、直接对外的访问业务,例如:web服务做RS节点,RS最好用公网IP地址。如果不直 接对外的业务,例如:MySQL,存储系统RS节点,最好只用内部IP地址

缺点:


1.要求较高,LVS服务器必须和后端真实服务器处于同一vlan中;

2.后端真实服务器直接响应客户端,对于后端真实服务器来说,并不安全。

LVS 工作模式NAT

1111111.png

1、NAT技术将请求的报文(DNAT)和响应的报文(SNAT),通过调度器地址重写然后-在转发发给内部的服务器,报文返回时在改写成原来的用户请求的地址。

2、只需要在调度器LB上配置WAN公网IP即可,调度器也要有私有LAN IP和内部RS节点通信

3、每台内部RS节点的网关地址,必须要配成调度器LB的私有LAN内物理网卡地址(LDIP),这样才能确保数据报文返回时仍然经过调度器LB

4、由于请求与响应的数据报文都经过调度器LB,因此,网站访问量大时调度器LB有较大 瓶颈,一般要求最多10-20台节点。

5、NAT模式支持对IP及端口的转换,即用户请求10. 0. 0. 1:80,可以通过调度器转换到 RS节点的10. 0.0. 2:8080 (DR和TUN模式不具备的)

6、所有NAT内部RS节点只需配置私有LAN IP即可。

7、由于数据包来回都需要经过调度器,因此,要开启内核转发net.ipv4.ip_forward=1, 当然也包括iptables防火墙的forward功能(DR和TUN模式不需要)


缺点:


因为在 VS/NAT 中请求和响应报文都需要通过负载调度器,伸缩能力有限, 当服务器结点数目升到 20 时,调度器本身

有可能成为系统的新瓶颈。


LVS 工作模式TUNNEL

1.客户端将访问vip报文发送给LVS服务器;

2.LVS服务器将请求报文重新封装,发送给后端真实服务器;

3.后端真实服务器将请求报文解封,在确认自身有vip之后进行请求处理;

4.后端真实服务器在处理完数据请求后,直接响应客户端。


要求:


1.lvs和后端真实服务器上都要有vip。

2.不会成为瓶颈。

3.请求的报文不能太大。


优点:


1.快速

2.不安全,不能抵抗DOS攻击


调度算法

rr:轮循调度(Round-Robin),它将请求依次分配不同的RS节点,也就是在RS节点中 均摊请求。这种算法简单,但是只适合于RS节点处理性能相差不大的情况。

wrr:加权轮循调度(Weighted Round-Robin),它将依据不同RS节点的权值分配任务。权 值较高的RS将优先获得任务,并且分配到的连接数将比权值较低的RS节点更多。 相同权值的RS得到相同数目的连接数。

dh:目的地址哈希调度(Destination Hashing)以目的地址为关键字查找一个静态hash表 来获得需要的RS。

sh:源地址哈希调度(Source Hashing)以源地址为关键字查找一个静态hash表来获得需 要的RS 

wlc:加权最小连接数调度(Weighted Least-Connection)

lc:最小连接调度(Least-Connection),IPVS表存储