InfiniBand, RDMA, iWARP, RoCE , CNA, FCoE, TOE, RDMA, iWARP, iSCSI等概念

2017-12-15 15:37:00 jhzh951753 阅读数 1358更多

分类专栏: 存储
 
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。

核心基础概念

  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,远程直接内存存取

  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 的趣文:

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:

另外 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 产品介绍 转载

    CNA, FCoE, TOE, RDMA, iWARP, iSCSI等概念及 Chelsio T5 产品介绍 2016年09月01日 13:56:30 疯子19911109 阅读数:4823 标签:  ...

  2. [转帖]InfiniBand技术和协议架构分析

    InfiniBand技术和协议架构分析 2017年06月06日 20:54:16 Hardy晗狄 阅读数:15207 标签: 云计算存储Infiniband 更多 个人分类: 存储云计算   版权声明 ...

  3. [转帖] InfiniBand主流厂商和产品分析

    https://blog.csdn.net/swingwang/article/details/72935461 InfiniBand主流厂商和产品分析 2017年06月08日 22:03:46 Ha ...

  4. [转帖]InfiniBand 主流厂商 和 产品分析

    InfiniBand 主流厂商 和 产品分析   Mellanox成立于1999年,总部设在美国加州和以色列,Mellanox公司是服务器和存储端到端连接InfiniBand解决方案的领先供应商.20 ...

  5. [转帖] infiniband的协议速度

  6. [转帖]深入浅出全面解析RDMA

    深入浅出全面解析RDMA 置顶 2018年06月04日 11:36:54 MasterT-J 阅读数 17193更多 所属专栏: RDMA   RDMA(RemoteDirect Memory Acc ...

  7. mellanox RDMA RoCE

    一:首先根据系统发行版本下载对应的驱动,下载地址如下: http://www.mellanox.com/page/products_dyn?product_family=26&mtag=lin ...

  8. InfiniBand技术和协议架构分析

    Infiniband开放标准技术简化并加速了服务器之间的连接,同时支持服务器与远程存储和网络设备的连接. IB技术的发展 1999年开始起草规格及标准规范,2000年正式发表,但发展速度不及Rapid ...

  9. RDMA调研报告&一点随笔

    计算所科研实践随笔 被淹没在论文海里的两个星期. 早上7:10分起床,草草洗漱,7:30出发,开始漫长的1小时通勤.从地铁站的安检口起,队便排的极长,让人看得头皮发麻.下到了轨道旁稍好,但每趟呼啸而来 ...

随机推荐

  1. ModuleNotFoundError: No module named 'cv2'

    pip3 install opencv-python

  2. 模板 - 数学 - 数论 - Min_25筛

    终于知道发明者的正确的名字了,是Min_25,这个筛法速度为亚线性的\(O(\frac{n^{\frac{3}{4}}}{\log x})\),用于求解具有下面性质的积性函数的前缀和: 在 \(p\) ...

  3. VS2017打包注册IE插件及修改IE安全选项设置【转】

    前言 最近项目需要在浏览器环境下读取员工身份证信息,要实现网页与硬件设备通信,考虑了几种实现方式: 1.借助ActiveX插件,通过程序库直接与设备通信. 优点:厂家提供了IE插件,开发简单 缺点:只 ...

  4. [转]Myeclipse四种方式发布项目

    原文链接: myeclipse四种方式发布项目

  5. python统计apache、nginx访问日志IP访问次数并且排序(显示前20条)【转】

    前言:python统计apache.nginx访问日志IP访问次数并且排序(显示前20条).其实用awk+sort等命令可以实现,用awk数组也可以实现,这里只是用python尝试下.   apach ...

  6. vue 自己编写向左滑动的动画 仿transition

    vue 模板代码: <div class="content-wrap clearfix" :class="{slideIn: showIn, slideOut: s ...

  7. Eclipse 的快捷键以及文档注释、多行注释的快捷键 一、多行注释快捷键

    一.多行注释快捷键 1.选中你要加注释的区域,用ctrl+shift+C 或者ctrl+/ 会加上//注释2.先把你要注释的东西选中,用shit+ctrl+/ 会加上/*    */注释 3.以上快捷 ...

  8. 一起入门Python1之python的介绍

    之前在某安全论坛发表的一些关于python的文章,但是由于一些问题一直没有完成,那个论坛也歇菜了.放到这儿来吧. 说句默心掏肺的话,我也是才学习python.之所以要这个版主,是为了锻炼自己,也是为了 ...

  9. jenkins用户和权限管理

    添加用户 进入管理界面,选择manage users,添加用户 将人和角色绑定 用户和项目绑定 角色管理 可以针对不同的站点对不同的人赋权 添加角色并赋权 将角色赋权给对应的用户 使用新添加的这个用户 ...

  10. ROS tf基础使用知识

    博客参考:https://www.ncnynl.com/archives/201702/1306.html ROS与C++入门教程-tf-坐标变换 说明: 介绍在c++实现TF的坐标变换 概念: Co ...