核心基础概念

  1. FCoE:以太网光纤通道 (Fibre Channel Over Ethernet)

    • 它是一个存储网络协议,允许在以太网上发送光纤通道帧, 且IP通信和光纤通道通信使用相同的以太网端口。
  2. HBA:host bus adapter,主机总线适配器 
    • 它是连接主机计算机到网络/存储设备的可插拔式卡,支持多种存储网络协议,HBA通常是扩展卡,如PCI Express卡,它插入主机计算机的总线传送iSCSI或FC协议。
  3. OEM: 原始设备制造商(original equipment manufacturer)
  4. CNA:Converged network adapter,融合网路适配器,也称C-NIC 
    • 作为计算机输入/输出设备,其融合了HBA和网络适配器的功能。简言之,通过CNA可同时访问SAN(存储区域网络)和传统的计算机网络。
    • 如单一万兆以太网适配器端口上同时运行TCP/IP,iSCSI和光纤通道以太网数据流a 
  5. TOE:TCP Offlod Engine,TCP负荷减轻引擎,也称TCP卸载引擎。 
    • TOE一般由软硬件构成,将传统的TCP/延伸,把网络数流量的处理工作全部转到网卡上的集成硬件中进行,服务器只承担TCP/IP控制信息的处理决策任务 
  6. ASIC:特定用途集成电路(Application Specific Integrated Circuit)
  7. InfiniBand:InfiniBand架构是一种支持多并发链接的”转换线缆”技术,是一种长缆线的连接方式,具有高速、低延迟的传输特性。

    • 主要是用于在服务器集群,系统之间的互联。
    • 发展

    需要说明的是,即使在系统之间的互联,InfiniBand也还面临着竞争对手,这是因为自英特尔、微软退出IBTA之后,IBM、惠普也在不久后退出,并在第二年提出RDMA(Remote Direct Memory Access,远程直接内存存取)技术,期望用10 Gbps Ethernet搭配TOE(TCP/IP Offload Engine,TCP/IP负荷卸载引擎)的硬件加速设计,以更标准、低廉的方式与InfiniBand进行竞争。此外,由Broadcom、Chelsio、惠普、NetApp和微软等厂商推动的iWarp,一种用于远程直接内存访问、远程直接数据放置的保护协议,它淘汰了两端的网卡,也是一种标准的协议。另外,英特尔的I/O加速技术也与InfiniBand具有一定的竞争关系。

  8. RDMA: Remote Direct Memory Access,远程直接内存存取

    • RDMA原理
  9. iWARP: Internet Wide Area RDMA Protocol 一种用于远程直接内存访问、远程直接数据放置的保护协议,它淘汰了两端的网卡,也是一种标准的协议。 
    • 一种通过以太网做RDMA的解决方案,其能够试下同Infiniband同样的RDMA特性
  10. Cut-though:直通转发技术 (Cut-through)又叫快速转发。
  11. SCSI:Small Computer System Interface,小型计算机系统接口 
    • 一种用于计算机和智能设备之间(硬盘、软驱、光驱、打印机、扫描仪等)系统级接口的独立处理器标准。
    • 是一种智能的通用接口标准。 
  12. iSCSI:Internet 小型计算机系统接口 (iSCSI:Internet Small Computer System Interface) 
    • iSCSI技术是一种新储存技术,该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,使服务器可与使用IP网络的储存装置互相交换数据
    • 是一种基于 TCP/IP的协议,用来建立和管理 IP 存储设备、主机和客户机等之间的相互连接,并创建存储区域网络(SAN)。
  13. SMB:Server Message Block 服务信息块,又称Common Internet File System(CIFS)A 
    • 由微软、英特尔开发的一种软件程序级的网络传输协议,主要用来使得一个网络上的机器共享计算机文件、打印机、串行端口和通讯等资源。它也提供认证的行程间通讯机能。
    • SMB 是在会话层(session layer)和表示层(presentation layer)以及小部分应用层(application layer)的协议。SMB使用了NetBIOS的应用程序接口
    • 它主要用在装有Microsoft Windows的机器上,在这样的机器上被称为Microsoft Windows Network。
  14. RoCE:RDMA over Converged Ethernet
  15. iSER:iSCSI Extensions for RDMA

    • 对iSCSI协议进行了RDMA扩展的计算机网络协议。
    • 支持RDMA的包括:基于TCP的RDMA服务(iWARP),不基于TCP的RoCE协议,以及InfiniBand技术。
    • iSER允许直接在SCSI计算机内存缓冲区中进行数据的传输,无需中间层的数据拷贝和过多的CPU干预。
    • 读命令的执行 
    • 写命令的执行 

InfiniBand架构是一种支持多并发链接的“转换线缆”技术,在这种技术中,每种链接都可以达到2.5 Gbps的运行速度。这种架构在一个链接的时候速度是500 MB/秒,四个链接的时候速度是2 GB/秒,12个链接的时候速度可以达到6 GB /秒。

RDMA是Remote Direct Memory Access的缩写,意思是技术全称远程直接数据存取,就是为了解决网络传输中服务器端数据处理的延迟而产生的。

