开发者学堂课程【企业集群平台架构设计与实现:lvs/haproxy/keepalived :企业集群平台架构设计与实现 1vs 篇1】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/391/detail/5009
企业集群平台架构设计与实现1vs篇1
目录:
一、DR 模式
二、DR 模式小结:
一、DR 模式
下面是 DR 模式数据传输图
基于 DR 模式的 LVS 数据流线图,用户通过互联网请求发送到服务器当中,服务器叫 LinuxDirector 这样一个主机上,是 LVS 的一个服务器,当请求到达服务器之后,经过内部网络,把请求根据自身的负载算法,把请求交到后端节点处理,处理完成之后并没有返回,而是直接通过 RealServer 直接返回给用户,这就是 DR 的实现机制,需要注意的是内部网络必须是同一个网段的,
DR 模式:即 Virtual Server via Direct Routing ,也就是用直接路由技术实现虚拟服务器。这种方式的连接调度和管理与前两种一样,但它的报文转发方法又有所不同,VS/DR 通过改写请求报文的 MAC 地址,将请求发送到 Real Server ,而 Real Server 将响应直接返回给客户,免去了 VS/TUN 中的 IP 隧道开销。这种方式是三种负载调度方式中性能最好的。
下面是 DR 模式 IP 包调度过程图:
首先有一个 Client 客户端,发送一个用户请求,对应包的结果肯定是有原 IP 、对应的目的 IP 、端口,当传输数据的时候,数据包变成 2 ,比之前增加了一个目标 MAC 地址,第二个包通过互联网到达 LB 负载均衡器,第三部之后原IP,目标 IP 、端口没有发生变化,目标 MAC 变为了 RS-MAC ,RS 就是后端 Realserver 的 ip 地址,当请求过来之后,在 DR 模式下 LB 负载均衡器修改的是目标 MAC 的 IP 地址,LB 负载均衡器根据自身的调度算法,把调度请求,调到 ReaalServer2 上,更改了 ReaalServer2 的 MAC 地址,MAC 就是工作的数据链路层,是不会跨同一网段的,ReaalServer2 对这个数据包进行回应,回应之前把 MAC 地址丢弃掉,然后做相应的处理操作,可以看到数据包里有原 IP 还有 VIP ,需要绑定一个回环地址,把这个 VIP 地址做一个广播形式的绑定,绑定了之后发现目标 IP 是 VIP 进行处理操作不用返回,第五步,把数据返回给客户端,每个 Realserver 都绑定一个回环地址,
绑定的地址是广播地址,所以不会出现 IP 冲突的现象,跟数据链样层相关联的 MAC 层,有一个关于 ARP 请求,任何访问都会发送一个 ARP 请求, ARP 会在网络中找对应的 MAC 地址,每一个 Realserver 后端都绑定一个 vip 地址,就会产生冲突,需要执行一个脚本来解决这个问题。不能实现端口的转换。
原理图简述:
DR 模式将报文直接路由给目标真实服务器。在 DR 模式中,调度器根据各个真实服务器的负载情况,连接数多少等,动态地选择一台服务器,不修改目标 IP 地址和目标端口,也不封装 lP 报文,而是将请求报文的数据帧的目标 MAC 地址改为真实服务器的 MAC 地址。然后再将修改的数据帧在服务器组的局域网上发送。因为数据帧的 MAC 地址是真实服务器的 MAC 地址,并且又在同一个局域网。那么根据局域网的通讯原理,真实复位是一定能够收到由 LB 发出的数据包。真实服务器接收到请求数据包的时候,解开 IP 包头查看到的目标 IP 是 VIP 。
此时只有本地的 IP 符合目标 IP 才会接收进来,所以需要在本地的回环借口上面配置 VIP 。另外:由于网络接口都会进行 ARP 广播响应,但集群的其他机器都有这个 VIP 的 lo 接口,都响应就会冲突。所以就需要把真实服务器的 lo 接口的 ARP 响应关闭掉。
然后真实服务器做成请求响应,之后根据路由信息将这个响应数据包发送回给客户,并且源 IP 地址还是 VIP 。
二、DR 模式小结:
1、通过在调度器 LB 上修改数据包的目的 MAC 地址实现转发。注意源地址仍然是 CIP ,目的地址仍然是 VIP 地址。
2、请求的报文经过调度器,而 RS 响应处理后的报文无需经过调度器 LB ,因此并发访问量大时使用效率很高(和 NAT 模式比)。
3、因为 DR 模式是通过 MAC 地址改写机制实现转发,因此所有 RS 节点和调度器 LB 只能在一个局域网里面。
4、RS 主机需要绑定 VIP 地址在 lo 接口上,并且需要配置 ARP 抑制。
5、RS 节点的默认网关不需要配置成 LB ,而是直接配置为上级路由的网关,能让 RS 直按出网就可以。
6、由于 DR 模式的调度器仅做 MAC 地址的改写,所以调度器 LB 就不能改写目标端口,那么 RS 服务器就得使用和 VIP 相同的端口提供服务。