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

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

lvs+keepalived:

在这里插入图片描述
Lvs咱们就不作过多的介绍了,它是由我国的章文嵩博士提出的,是为了实现负载均衡的。
Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案。
VRRP(虚拟路由冗余协议)能够避免路由单点故障。web

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架构就很好的解决了这个问题。shell

lvs+ospf:

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