2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

LVS 在大规模网络环境中的应用

  • 2014-10-13
  • 本文字数:1406 字

    阅读完需:约 5 分钟

LVS 是 Linux Virtual Server 的简称,也就是 Linux 虚拟服务器。目前 LVS 已经是 Linux 内核标准的一部分。阿里云技术团队近日分享了题为《 LVS 在大规模网络环境中的应用》的演讲,InfoQ 对演讲内容进行了整理。

为什么引入 LVS?

举个例子,一个用户访问淘宝网站,淘宝网前端共有 5 台 Apache 服务器,如何决定访问哪一台 Apache?常用的方式是用 DNS 做负载均衡,将 5 台 Apache 服务器的 ip 地址添加到域名 www.taobao.com 中。
但 DNS 有一些缺点,第一个缺点:例如第二台 Apache 宕了,运维赶紧把 DNS 中该 Apache 的 ip 地址删除掉,但很多地方的 Local DNS 不一定遵守 TTL 协议,这样删除操作什么时候生效,你根本不可控的;尤其移动网络中,这个问题更突出,我记得 10 年时移动网络部分地区 Local DNS 一天才更新。
第二个缺点:服务调度算法只支持 WRR。如果你用户范围很有限,就会有负载不均衡的问题。第三个缺点:攻击防御能力很弱,每次有攻击靠一台机器抗。
针对 DNS 的不足,引入了 Virtual Server 的概念,即最前端有一个入口设备把流量均衡到后端的 Apache 上去;无论是 LVS 软负载还是 F5 硬负载均衡也都是这种概念。

LVS 是什么?

LVS 是 Linux Virtual Server 的简称,也就是 Linux 虚拟服务器。LVS 工作在网络 4 层之上仅作分发之用,所以抗负载能力比较强。LVS 有完整的双机热备方案,几乎支持对所有应用做负载均衡。LVS 在互联网应用中的位置是在 Nginx 之上,具体如下:

LVS 如何应用?

LVS 本身只是一个叫 IP_VS 的内核模块,这个模块可以做负载均衡,但是只用这个模块来做工程应用是远远不够的,比如 LVS 本身宕机后如何处理?实际生产环境中,一般配合 Keepalived 来使用 LVS,keepalived 支持 VRRP 心跳协议,可以实现 LVS 主备冗余,以解决 LVS 本身单点故障。另外,Keepalived 支持健康检测,4 层和 7 层健康检测,防止服务器宕机。对于 LVS 的服务监控问题,可以使用开源软件 SNMP Patch 解决。

LVS 问题以及解决方案

  1. LVS 的 3 种转发模式,部署成本比较高
    使用新转发模式 FULLNAT,FULLNAT 实现了 LVS-RealServer 间跨 vlan 通讯,并且 in/out 流都经过 LVS。FULLNAT 转发数据包是类似 NAT 模式,IN 和 OUT 数据包都是经过 LVS,唯一的区别后端 RealServer 或者交换机 不需要做任何配置。FULLNAT 的主要原理是引入 local address(内网 ip 地址),cip-vip 转换为 lip->rip,而 lip 和 rip 均为 IDC 内网 IP,可以跨 vlan 通讯;
  2. 和商用的负载均衡比,LVS 没有 DDOS 防御攻击功能;
    使用 SYNPROXY(synflood 攻击防御模块),Synproxy 实现的主要原理是参照 Linux TCP 协议栈中 syncookies 的思想,LVS 构造特殊 seq 的 synack 包,验证 ack 包中 ack_seq 是否合法实现了 TCP 三次握手代理。
  3. 主备部署模式,性能无法扩展;
    Cluster 部署模式。基于 FullNAT 模式做横向扩展。

LVS 的性能优化

  1. 多队列网卡,即一个队列绑定到一个 CPU 核上,让多核同时处理网络数据包。如果网卡不支持多队列,可以用 Google 提供的软多队列 -RPS,Linux 内核默认已经集成;
  2. 对 Keepalived 进行了优化,主要将网络模式从 select 改为了 epool。
  3. 建议把网卡 LRO、GRO 功能关掉,尤其是 broadcom 的网卡。

