当前位置: 首页 > news >正文

DPVS-6:软件框架简介

DPVS是什么

DPVS是基于DPDK实现的 四层负载均衡器,它是由DPDK + LVS(alibaba/LVS)

简单理解DPDK + LVS = DPVS

它为什么能达到高性能 ?

  1. Kernel by-pass (用户态实现) , 源自于DPDK的用户态数据包处理,绕过了内核。
  2. CPU不共享关键数据(无锁), 源自于DPDK的无锁模式,线程间无锁通信和同步。
  3. RX流固定到某一个核心,CPU亲和性, 源自于DPDK 的 RSS, Flow Director,让同一条流始终落在一个worker上即一个核心上, 从而避免多核竞争。
  4. 批量发送/接收, 源自于DPDK rx_burst / tx_burst 的多个数据包的收发API
  5. 零拷贝, DPDK rx时,网卡DMA数据到用户内存空间,发送时同理 网卡DMA读取用户空间内的数据包发送。 用户空间使用的大页共享内存
  6. 轮询代替中断, 传统中断收发包会造成CPU时间浪费,DPDK的 poll mode 模式最大程序利用CPU
  7. 无锁消息传递, 利用DPDK无锁队列rte_ring_queue实现的 线程间的消息传递。

这7个技术方面,全部是由DPDK带来的。也就是说高性能全部由DPDK带来的。

它的组成

在这里插入图片描述

DPVS架构可以分为4个部分: 网络设备管理, 轻协议栈, 负载均衡核心,控制面工具。

网络设备层

设置物理网卡参数地址、设置flow 、 设置隧道、设置vlan、设置kni接口等等

在一些场景下,需要将数据包交给内核处理时,就用到kni接口,数据包交给内核协议栈,这样可以使用一些成熟的网络软件,比如ospf。

轻协议栈

DPDK本身是没有协议栈的,只是收发二层数据包。而传统的LVS在内核中是在netfilter INPUT之后的,也不包含任何协议处理的内容。 所以,这里需要一个轻协议栈。 用来完成基本的协议处理。

主要包括 邻居发现、ICMP、路由协议, LLDP, IP集合管理等。 在负载均衡转发时,最终会落在这个轻协议栈上进行选路,和MAC地址的填充。 而SNAT/DNAT种的IP port的转换工作还是在负载均衡核心层完成。

负载均衡器核心

这里主要是LVS的功能,实现了一系列的负载均衡逻辑,FNAT, DNAT, DR, TUN四种负载均衡模式,同时支持多种负载均衡调度算法,轮询, 加权轮询, 最少连接,一致性哈希等。

在安全上,它提供了TCP SYN-Proxy, 可防止SYN FLood攻击

在可靠性上,它提供了被动后端监测,过滤不可用的服务器

在服务质量上,提供了流量控制功能。

控制面工具

dpip 接口配置工具, ipvsadm 负载均衡服务配置工具 ,它们通过unix socket与DPVS进程通信,下发配置指令。 相应的配置指令到达master worker, master处理完后,通过lcore msg多播给slave workers.

dpvs-agent, 一端用过unix socket与DPVS进程通信,另一端提供Restful API , 方便外部控制器对DPVS进行统一管理配置。 尤其是在云场景下的负载均衡集群时,统一管理变得十分重要。

keepalived, 可以通过共享内存或unix socket控制管理DPVS。 keepalived负责高可用的逻辑判断,最终还是通过消息通知DPVS执行VIP的漂移、功能的开关。

相关文章:

  • 自用的vim脚本
  • QT 中的元对象系统(二):元对象实现原理QMetaObject
  • 网络基础III
  • 数据库表的各种设计
  • 记Anolis OS 8中如何盘podman
  • Photoshop EXIF 脚本
  • Android 自定义进度条:实现渐变色和圆角效果
  • 基于大语言模型的推荐系统(2)
  • Pytest自定义测试用例执行顺序
  • docker本地镜像源搭建
  • 基于定制开发开源AI大模型S2B2C商城小程序的商品选品策略研究
  • Spring Boot集成Jetty、Tomcat或Undertow及支持HTTP/2协议
  • 基于PyTorch实现的自适应注意力卷积网络(AACN)详解
  • 【C++】C/C++中的类型转换
  • SpringBoot 使用 spring.profiles.active 来区分不同环境配置
  • 【AIGC系列】3:Stable Diffusion模型原理介绍
  • WiseFlow本地搭建实录---保姆教程
  • AWS跨账号服务全解析:安全共享资源的最佳实践
  • 3.【基于深度学习YOLOV11的车辆类型检测系统】
  • Go在1.22版本修复for循环陷阱
  • 做的网站 显示乱码/企业推广策划书
  • 政府网站建设招标方案/微信公众号怎么开通
  • page和wordpress/重庆百度关键词优化软件
  • 成品软件网站推荐/广州市口碑seo推广外包
  • 东营网格通二维码/seo视频教程汇总
  • 做网站用的服务器/seo优化是啥