两篇讲述 InfiniBand 的趣文:

  • 关于Infiniband的一些介绍 http://aze12.blog.163.com/blog/static/8620441220086411596665/
  • InfiniBand:还会有多少人想起我?http://www.360doc.com/content/07/0904/16/494_718778.shtml

RDMA 技术有好几种规范来达到:

  • InfiniBand: 这是正统,InfiniBand 设计之初就考虑了 RDMA,InfiniBand 从硬件级别保证可靠传输;
  • iWARP: 基于 TCP or SCTP 做 RDMA,利用 TCP or SCTP 达到可靠传输,对网络设备的要求比较少;
  • RoCE: 基于 Ethernet 做 RDMA,消耗的资源比 iWARP 少,支持的特性比 iWARP 多,需要FCoE做可靠传输。从wikipedia的评价看 RoCE 还是比正统的 InfiniBand 差点。

上面三种实现都是需要硬件支持的,IB 需要支持 IB 规范的网卡和交换机,iWARP 和 RoCE 都可以使用普通的以太网交换机,但是需要支持 iWARP 或者 RoCE 的网卡。软件上 Solaris、Linux、Windows 都有支持,在 API 层面这篇文章有个入门的介绍:Introduction to Remote Direct Memory Access (RDMA) ,可以使用 http://www.openfabrics.org/提供的 libibverbs 库(Debian Linux 有提供),这个库似乎也支持 Windows 上的原声 RDMA API "Network Direct"。另外也有一些其它 API 规范,比如 DAT 组织制定的 kDAPL(让 kernel driver 可以访问 RDMA 功能) 和 uDAPL(让 user space 进程可以访问 RDMA 功能), OpenGroup 制定的 IT-API 和 RNICPI:

  • https://software.intel.com/en-us/articles/access-to-infiniband-from-linux
  • http://www.zurich.ibm.com/sys/rdma/interfaces.html
  • http://rdma.sourceforge.net/

另外 IETF 制定了 iSCSI Extensions for RDMA(iSER) 和 SDP(Sockets Direct Protocol, 基于 RDMA 替换 TCP 的流式传输层协议, RDMA 本身提供了可靠传输机制) 两个协议。Java 7 引入了对 SDP 的支持: https://docs.oracle.com/javase/tutorial/sdp/sockets/index.html,Apache Qpid 消息队列也支持 RDMA:https://packages.debian.org/sid/librdmawrap2 .

如果 NVMe 存储系统与主机是分离的,显然需要某种 fabric 把它们连接,这样主机才能使用存储系统。目前,支持远程连接的 fabric 包括:
  • RDMA 协议:底层可以是以太网( RoCE 或者 iWARP )或者 Infiniband
  • Fibre Channel 协议:底层可以是 FC 网络或者以太网(FCoE)
一、为什么需要 RDMA ?

RDMA (Remote Direct Memory Access) 是一种绕过主机 (host-offload/host-bypass) 技术:一个应用(包括存储)<--发送/接收数据-->另外一个(远程)应用的内存空间。
  • Source Application <-- (发送/接收、完成)队列 --> 带 RDMA 功能的网卡 <-- 可靠的网络连接 --> 带RDMA 功能的网卡 <-- (发送/接收、完成)队列 --> Target Application
 由上图可知,应用程序可以从一台(物理的或者虚拟的)机器直接传送数据到另外一台机器,这既提高了带宽又降低了延迟、抖动和 CPU 消耗。

各种操作系统支持 RDMA :
  • Windows Server: 从 Windows HPC Server 2008 开始支持 Network Direct userspace API ;从 Windows Server 2012 开始支持 Network Direct kernel API
  • Linux: 从2004年开始,由 OpenFabrics Alliance 提供 userspace/kernel API , RHEL 和 SLES 已经自带, Ubuntu 要自己安装?
  • FreeBSD 9.0+ 支持 OpenFabrics Alliance userspace/kernel API
具体来说, RDMA 技术特性带来的好处如下图所示:
  NVMe 设备延迟很低,这就要求网络延迟也必须很低, RDMA 正好满足这一点。
二、用 RDMA 发送 NVMe 写命令
 以一个 NVMe 写操作为例。 NVMe 主机驱动把写命令及数据(从 NVMe 提交队列取出一项)封装一个与底层传输无关的命令胶囊(capsule);胶囊被放到主机 RDMA 网卡的发送队列中,由 RDMA_SEND 发送出去;目标主机的 RDMA 网卡在接收队列中收到这个胶囊,解除封装,把 NVMe 命令及数据放到目标主机的内存中;目标主机处理 NVMe 命令及数据;完成后,目标主机封装一个 NVMe 命令完成项,由 RDMA 传输到源主机。
三、两种基于以太网的 RDMA 协议
第一种:以太网->IP->UDP->RoCE (RDMA over Converged Ethernet) v2
第二种:以太网->IP->TCP(去掉 TCP/IP 流量控制和管理)->iWARP
不同协议的网卡之间并不兼容,也就说支持 RoCE 协议的网卡不能与支持 iWARP 协议的网卡交换数据。
两种协议的供应商上台系统不一样,
 对底层网络基础设施的要求也不一样:
 了解更多细节,
