10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

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

评论

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

西双版纳有等保测评机构吗?在哪里?

行云管家

等保 等保测评

mac免费的投屏软件duet,帮助用户把mac的屏幕分享到移动设备的应用

Rose

好用的交互式动画界面设计神器 Principle for Mac汉化版

Rose

揭秘可观测利器:腾讯云 APM 深度融合 OpenTelemetry 和 Prometheus,助力高效指标采集与处理

腾讯云可观测平台

AIGC系统中多个模型的切换调用方案探索

京东科技开发者

axure rp8中文安装包 附axure rp永久密钥

Rose

harmony_flutter 自定义toast

flfljh

HarmonyOS harmony

基于Sermant实现xDS服务网格,获取15+倍更高性能和更低成本

华为云开源

开源 微服务治理

鸿蒙Flutter 常见问题总结

flfljh

TiKV Raft Store 内存管理的原理与实现丨TiKV 源码解读(二十三)

PingCAP

数据库 分布式 TiDB

如何使用PHP开发一个购物网站?

科普小能手

php 电商 系统开发 购物 PHP开发

探索淘宝天猫API:解锁商品详情与关键词搜索的高效之道

代码忍者

API 接口 pinduoduo API

需求管理的主要内容包括哪些

易成研发中心

需求管理 需求管理工具

One Switch for Mac(菜单栏一键开关控制神器)v1.33.1中文版

Rose

TiDB 助力北京电信夯实电信账务系统的数据底座

PingCAP

数据库 TiDB

支付 APP 的测试管理实践与思考

优测云服务平台

持续测试 测试管理工具 测试用例管理平台 质量门禁

3D渲染和动画制作软件 KeyShot破解版 附永久许可证及安装教程

Rose

即时通讯技术文集(第44期):微信、QQ技术精华合集(Part1) [共14篇]

JackJiang

即时通讯;IM;网络编程

苹果mac流行的API开发工具:Postman

Rose

TinyEngine低代码引擎2.0新特性介绍

OpenTiny社区

低代码 OpenTiny TinyEngine 前端开源

GreatSQL 自动开启复制导致同步报错

GreatSQL

简单聊聊过等保的五大益处

行云管家

等保 等保测评 过等保

Taro 鸿蒙技术内幕系列(三) - 多语言场景下的通用事件系统设计

京东科技开发者

disk drill mac 破解版 附disk drill 激活码 好用的苹果数据恢复软件

Rose

Pixelmator Pro for Mac 非常强大、美观且易于使用的图像编辑器

Rose

新产品研发管理的需求来自哪些维度

易成研发中心

需求管理

GoodNotes 5 - 笔记、绘图、文档管理一站式搞定

Rose

Eudic 欧路词典:多语种翻译神器,精准释义与例句一应俱全

Rose

轻松搞定平稳运行,数据库平台 DBStack 帮助 DBA 运维不同基础设施上的各类数据库

Baidu AICLOUD

数据库

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