`
zhaohaolin
  • 浏览: 1011331 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
阅读更多

RDMA技术分析

1 什么是RDMA
1.1 传统意义上的DMA
diyblPic -- -直接内存访问(DMA)方式,是一种完全由硬件执行I/O交换的工作方式。在这种方式中,DMA控制器从CPU完全接管对总线的控制,数据交换不经过 CPU,而直接在内存和I/O设备之间进行。DMA工作时,由DMA控制器向内存发出地址和控制信号;进行地址修改;对传送字的个数计数;并且以中断方式 向CPU报告传送操作的结束。DMA方式一般用于高速传送成组的数据。
---使用DMA方式目的: 减少大批量数据传输时CPU的开销;方法:采用专用DMA控制器(DMAC)生成访存地址并控制访存过程;优点:操作均由硬件电路实现,传输速度快;CPU基本不干预,仅在初始化和结束时参与,CPU与外设并行工作,效率高。
---DMA的数据块传送过程可分为三个阶段:传送前预处理;正式传送;传送后处理。  DMA控制流程:1. 预处理:由CPU执行I/O指令对DMAC进行初始化与启动。2. 数据传送:由DMAC控制总线进行数传。3. 后处理:传送结束,DMAC向CPU发中断请求,报告DMA操作的结束。CPU响应,转入中断服务程序,完成DMA结束处理工作。
1.2 RDMA
diyblPic -- -RDMA(Remote Direct Memory Access)是通过网络把资料直接传入某台计算机的一块存储区域,不需用到多少计算机的处理功能。普通网卡集成了支持硬件校验和的功能,并对软件进行了 改进,从而减少了发送数据的拷贝量,但无法减少接收数据的拷贝量,而这部分拷贝量要占用处理器的大量计算周期。普通网卡的工作过程如下:先把收到的数据包 缓存到系统上,数据包经过处理后,相应数据被分配到一个TCP连接。下一步,接收系统再把主动提供的TCP数据同相应的应用程序联系起来,并将数据从系统 缓冲区拷贝到目标存储地址。以太网已能满足高性能应用对网络吞吐率的要求,具备高吞吐率和成本优势,以太网技术要跟高性能网络应用挂钩,主要解决的问题是 应用吞吐率。通常情况下,系统持续在主机CPU中处理以太网通信需要占用CPU资源。CPU速率会制约网络数据率;持续处理这类通信会导致CPU性能降 级;对多端口千兆位或单端口10千兆位以太网,这类问题会变得更为严重。
---制约网络速率的因素主要在两方面:应用通信强度和主机CPU在内核与应用存储器间处理数据的效率。要达到特定的性能级别,需要追加主机CPU资源, 配置高效的软件并增强系统负荷管理。传统的TCP/IP技术在处理数据传输的过程中需要占用大量的服务器资源。这样以太网的低投入、低运营成本优势就难以 体现。为充分发挥万兆位以太网的性能优势,必须解决应用性能问题。系统不能以软件方式持续处理以太网通信;主机CPU资源必须释放专注于应用处理。解决这 类问题的关键,是要消除主机CPU中不必要的频繁数据传输,减少系统间的信息延迟。总的来说,需要从协议、软件和硬件三方面入手。
---RDMA全名是“远程直接数据存取”,如图 2 所示,RDMA是通过网络把资料直接传入计算机的存储区,将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响,这样就不需要用到多 少计算机的处理功能。它消除了外部存储器复制和文本交换操作,因而能腾出总线空间和CPU周期用于改进应用系统性能。目前通用的做法需由系统先对传入的信 息进行分析,然后再存储到正确的区域。
diyblPic -- -当一个应用执行RDMA读或写请求时,不执行任何数据复制。在不需要任何内核内存参与的条件下,RDMA请求从运行在用户空间中的应用中发送到本地 NIC(网卡),然后经过网络传送到远程NIC。请求完成既可以完全在用户空间中处理(通过轮询用户级完成排列),或者在应用一直睡眠到请求完成时的情况 下通过内核内存处理。RDMA操作使应用可以从一个远程应用的内存中读数据或向这个内存写数据。用于操作的远程虚拟内存地址包含在RDMA信息中。远程应 用除了为其本地NIC注册相关内存缓冲区外,不需要做其他任何事情。远程节点中的CPU完全不参与输入的RDMA操作,这些对CPU没有任何负担。
---RDMA让计算机可以直接存取其它计算机的内存,而不需要经过处理器耗时的传输,因为通常这样的数据要求还要经过操作系统及其他软件层。内存瓶颈随 着连接速度超过服务器的处理能力和内存带宽而变得更加严重。 远程直接内存存取(RDMA)使一台计算机可以直接将信息传送到另一台计算机内存中。这项技术通过减少对带宽和处理器开销的需要降低了时延。这种效果是通 过在NIC的硬件中部署一项可靠的传输协议以及支持零复制网络技术和内核内存旁路实现的。零复制网络技术使NIC可以直接与应用内存相互传输数据,从而消 除了在应用内存与内核内存之间复制数据的需要。内核内存旁路使应用无需执行内核内存调用就可向NIC发送命令。在不需要任何内核内存参与的条件下, RDMA请求从用户空间发送到本地NIC并通过网络发送给远程NIC,这就减少了在处理网络传输流时内核内存空间与用户空间之间环境切换的次数。RDMA 比现行的方法快速。使用目前普遍使用的网络通过来RDMA连结计算机与存储系统,硬件连接速度加快会把众多低价位的服务器集结成效能更强大的数据库,而不 必购置昂贵的机器。对很注重占地空间和功耗的系统而言,就千兆位以太网满载传输这一任务而言,RNIC所需功耗仅为相应网卡和微处理器的一小部分。

2 RDMA的工作原理规范
---RDMA是一种网卡技术,采用该技术可以使一台计算机直接将信息放入另一台计算机的内存中。通过最小化处理过程的开销和带宽的需求,RDMA减少了 延迟时间。RDMA通过在网卡上将可靠传输协议固化于硬件,以及支持绕过内核的零拷贝网络这两种途径来达到这一目标。绕过内核使应用程序不必执行内核调用 就可以向网卡发出命令。当一个应用程序执行RDMA读/写请求时,系统并不执行数据拷贝动作。这就减少了处理网络通信时在内核空间和用户空间上下文切换的 次数。RDMA请求的完成,或者完全在用户空间中进行,或者在应用程序希望进入睡眠直到完成信号出现的情况下通过内核进行。RDMA操作用于读写操作的远 程虚拟内存地址含在RDMA消息中传送,远程应用程序要做的只是在其本地网卡中注册相应的内存缓冲区。远程节点的CPU在整个RDMA操作中并不提供服 务,因此没有带来任何负载。通过类型值(键值)的使用,一个应用程序能够在远程应用程序对它进行随机访问的情况下保护它的内存。发布RDMA操作的应用程 序必须为它试图访问的远程内存指定正确的类型值,远程应用程序在本地网卡中注册内存时获得这个类型值。发布RDMA的应用程序也必须确定远程内存地址和该 内存区域的类型值。远程应用程序会将相关信息通知给发布RDMA的应用程序,这些信息包括起始虚拟地址、内存大小和该内存区域的类型值。在发布RDMA的 应用程序能够对该内存区域进行RDMA操作之前,远程应用程序应将这些信息通过发送操作传送给发布RDMA的应用程序。
---如图 3 所示, 服务模型分为三层,依次为网络互连层、 SCSI 协议层、 SCSI应用层。
---SCSI RDMA有两种RDMA操作:RDMA写和RDMA读。读和写都是相对于SCSI启动方来说的。
---零复制网络技术及其功能实现
---零复制网络技术是通过在NIC的硬件中部署一项可靠的传输协议以及支持零复制网络技术和内核内存旁路实现的。请求完成既可以完全在用户空间中处理 (通过轮询用户级完成排列),或者在应用希望一直睡眠到请求完成时的情况下通过内核内存处理。软件部分负责协议功能实现。
---API(应用程序接口)包括用于低时延消息处理、成就高性能计算的MPI(消息通过接口),以及DAPL(直接接入供应库)。后者包括两部分: KDAPL和UDAPL,分别用于内核和用户(应用程序)。Linux支持KDAPL,其他操作系统将来也有可能支持。
  
3 RDMA在数据传输中的应用
3.1 RDMA的应用
---RDMA的优势在于可利用传统的网络硬件,以TCP/IP及以太网络标准来建立因特网。RDMA将被用来把小型服务器连接为一个群集,可以处理现今 一些十几颗处理器的高端服务器才能够处理的大型数据库。如果把RDMA及TOE,以及10GB以太网络放在一起,这是个相当吸引人的技术。RDMA正在迅 速成为高速集群和服务器区域网的一种基本特性。
---InfiniBand网络和实现虚拟接口架构的网络支持RDMA,应用于带传输卸载引擎网卡的RDMA over TCP/IP正在开发之中。采用RDMA来获取高性能的协议包括Sockets Direct Protocol、SCSI RDMA Protocol(SRP)和Direct Access File System(DAFS)。采用RDMA的通信库包括Direct Access Provider Library(DAPL)、Message Passing Interface(MPI)和Virtual Interface Provider Library(VIPL)。运行分布式应用程序的集群是RDMA能够大显身手的领域之一。通过DAPL 或VIPL以及集群上运行的数据库软件来使用RDMA,可在相同的节点数目下获得更高的性能和更好的延展性。使用MPI的集群科技运算应用程序,通过支持 互连RDMA实现了低延迟时间、低开销和高吞吐量,这一结果也使它获得了巨大的性能提升。其他初期的RDMA应用还有通过DAFS的远程文件服务器访问, 通过SRP的存储设备访问。RDMA技术正在迅速成为高速集群系统和存储域网络的基本特征技术。其中iWARP/RDMA是一类基本构造块;此外还有 iSER,它是用于RDMA的iSCSI扩展,充分利用了RDMA的功能。
---RDMA的其他早期应用包括通过DAFS的远程文件服务器访问和通过SRP的刀片服务器存储访问。RDMA正在迅速成为高速集群和服务器区域网的一种基本特性。
3.2 NAS和SAN中的应用
---传统的直接连接存储DAS(Direct Access Storage)是以服务器为中心的存储结构。这一存储体系结构存在容量限制、连接距离有限、不易于共享和管理等不可克服的缺点,已经不能够满足网络时代的应用需求。
---网络时代的到来使存储技术发生了巨大变化,网络附加存储NAS(Network Attatched Storage )、存储区域网络SAN(Storage Area Network)既能为网络上的应用系统提供丰富、快速、简便的存储资源;又能共享存储资源并对其实施集中管理,成为当今理想的存储管理和应用模式。 NAS结构存在一些难以解决的问题。如传输能力有限、可扩展性有限、数据备份能力有限并且不能对数据库服务提供有效的支持。DAFS把RDMA的优点和 NAS的存储能力集成在一起,全部读写操作都直接通过RDMA驱动器执行,从而降低了网络文件协议所带来的系统负载。今后的NAS存储系统将采用DAFS 技术提高系统性能,并且在性能和价格上与SAN存储系统进行有力的竞争。
3.3 Infiniband
---Infiniband的四大优点:基于标准的协议,10 GB/s性能,RDMA和传输卸载。优势在于:RDMA,传输卸载,高速度。InfiniBand网络和采用虚拟接口架构的网络支持RDMA,使用具有传 输卸载引擎的NIC的RDMA over TCP/IP。支持Infiniband的服务器使用主机通道适配器(HCA),把协议转换到服务器内部的PCI-X或者PCI-Xpress总线。 HCA具有RDMA功能,有时也称之为内核旁路(Kernel Bypass)。

4 其他
---网络存储技术的发展日新月异,虚拟存储技术、网格存储技术等等最新的技术将会给我们带来更多的方便,虚拟存储技术将底层存储设备进行抽象化统一管 理,向服务器层屏蔽存储设备硬件的特殊性,而只保留其统一的逻辑特性,从而实现了存储系统集中、统一而又方便的管理。统一的虚拟存储将不同厂商的FC- SAN、NAS、IP-SAN、DAS等各类存储资源整合起来,形成一个统一管理、监控和使用的公用存储池。虚拟存储的实质是资源共享,因此,统一虚拟存 储的任务有两点:其一是如何进一步增加可共享的存储资源的数量;其二是如何通过有效的机制在现有存储资源基础上提供更好的服务。从系统的观点看,存储虚拟 化有三种途径:基于主机的虚拟化存储、基于存储设备的虚拟化存储以及基于网络的虚拟化存储。统一虚拟存储的实现只能从虚拟存储的实质出发,单一存储映像的 方法可能是虚拟存储的发展方向。
---由于RDMA是近期新的存储技术,尽管有各个厂商发布信息或报道,但是都没有详细或完整的资料。本人在参照标准的基础上,参考了这些报道和一些专家的文章的内容,形成了此文,供大家参考。同时也请大家批评指正。

分享到:
评论

相关推荐

    RDMA原理分析、对比和技术实现解析.zip

    这部分内容可能涵盖了RDMA的编程模型、网络架构、错误处理机制、安全性和优化策略等,旨在帮助开发者和系统管理员更好地理解和应用RDMA技术,以实现高效、可靠的远程数据交互。 总的来说,RDMA是一种革命性的网络...

    RDMA原理分析、对比和技术实现解析.rar

    第3章 RDMA技术优势 ............................................. 9 第4章 RDMA有哪些不同实现 ...................................... 10 第5章 RDMA有哪些标准组织 ...................................... 14...

    RDMA原理分析技术实现解析

    RDMA技术可以大幅度提高数据传输的效率,尤其在高性能计算(HPC)和数据中心的存储系统中被广泛应用。 RDMA支持的网络协议主要有三种:InfiniBand(IB)、RDMA over Converged Ethernet(RoCE)和互联网广域RDMA...

    RDMA原理分析及实现解析.zip

    总之,RDMA技术通过减少CPU参与、优化内存访问和网络通信,为高性能和低延迟的应用提供了强大支持。随着技术的发展,RDMA的应用场景还将进一步扩展。了解和掌握RDMA原理及其实现,对于IT专业人士来说,是提升系统...

    RDMA原理.pptx

    - **大数据分析**:对于需要处理海量数据的大数据分析系统而言,RDMA技术可以加速数据处理流程。 - **数据库系统**:RDMA技术还可以应用于数据库系统,提升数据读写的性能。 综上所述,RDMA技术通过其独特的数据...

    c语言利用RDMA技术实现客户端和服务器端互相读取对方内存

    RDMA技术的应用场景广泛,包括高性能计算、大数据分析、云计算等,它的低延迟和高带宽特性使其成为处理大量数据传输的理想选择。在C语言中实现RDMA,不仅能够深入理解这一技术,还为开发者提供了更灵活的控制和优化...

    RDMA原理分析和技术实现

    第1章 RDMA背景简介 ............................................. 5 第2章 哪些网络协议支持RDMA ..................................... 8 2.1 InfiniBand(IB)........................................... 8 ...

    介绍RDMA的文章

    随着云计算平台的不断发展,RDMA技术将越来越多地应用于高性能计算、大数据分析、分布式数据库系统等场景中,为用户提供更低延迟和更高吞吐量的云服务。同时,RDMA技术也推动了云计算底层架构的创新,使其能够更好地...

    RDMA编程实例源码(rdma_cm API)

    **远程直接内存访问(RDMA)...通过分析和学习这些源码,你可以深入理解RDMA编程的细节,掌握如何利用rdma_cm API构建高效、低延迟的网络应用。在实际项目中,理解并熟练运用这些技术能够极大地提升系统的性能和效率。

    RDMA编程用户手册-官方中文版-1.7.zip

    RDMA技术的核心在于其“直接内存访问”特性,它跳过了传统的网络堆栈和CPU,直接将数据从源设备传输到目标设备的内存中。这种技术在大数据处理、云计算、高性能计算以及存储领域有着广泛的应用。 手册可能涵盖了...

    rdma报文抓包RoCE、RRoCE

    **RDMA技术详解与RoCE、RRoCE报文抓包指南** 远程直接内存访问(Remote Direct Memory Access,RDMA)是一种高效的数据传输技术,它允许网络设备直接读写远程服务器的内存,而无需经过CPU的干预,从而极大地提高了...

    支持RDMA的高速网络对大数据与云计算平台效率的影响.pdf

    通过RDMA技术的高速网络,能够有效地支持高速数据增长、实时数据分析以及为云计算用户提供高速平台,从而在性能、效率、易管理性和可扩展性等多维度为构建高效的大数据和云计算平台提供支撑。 在探讨RDMA技术的同时...

    rdma-core-35.0.tar.gz

    RDMA技术的核心在于其InfiniBand Verbs(IBV)接口,这是一组编程API,允许开发者直接控制网络适配器,实现低延迟、高带宽的数据传输。在rdma-core-35.0中,可能包括了如下内容: 1. **库文件**:包含了实现RDMA...

    ib_rdma.rar_rdma

    标题中的“ib_rdma.rar_rdma”暗示了我们即将探讨的是与InfiniBand RDMA(Remote ..."ib_rdma.c"源代码文件是实现这些功能的关键,通过阅读和分析代码,可以进一步了解RDMA技术的细节及其在实际应用中的实现方式。

    Xilinx Embedded RDMA Enabled NIC v3.0.pdf

    总的来说,Xilinx Embedded RDMA Enabled NIC v3.0是FPGA开发中的一个重要组件,它通过RDMA技术实现了高性能、低延迟的网络通信,为需要高速数据传输的系统提供了强大支持。设计者可以充分利用其特性来优化网络应用...

    rdma示例程序.zip

    **远程直接内存访问(RDMA)技术详解** 远程直接内存访问(Remote Direct Memory Access,RDMA)是一种高效的数据传输技术,允许网络设备直接读写应用程序的内存,而无需经过CPU的干预,极大地提高了数据传输速度和...

    基于RDMA高速网络的高性能分布式系统.docx

    #### 一、RDMA技术概览及其在高性能计算中的作用 **远程直接内存访问(Remote Direct Memory Access, RDMA)**是一种网络通信协议,其核心特点在于允许用户程序绕过操作系统内核,直接与网卡交互进行网络通信。这一...

    RDMA虚拟化相关技术研究

    RDMA网络具有高带宽,低延时,低CPU负载的特点,广泛应用于数据密集型任务中,例如深度学习,高性能计算,数据分析等.RDMA的实现需要软硬件支持,在云环境下,RDMA虚拟化方案有助于多用户共享RDMA网络传输的高性能,...

    Accelarate_ceph_with_RDMA.pdf

    本文将从背景、Ceph 与 RDMA 的集成、Ceph 与 NVMe-oF 的集成、总结与下一步等几个方面对该主题进行详细的分析。 背景 ------ 随着存储设备的发展,特别是 Optane 及 AEP 等高速存储设备的出现,对存储系统的性能...

    浅析RDMA网络下MMU水线设置.pdf

    RDMA(远程直接数据存取)技术,因其在高性能计算、人工智能、大数据分析等领域的高效、低延迟特性,已经成为现代数据中心的核心技术之一。为了确保RDMA的稳定运行,网络必须具备端到端无损和极低延迟的特性,这就...

Global site tag (gtag.js) - Google Analytics