企业部分----lvs+opsf架构

文章目录

    • lvs+keepalived:
    • lvs+ospf:
    • ECMP(等价多路径)

之前学习lvs接触到的是lvs+keepalived结构,实现SLB负载均衡和高可用,但是没有想到还有一种lvs+ospf架构,有时候也可能会是lvs+ospf+quagga+keepalived(这里的keepalived主要是提供配置文件)架构,那它们之间的区别是什么呢?

lvs+keepalived:

企业部分----lvs+opsf架构_第1张图片
Lvs我们就不做过多的介绍了,它是由我国的章文嵩博士提出的,是为了实现负载均衡的。
Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案。
VRRP(虚拟路由冗余协议)可以避免路由单点故障。

VRRP 将局域网的一组路由器组织成一个虚拟路由器。这个虚拟路由器通过虚拟IP对外提供服务,而在虚拟路由器内部是多个物理路由器协同工作,同一时间内只有一台物理路由器占有这个虚拟IP,作为master实际负责ARP响应和数据包转发等工作;其它物理路由器作为backup,不提供对外服务,仅接收master的vrrp状态通告信息。 master由优先级选举产生,每个物理路由器都有一个 1-255 之间的优先级,级别最高(highest priority)将成为master,若优先级相同,则IP地址较大者胜出。 在vrrp协议中,所有的报文都是通过IP多播形式发送的,而在一个虚拟路由器中,只有处于master角色的路由器会一直发送VRRP数据包,处于backup角色的路由器只接收master发过来的报文信息,用来监控master的运行状态,因此不会发生backup抢占的现象,除非它的优先级更高。当master不可用时,backup也就无法收到master发过来的报文信息,于是就认定master出现故障,接着多台backup就会进行优先级最高的backup就将成为新的master,这样就保证了服务的持续可用性。
在一个虚拟路由器中,不管谁是MASTER,对外都是相同的MAC和IP(称之为VIP)。客户端主机并不需要因为MASTER的改变而修改自己的路由配置,对客户端来说,这种主从的切换是透明的。
在一个虚拟路由器中,只有作为MASTER的VRRP路由器会一直发送VRRP通告信息(VRRPAdvertisement message),BACKUP不会抢占MASTER,除非它的优先级(priority)更高。当MASTER不可用时(BACKUP收不到通告信息), 多台BACKUP中优先级最高的这台会被抢占为MASTER。这种抢占是非常快速的(<1s),以保证服务的连续性。
出于安全性考虑,VRRP包使用了加密协议进行加密.

但是我们会发现用户访问同一个VIP,两台调度器之间始终只有一台(master)是处于工作状态,而另一台(backup)只是用来备份,当mater出现问题的时候才用到它,这样就很浪费资源,特别是当有大量请求访问的时候,还是只能有一台调度器进行工作 ,效率不是很高,所以我们可不可以线性横向扩展让两台Director都处于工作的状态呢?lvs+ospf架构就很好的解决了这个问题。

lvs+ospf:

企业部分----lvs+opsf架构_第2张图片
这里的路由器也可以换成交换机,当然也可以用qugga代替
Quagga是一个开源软件,用于在linux上模拟路由器的配置,将一台普通的linux服务器实现一台简单的路由器/交换机的功能。它的操作命令保持和思科网络设备一致,和常用的shell命令有较大区别。
交换机可以参考小米:http://noops.me/?p=974
quagga可以参考:https://blog.gnuers.org/?p=713
我们先看了解一下ospf:
OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。
OSPF可以实现类似负载均衡的水平扩展,实现的核心是什么?

ECMP(等价多路径)

ECMP(Equal-CostMultipathRouting)等价多路径,存在多条不同链路到达同一目的地址的网络环境中,如果使用传统的路由技术,发往该目的地址的数据包只能利用其中的一条链路,其它链路处于备份状态或无效状态,并且在动态路由环境下相互的切换需要一定时间,而等值多路径路由协议可以在该网络环境下同时使用多条链路,不仅增加了传输带宽,并且可以无时延无丢包地备份失效链路的数据传输。
ECMP最大的特点是实现了等值情况下,多路径负载均衡和链路备份的目的,在静态路由和OSPF中基本上都支持ECMP功能。

例如下图中的路径A、路径B、路径C 3条路径的COST值相同,既是等价路径。在路由器选路的时候,便可以同时使用这3条路径,从而实现负载均衡。
企业部分----lvs+opsf架构_第3张图片
注:虽然链路COST值相同,但是实际情况是,各路径的带宽、时延和可靠性等不一样,把Cost认可成一样,不能很好地利用带宽,尤其在路径间差异大时,效果会非常不理想。这时可以使用
WCMP(Weight-CostMultipathRouting)加权多路径,能够非常灵活地按照比例在链路上传递流量。
ECMP是一个逐跳的基于流的负载均衡策略,当路由器发现同一目的地址出现多个最优路径时,会更新路由表,为此目的地址添加多条规则,对应于多个下一跳。可同时利用这些路径转发数据,增加带宽。ECMP算法被多种路由协议支持,例如:OSPF、ISIS、EIGRP、BGP等。在数据中心架构VL2中也提到使用ECMP作为负载均衡算法。
对于未开启ECMP的网络来说,无法充分利用路径资源。如图1所示,假设从S0到Server的为S0-S1-S2-S4即图中橘色路径,那么即便存在另一条等价路径,蓝色路径,路由器仍然会每次选择第一条橘色路径转发数据。除非此条路径发生拥塞,才会重新选择路径。
企业部分----lvs+opsf架构_第4张图片
当开启ECMP功能时,便可同时利用两条路径,进行基于流的负载均衡,例如主机A到Server的数据流选择橘色路径,主机B到Server的数据流选择蓝色路径。
ECMP的路径选择策略有多种方法:
哈希,例如根据源IP地址的哈希为流选择路径。
轮询,各个流在多条路径之间轮询传输。
基于路径权重,根据路径的权重分配流,权重大的路径分配的流数量更多。

你可能感兴趣的:(企业部分----lvs+opsf架构)