魏国武 QingStor 资深研发工程师
近 10 年企业级软件开发经验,专注于大规模分布式存储研发,擅长集群性能调优、高可用研究及容灾。

为什么需要 RDMA

当今是云计算、大数据的时代,企业业务持续增长需要存储系统的 IO 性能也持续增长。传统的 TCP/IP 技术在数据包处理过程中,要经过操作系统及其他软件层,数据在系统内存、处理器缓存和网络控制器缓存之间来回进行复制,给服务器的 CPU 和内存造成了沉重负担。尤其是网络带宽、处理器速度与内存带宽三者的严重"不匹配性",更加剧了网络延迟效应。为了降低数据中心内部网络延迟,提高带宽,RDMA 技术应运而生。RDMA 允许用户态的应用程序直接读取和写入远程内存,避免了数据拷贝和上下文切换;并将网络协议栈从软件实现 offload 到网卡硬件,实现了高吞吐量、超低时延和低 CPU 开销的效果。

当前 RDMA 在以太网上的传输协议是 RoCEv2,RoCEv2 是基于无连接协议的 UDP 协议,相比面向连接的 TCP 协议,UDP 协议更加快速、占用 CPU 资源更少,但其传输是不可靠的,一旦出现丢包会导致 RDMA 的传输效率降低,这是由 RDMA 的 Go-back-N 重传机制决定的。RDMA 接收方网卡发现丢包时,会丢弃后续接收到的数据包,发送方需要重发之后的所有数据包,这导致性能大幅下降。所以要想 RDMA 发挥出其性能,需要为其搭建一套不丢包的无损网络环境。

差异化流量分类

构建无损网络,首先需要对网络流量进行分类,然后针对不同类别流量采用具体流控策略,实现精确控制,避免相互影响。流量分类有两种不同的分类方法:传输层(Layer 2)和网络层(Layer 3)。Layer2 通过 vlan header(802.1q)里的 PCP(802.1p)位进行分类,对应 CoS(Class of Service);Layer3 通过 IP header 里的 DSCP 进行分类,对应 DSCP。

Layer 2 流量分类

Layer2 层流量分类依据的是 vlan tag 中的 3 位 PCP bit,总共有 8 个类别。3 个 bit 是 Header 中第 3 个 byte 的前三位,如下图。在

存储大师班 | 浅谈 RDMA 与无损网络相关推荐

  1. 存储大师班 | 浅谈数据保护之快照与备份

    作者简介:徐林波 NeonSAN 开发人员,具备丰富的存储领域从业经验,资深存储系统软件研发工程师,熟悉当前主流及新型存储介质. 引言 面对当前企业数字化转型浪潮,信息数据已经成为企业赖以生存的基础, ...

  2. 存储大师班 | ZFS存储池块管理与事务模型

    作者简介:肖文文,QingStor 文件存储开发工程师,主要负责文件存储的开发,有多年的存储开发经验,喜爱技术热爱技术. ZFS History 1 ZFS 的诞生:ZFS 由 Sun 存储部门的 C ...

  3. android获取存储设备根目录,浅谈android获取存储目录(路径)的几种方式和注意事项...

    通常, 我们创建文件/目录, 或者存储图片什么的, 我们都需要拿到手机的存储路径, 现在我们就来看一下获取手机存储路径的几种方式(作为工具类方法调用即可): 第一种: 获取 /storage/emul ...

  4. 【RDMA】无损网络和PFC(基于优先级的流量控制)

    目录 前言 一.为什么会产生拥塞 二.PFC如何实现流控 三.PFC死锁 四.利用ECN实现端到端的拥塞控制 五.ECN交互过程 总结 原文:<我们为什么需要RDMA?为什么需要无损网络?> ...

  5. 【RDMA】无损网络和PFC(基于优先级的流量控制)|ECN

    目录 前言 一.为什么会产生拥塞 二.PFC如何实现流控 三.PFC存在的问题 四.利用ECN实现端到端的拥塞控制 五.ECN交互过程 QC-QCN (网络工程师必会) (待续) PFC和ECN对比* ...

  6. 浅谈RDMA流控设计

    pfc 概述 Priority Flow Control (PFC) IEEE 802.1Qbb applies pause functionality to specific classes of ...

  7. 存储大师班:NFS 的诞生与成长

    作者| QingStor 黄蒙 我们为什么需要 "网络文件协议" 存储文件是大家日常工作生活中最常见的需求,随着文件数量和占用存储空间的上升,以及在一定范围内共享访问文件的需求产生 ...

  8. mysql myisam存储引擎_MySQL浅谈MyISAM存储引擎

    本文来源于:IT摆渡网---一个IT实时问答系统快速解决你的任何IT问题,无需等待! mysql中用的最多存储引擎就是innodb和myisam.做为Mysql的默认存储引擎,myisam值得我们学习 ...

  9. CNN看清世界——浅谈四个经典网络的差异

    本文介绍4种经典的卷积神经网络CNN,分别是AlexNet,VGGNet,Google Inception Net和ResNet,这4种网络依照出现的先后顺序排列,深度和复杂度也依次递进,并且在ILS ...

最新文章

  1. IRP和IO_STACK_LOCATION结构
  2. 网络编程学习笔记(RES_USE_INET6解析器选项)
  3. CentOS6.10在VMware(虚拟机)安装过程
  4. 复选框 全选 全不选 反选 实现
  5. windows 下 git 禁用 CRLF 转换 LF
  6. 9203 演练 jsp实现增删改查
  7. python的作用域 gbel_[ python ] 全局和局部作用域变量的引用
  8. 【优化预测】基于matlab差分算法优化ANN预测【含Matlab源码 151期】
  9. 虎头少保,天下第一手孙禄堂【转】
  10. 李开复:未曾公布的乔布斯故事
  11. 五百万微商都在用微信智能获客小程序,你还不加入?
  12. 显示器偏色测试软件,显示器显示偏色
  13. 圣诞帽php,微信小程序“圣诞帽”的实现思路详解
  14. java之httpclient
  15. 利用Python自动生成及发送Excel报表
  16. park,clark和ipark浅析
  17. Powershell 5.1中Shift + Insert无法粘贴解决
  18. 1970-01-01是什么?为什么计算机起始时间是1970年1月1日
  19. 保底掉落装备matlab,DNF团本减负计划 保底深渊票史诗装备删除
  20. python模板怎么写_模板模式-Python

热门文章

  1. AVFormatContext
  2. 周易卦爻解读笔记——噬嗑
  3. 使gdb支持string、vector、map等STL类型数据的查看(linux)
  4. 从三只松鼠初探互联网战略
  5. 【UE4】【C++】PlayerController、AIController获取玩家对应的Pawn
  6. 在win10+vs2019下对openmvg+openmvs的编译总结
  7. linux查询python的进程树_linux中使用ps命令查看系统进程
  8. python井号键怎么打_#井号键#——你怎么念?
  9. Ubuntu22.04卸载删除软件去除deb包
  10. 全球反洗钱监管机构将于明年6月发布加密数字货币监管法规