写点什么

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:472441

评论

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

第二周作业

孙强

【第二周】命题作业——软件设计原则

三尾鱼

面向对象 极客大学架构师训练营

第二课学习总结

lwyanhao

设计模式与设计原则(第二周总结)

麻辣

Wireshark的使用与数据分析(三)--显示过滤器

姬翔

Wireshark

架构师训练营-第二周-总结

狂奔嘀兔纸

极客大学架构师训练营

架构师训练营丨第二周丨学习总结

Frode

极客大学架构师训练营

第二课作业

lwyanhao

第2周 学习总结

sunpengjian

week2-依赖倒置原则&接口隔离原则

暖丶冬

第2周 架构师实现自己架构目标的主要手段

陆不得

第二周作业

Geek_2b3614

极客时间第 0 期架构师训练营第二周作业

2流程序员

架构师训练营第二周作业

15359861984

第二周作业

nihuihua

架构师训练营第二周总结

草原上的奔跑

第三课 容我三思

Geek_bobo

Week02总结

leis

Homework-依赖倒置原则的理解

River Tree

Homework 依赖倒置原则

架构师训练营-Week 02 命题作业

华乐彬

极客大学架构师训练营 设计原则

架构师训练营总结 -2

River Tree

架构 总结 软件设计原则

架构师课程第二周总结

dongge

极客大学第二周作业

方堃

极客大学

架构师训练营第二周总结

好名字

极客大学架构师训练营 作业

第二周总结

孙强

架构师训练营第 02周—— 练习

李伟

极客大学架构师训练营

解决 Jenkins 中使用代理来执行 npm install 的问题

jerry.mei

Docker DevOps 运维 jenkins

架构师训练营 No.2 周总结

连增申

第二周作业 - 命题作业

molly

极客大学架构师训练营

架构师训练营week2 命题作业

Geek_z9dmvw

第二周学习笔记

方堃

学习

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