写点什么

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

评论

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

架构师训练营第7周

大丁💸💵💴💶🚀🐟

架构师训练营第7周

大丁💸💵💴💶🚀🐟

话说性能那些事

朱月俊

总结

chenzt

架构师0期07周作业

我在终点等你

八个排序的原理、Java 实现以及算法分析

多选参数

数据结构 算法 排序 排序算法 数据结构与算法

米酒米酒黼子酒

zhoo299

美食

第 7 周 - 作业 2

seng man

Scrapy爬虫入门

烫烫烫个喵啊

python 爬虫

随着并发的增加,响应时间和吞吐的变化

朱月俊

问题驱动

学习 问题驱动

架构师训练营Week7学习总结

Frank Zeng

性能优化(一)

olderwei

antd vue upload组件使用customRequest上传文件显示文件上传进度

Seven_xw1213

大前端 antd vue upload customRequest 进度条

neo4j load csv 使用

wkq2786130

Github 创建发行版本

耳东@Erdong

GitHub github release

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

fenix

极客大学架构师训练营

elasticsearch 游标 使用

wkq2786130

elasticsearch

LeetCode题解:283. 移动零,JavaScript,一次遍历,详细注释

Lee Chen

大前端 LeetCode

第七周总结

天之彼方

第七周命题作业

天之彼方

如何找一碗正宗的热干面

zhoo299

美食

MySQL 锁表后快速解决方法 及 锁表原因

wkq2786130

MySQL

antd vue 使用upload组件action上传文件

Seven_xw1213

大前端 antd vue upload

第7周总结+作业

林毋梦

重置 Grafana admin 密码

耳东@Erdong

Grafana Grafana password

K8S 中的 Grafana 数据持久化

耳东@Erdong

Kubernetes k8s Grafana 配置文件持久化

解决 EXT4 使用无法挂载

耳东@Erdong

ext4 journal

优秀的求职者,是如何巧妙应对面试提问呢?

xcbeyond

面试 加班 职业规划 薪资 自我介绍

性能压测的时候,随着并发压力的增加,系统响应时间和吞吐量如何变化,为什么?

一叶知秋

过早三件套之面窝

zhoo299

美食

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