LVS 的创始人和主要开发者章文嵩博士目前就职于阿里云,任职阿里云副总裁。在 10 月 16 日举行的阿里云开发者大会上,他所带领的阿里云团队将会在现场进行互动问答,与用户共同探讨云时代的产品、运维、服务等相关问题,欢迎关注。

2014-10-13 21:265067
用户头像

发布了 219 篇内容, 共 150.8 次阅读, 收获喜欢 195 次。

关注

评论

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

揭秘京东商品详情一键获取的API之旅

代码忍者

pinduoduo API API 性能测试

OCR+PDF解析配套前端工具开源详解!

合合技术团队

#开源 #前端 ODR

橱窗LED透明屏:展示和广告的新宠

Dylan

广告 制造 LED display LED显示屏 市场

大数据存储计算平台EasyMR:多集群统一管理助力企业高效运维

袋鼠云数栈

Kafka集群升级项目实施方案,打造高效数据处理平台

敏捷调度TASKCTL

kafka hadoop cloudera 集群 大数据运维

用豆包MarsCode 和CozeAPI接口全自动做一个文生图组件

TRAE.ai

人工智能 大数据 AI Chat

世界第一!华为云图引擎服务GES大幅刷新世界纪录

华为云开发者联盟

华为云 图数据库

25个Linux系统性能调优技巧

威哥爱编程

Linux 系统调优

国际开发者成为 Apache IoTDB Committer,新视角谈开源经验!

Apache IoTDB

数据库 开源 时序数据库 IoTDB Apache IoTDB

检索增强生成(RAG)技术在知识图谱中的应用:Neo4j的探索

测吧(北京)科技有限公司

测试

智能合约与大语言模型的结合:未来的应用场景探索

测吧(北京)科技有限公司

测试

部署 LLMs 前如何计算与优化 GPU 内存需求?

Baihai IDP

程序员 AI gpu LLMs

测试流程必须严格执行吗?

老张

软件测试 验收测试 质量保障 流程规范

国内外大模型应用的现状与未来:以ChatGPT、Mixtral和Llama为例

测吧(北京)科技有限公司

测试

同风起,耀星河!华为携手伙伴一起创造无限可能

HarmonyOS开发者

HarmonyOS

智算基石全栈加速,百度百舸 4.0 的技术探索和创新

百度Geek说

百度 大模型 技术 优化体系

1688电商生态新引擎:商品详情API引领行业发展新篇章

代码忍者

pinduoduo API API 性能测试

堡垒机价格贵吗?一定要买堡垒机吗?

行云管家

网络安全 堡垒机 数据泄露

零信任身份安全的基本原则

芯盾时代

身份安全 零信任模型

MQTT vs HTTP:谁更适合物联网?

EMQ映云科技

物联网 HTTP mqtt emqx

AIGC技术的变革:语音识别与视觉识别的深度融合

测吧(北京)科技有限公司

测试

开源大模型的私有部署:Llama与千问的比较研究

测吧(北京)科技有限公司

测试

社交软件红包技术解密(二):解密微信摇一摇红包从0到1的技术演进

JackJiang

即时通讯;IM;网络编程

解锁极致性能:Arm Cortex-X925 IPC 提升15%,终端用户体验感再突破

新消费日报

文生图与文生视频:从文本到视觉的创作革命

测吧(北京)科技有限公司

测试

智能体Agent应用的前沿:图文、短视频与流程图的生成技术

测吧(北京)科技有限公司

测试

大模型在商业领域的应用:如何提升决策效率与用户体验

测吧(北京)科技有限公司

测试

火山引擎边缘智能×扣子,拓展AI Agent物理边界

火山引擎边缘云

社区周刊·Vol.182

华为云开发者联盟

开发者 华为云

得物一面,都是非常经典的问题

王中阳Go

Go 面试 后端

LVS在大规模网络环境中的应用_DevOps & 平台工程_小盖_InfoQ精选文章