硬核干货——《中小企业 AI 实战指南》免费下载! 了解详情
写点什么

LVS 简介

  • 2019-11-14
  • 本文字数:992 字

    阅读完需:约 3 分钟

LVS简介

lvs 负载均衡在高并发的 web 开发中得到了广泛的应用,相信各位同事也或多或少的接触过。但是大家对 lvs 的工作原理了解多少呢?本文作者经过对 lvs 在 hulk 云平台上的应用探索,对 lvs 架构进行了初步的介绍,对用户的请求是如何散列到 lvs 服务器上的问题做了详解。下来就跟随作者一起认识下 lvs 负载均衡吧。

1 什么是负载均衡

LVS 负载均衡是将用户访问请求根据一定的转发策略分发到后端多台服务器(支持物理机/虚机/容器等)的流量分发控制服务。它采用 LVS(Linux Virtual Server) + keepalived 的方式实现,设置虚拟服务地址(VIP),通过健康检查自动摘除不可用的服务器,从而提升应用的整体服务能力,增强应用的可用性。

2 负载均衡带来了什么好处

1.保护后端 RS,不直接暴露给用户。


2.对后端 RS 进行健康检查。


3.按策略分发流量至后端 RS。

3 Hulk LVS 集群架构详解

使用 BGP+ECMP 的模式构建集群,用 ECMP 将数据包散列到集群中各个节点上,通过 BGP 协议保证单台机器故障后将这台机器的路由动态的剔除出去,由此做到了动态 failover。

用户请求是如何散列到 LVS 服务器上


LVS 服务器通过 BGP 将 VIP 发布到网络中,LVS 专用交换机学习到 VIP,形成 BGP 多路等价路由(ecmp),根据哈希因子计算得到 hash lb key,进行 ECMP 下一跳链路数(Member-count)求余计算,再与 ECMP 基值进行加法运算得出转发下一跳 index,即确定了下一跳转发路由到达 LVS 服务器。

4 系统层面的高可用

LVS 服务器采用双万兆网卡,图中 ETH1、ETH3 为万兆外网口上联 TOR 交换,所以当上联 TOR 交换机故障后流量可动态切到 ETH3 网卡,来保障业务的高可用。


5 HULK LVS 转发面板介绍

1.用户通过(CIP+CPORT)访问(VIP+VPORT)请求到达 LVS 服务器。


2.LVS 服务器维护一张 session 表,将(CIP+CPORT 转换为 BIP+BPORT)(VIP+VPORT 转换为 RIP+RPORT)转发至后端 RS。


3.后端 RS 收到请求包后发现 RIP,PORT 目标为本机,则构建响应报文,转发给 BIP+BPORT。


4.LVS 服务器收到 RS 回包后,通过之前维护的 SESSION 表将(RIP+RPORT 转换为 VIP+VPORT)(BIP+BPORT 转为为 CIP+CPORT)返回给用户。



注:通过 BIP 替换转发的方式获取不到客户端真实 IP 地址,因此需要给内核打 TOA 及 TTM 模块将真实 IP 从 TCP option 中取出放到内核 sock 中。


本文转载自公众号 360 云计算(ID:hulktalk)。


原文链接:


https://mp.weixin.qq.com/s/K7g5qVBr7FghbzVwFA2NUg


2019-11-14 16:472644

评论

发布
暂无评论
发现更多内容

架构师训练营第一期第十三周作业

Leo乐

极客大学架构师训练营

AWS 发布 180 项新服务与功能

亚马逊云科技 (Amazon Web Services)

云计算 AWS

《Python中的竞争性编程:128种提高编码技能的算法》PDF

计算机与AI

Python 算法

第十三周作业 (作业一)

Geek_83908e

架构师一期

架构师训练营 1 期第 13 周:数据应用(二)- 作业

piercebn

极客大学架构师训练营

架构师训练营 1 期第 13 周:数据应用(二)- 总结

piercebn

极客大学架构师训练营

生产环境全链路压测建设历程14:核心链路的改造

数列科技杨德华

全链路压测 七日更

极客时间架构师训练营 1 期 - 第 13 周总结

Kaven

第十三周 数据应用 (二)

9527

极客时间架构师培训 1 期 - 第 13 周作业

Kaven

架构师训练营第四周”系统架构“作业

随秋

极客大学架构师训练营

Week9总结

lggl

作业

架构师第十三周总结

_

总结 架构师第十三周

使用 Docker 部署 canal,并将消息推送到 RabbitMQ

AlwaysBeta

MySQL Docker RabbitMQ canal

架构师训练营 第九周课程

文江

Week9作业

lggl

架构师第十三周作业

_

极客大学架构师训练营 第十三周

架构师训练营 - 第十三周作业

一个节点

极客大学架构师训练营

架构师训练营第九周作业1

韩儿

架构师训练营第九周作业2

韩儿

盘点2020 | 带领团队学习成长,干货总结

架构精进之路

学习 盘点2020

第十三周作业 (作业二)

Geek_83908e

架构师一期

NO.001-简说Java并发编程史

葛一凡

架构师训练营第四周”系统架构“总结

随秋

极客大学架构师训练营

极客大学 - 架构师训练营 第十三周作业

9527

架构师训练营第 1 期 - 第 13 周课后练习

Anyou Liu

极客大学架构师训练营

秒杀活动要点分析

落朽

架构师训练营第一期第十三周总结

Leo乐

极客大学架构师训练营

世界之书:《大国政治的悲剧》与美国独行

lidaobing

大国政治的悲剧 28天写作

架构师训练营 - 第十三周总结

一个节点

极客大学架构师训练营

LeetCode题解:18. 四数之和,双指针,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

LVS简介_文化 & 方法_杨旭_InfoQ精选文章