【1】How Ethernet RDMA Protocols iWARP and RoCE Support NVMe over Fabrics https://www.brighttalk.com/webcast/663/185909

InfiniBand, RDMA, iWARP, RoCE , CNA, FCoE, TOE, RDMA, iWARP, iSCSI等概念相关推荐

  1. CNA, FCoE, TOE, RDMA, iWARP, iSCSI等概念及 Chelsio T5 产品介绍

    鉴于研究所的需求,最近开始研究Chelsio T5(终结者5),本篇博文对相关技术的基础概念做了罗列,并给了一些扩展学习链接.后续自己将针对RDMA技术做进一步学习和研究! 核心基础概念 FCoE:以 ...

  2. roce和iwarp_InfiniBand, RDMA, iWARP, RoCE

    [迁移]InfiniBand, RDMA, iWARP, RoCE 这两天了解了一些 parallel file system 比如 PVFS2/OrangeFS, Lustre,它们都声称支持 In ...

  3. 【RDMA】15. RDMA之RoCE Soft-RoCE

    [RDMA]RDMA 学习资料总目录_bandaoyu的笔记-CSDN博客SavirRDMA 分享1. RDMA概述https://blog.csdn.net/bandaoyu/article/det ...

  4. 15. RDMA之RoCE Soft-RoCE

    转自:https://zhuanlan.zhihu.com/p/361740115 阅读本文前建议温习"RDMA概述"一文,了解下RDMA领域的基本概念. 我已经在基本概念篇里面跟 ...

  5. 一文读懂RoCE,基于以太网的RDMA

    扫码关注笔者公众号linux网络虚拟化获取更多资料 RoCE全称RDMA over Converged Ethernet,从字面来看,也就是基于融合以太网的RDMA,所以在了解RoCE之前还得先认识下 ...

  6. 【RDMA】infiniband网卡安装|InfiniBand 连接和状态诊断工具|测试RDMA网卡是否正常工作...

    目录 1. 基础知识 一.诊断工具--翻译中 2. 驱动安装 3.配置IP 4. 性能测试 5. 其他问题 RDMA .InfiniBand.IB卡.IB驱动的关系 问题记录 原文:infiniban ...

  7. 【RDMA】RoCE网络QoS|应用层设置PFC等级|Tos|Priority|TC

    目录 1.什么是QoS 2.为什么RoCE网络需要QoS 3.为了实现每个流有不同的优先级,硬件层如何对流量分类 4. 应用层如何对流量分类 5. 应用层对流量的分类是怎么映射到硬件层上的分类 6.映 ...

  8. 【RDMA】intel 英特尔RDMA 驱动和ibverslib 库安装|流控PFC

    目录 关键步骤概览 查已经安装的版本 详细步骤和说明 编译和安装(Building and Installation ) 确认RDMA功能(Confirm RDMA Functionality) iW ...

  9. roce和iwarp_VIA、IB、RDMA、RoCE、iWARP、DPDK的发展与纠缠?

    VIA(Virtual Interface Architecture): 这个只是一个标准,基本上不要了解太多. 楼主的问题可以细分成2个层次考虑.一个是网络环境,二是具体的协议和实现. 一.网络环境 ...

最新文章

  1. 油品调和计算软件_燕山石化汽油在线调和系统完成升级改造
  2. 并肩XGBoost、LightGBM,一文理解CatBoost!
  3. 深度理解目标检测(MMdetection)-HOOK机制
  4. 下列哪项不属于以太网交换机的特点_网络测试作业题
  5. 编程方法学15:指针要点回顾
  6. Android elevation的使用阴影
  7. 从软件工程的角度比较Swift、Go和Julia,我有了这些发现
  8. 李开复《纽约时报》专栏:美国对中国AI的几大误解
  9. Eaplayer漂亮好用的wordpress音乐播放器插件
  10. jspx学习笔记(一)
  11. English语法_形容词-排序
  12. Mybatis游标Cursor查询
  13. wintogo取消屏蔽本地磁盘
  14. 头歌java 实训 答案 代码 java入门
  15. 概率论之蒙特卡罗模拟
  16. Commander入门
  17. 高级JavaScript第(五)篇
  18. 在Windows中安装Anaconda、NumPy和Matplotlib软件包
  19. 高斯列主元消去法——C实现
  20. redis密码、端口号、连接IP的修改

热门文章

  1. C语言补习(西安华清远见)第六天
  2. 微软Windows多媒体技术介绍
  3. 《穷查理宝典》查理芒格箴言录 epub+mobi+azw3
  4. 外设驱动库开发笔记48:MCP4725单通道DAC驱动
  5. 中心睿典计算机考试题,广西百色中星睿典职称计算机考试:wpsOffice判断题练习题及答案...
  6. Android系统定制的导航侧边栏
  7. php新手学习php的好网站(推荐!!)
  8. “总裁,夫人被您送去互联网公司三年了…”
  9. Oracle 组织机构代码校验函数
  10. 路面附着系数对轮胎侧偏特性的影响