[中英对照]Introduction to Remote Direct Memory Access (RDMA) | RDMA概述

前言: 什么是RDMA? 简单来说,RDMA就是指不通过操作系统(OS)内核以及TCP/IP协议栈在网络上传输数据,因此延迟(latency)非常低,CPU消耗非常少。 下面给出一篇简单介绍RDMA的文章之中英文对照翻译。

Introduction to Remote Direct Memory Access (RDMA) | RDMA概述

1. What is RDMA? | 什么是RDMA

Direct memory access (DMA) is an ability of a device to access host memory directly, without the intervention of the CPU(s).

RDMA (Remote DMA) is the ability of accessing (i.e. reading from or writing to) memory on a remote machine without interrupting the processing of the CPU(s) on that system.

XXXX

2. So? why is this so good? | 为嘛这么好呢

Using RDMA has the following major advantages:

  • Zero-copy - applications can perform data transfer without the network software stack involvement and data is being send received directly to the buffers without being copied between the network layers.
  • Kernel bypass - applications can perform data transfer directly from userspace without the need to perform context switches.
  • No CPU involvement - applications can access remote memory without consuming any CPU in the remote machine. The remote memory machine will be read without any intervention of remote process (or processor). The caches in the remote CPU(s) won‘t be filled with the accessed memory content.
  • Message based transactions - the data is handled as discrete messages and not as a stream, which eliminates the need of the application to separate the stream into different messages/transactions.
  • Scatter/gather entries support - RDMA supports natively working with multiple scatter/gather entries i.e. reading multiple memory buffers and sending them as one stream or getting one stream and writing it to multiple memory buffers.

XXXX

3. Where can I find RDMA? | 哪里需要用到RDMA?

You can find RDMA in industries that need at least one the following:

  • Low latency - For example: HPC, financial services, web 2.0
  • High Bandwidth - For example: HPC, medical appliances, storage and backup systems, cloud computing
  • Small CPU footprint  - For example: HPC, cloud computing

And in many-many more other industries...

XXXX

4. Which network protocols support RDMA? | 支持RDMA的网络协议有哪些?

Today, there are several network protocols which support RDMA:

  • InfiniBand (IB) - a new generation network protocol which supports RDMA natively from the beginning. Since this is a new network technology, it requires NICs and switches which supports this technology.
  • RDMA Over Converged Ethernet (RoCE) - a network protocol which allows performing RDMA over Ethernet network. Its lower network headers are Ethernet headers and its upper network headers (including the data) are InfiniBand headers. This allows using RDMA over standard Ethernet infrastructure (switches). Only the NICs should be special and support RoCE.
  • Internet Wide Area RDMA Protocol (iWARP) - a network protocol which allows performing RDMA over TCP. There are features that exist in IB and RoCE and aren‘t supported in iWARP. This allows using RDMA over standard Ethernet infrastructure (switches). Only the NICs should be special and support iWARP (if CPU offloads are used) otherwise, all iWARP stacks can be implemented in SW and loosing most of the RDMA performance advantages.

XXXX

5. Does it mean that I need to learn several programming APIs? | 需要学习编程API吗

No. Luckily, the same API (i.e. verbs) can be used for all the above-mentioned RDMA enabled network protocols. In *nix it is libibverbs and kernel verbs and in Windows it is Network Direct (ND).

XXXX

6. Are those network protocols interoperable? | 网络协议可以互操作吗

Since those are different network protocols, their packets are completely different and they cannot send/receive messages directly without any router/gateway between them. However, the same code can support all of them. Since all those network protocols support libibverbs, the same binary can be used without even the need to recompile the source code.

XXX

7. Do I need to download special packages to use RDMA or is it part of the Operating System? | 用RDMA需要装额外的包吗 or RDMA是OS的一部分吗

For several Operating Systems, RDMA support is embedded within the kernel. For example, Linux which supports RDMA natively and all major Linux distributions support it. Other Operating Systems may need to download a package (such as OFED) to add RDMA support to it.

XXXX

推荐阅读:

  1. InfiniBand的版本演进、基础观念、传量传速
  2. RDMA : https://en.wikipedia.org/wiki/Remote_direct_memory_access
  3. IB : https://en.wikipedia.org/wiki/InfiniBand
  4. iSER : https://en.wikipedia.org/wiki/ISCSI_Extensions_for_RDMA
  5. iWARP : https://en.wikipedia.org/wiki/IWARP
  6. RoCE : https://en.wikipedia.org/wiki/RDMA_over_Converged_Ethernet
  7. SDP : https://en.wikipedia.org/wiki/Sockets_Direct_Protocol
  8. SRP : https://en.wikipedia.org/wiki/SCSI_RDMA_Protocol
时间: 2024-10-10 13:56:20

[中英对照]Introduction to Remote Direct Memory Access (RDMA) | RDMA概述的相关文章

[中英对照]Introduction to DPDK: Architecture and Principles

Introduction to DPDK: Architecture and Principles | DPDK概论:体系结构与实现原理 Linux network stack performance has become increasingly relevant over the past few years. This is perfectly understandable: the amount of data that can be transferred over a network

[中英对照]User-Space Device Drivers in Linux: A First Look

如对Linux用户态驱动程序开发有兴趣,请阅读本文,否则请飘过. User-Space Device Drivers in Linux: A First Look | 初识Linux用户态设备驱动程序 User-Space Device Drivers in Linux: A First Look Mats Liljegren Senior Software Architect Device drivers in Linux are traditionally run in kernel spa

Welcome Docker to SUSE Linux Enterprise Server【水平有限,中英对照,求纠错】

  原文:Welcome Docker to SUSE Linux Enterprise Server Lightweight virtualization is a hot topic these days. Also called "operating system-level virtualization," it allows you to run multiple applications or systems on one host without a hypervisor

[转]从普通DLL中导出C++类 – dllexport和dllimport的使用方法(中英对照、附注解)

这几天写几个小程序练手,在准备将一个类导出时,发现还真不知道如果不用MFC的扩展DLL,是怎么导出的.但我知道dllexport可以导出函数和变量,而且MFC扩展DLL就算是使用了MFC的功能,但能否导出类应该也不是必须用MFC才能够做到,一定是有相应的机制可以实现.于是查了一下MSDN,发现这个机制简单的可怕,原来就和导出函数一样,把dllexport关键字加到类名前就可以了.估计和我一样的同学大有人在,把MSDN的相关文档翻译出来,附上我的注解,希望对大家有用. 评注程序均在Visual S

谷歌退出中国声明全文(中英对照版)A new approach to China

次针对Google的攻击无关,我们发现有第三方在定期的访问美国,中国,欧洲的许多人*权*支持者的Gmail帐户.对这些帐户的访问并不是通过Google认可的方式,大多是通过钓鱼欺诈手段,以及位于用户电脑中的恶意软件进行. We have already used information gained from this attack to make infrastructure and architectural improvements that enhance security for Go

(转)DMA(Direct Memory Access)

DMA(Direct Memory Access) DMA(Direct Memory Access)即直接存储器存取,是一种快速传送数据的机制. 工作原理 DMA是指外部设备不通过CPU而直接与系统内存交换数据的接口技术. 要把外设的数据读入内存或把内存的数据传送到外设,一般都要通过CPU控制完成,如CPU程序查询或中断方式.利用中断进行数据传送,可以大大提高CPU的利用率. 但是采用中断传送有它的缺点,对于一个高速I/O设备,以及批量交换数据的情况,只能采用DMA方式,才能解决效率和速度问题

计算机算法常用术语中英对照(分为两部分 其中一部分表格形式 )

第一部分 Data Structures 基本数据结构 Dictionaries 字典 Priority Queues 堆 Graph Data Structures 图 Set Data Structures 集合 Kd-Trees 线段树 Numerical Problems 数值问题 Solving Linear Equations 线性方程组 Bandwidth Reduction 带宽压缩 Matrix Multiplication 矩阵乘法 Determinants and Perm

英语电影剧本大全(中英对照)

目     录 <泰坦尼克号>全部英文剧本 TV REPORTER: Treasure hunter Brock Lovett is best known for finding Spanish gold off islands in the best Caribbean. LIZZY: It’s OK, I’ll get you in a minutes. Come on. TV REPORTER: Now he is using Russian subs to reach the most

Filesystem-Hierarchy-Standard(FHS) 文件系统层次结构标准2.3中英对照版(未完待续)

本想把原文翻译一遍,一来学习学习Linux的文件系统结构,二来熟悉下专业英语.经历了一个月之久,才翻译到一半.再也没有空闲时间待在学校了,不知道什么时间才能翻译完.先在这里发表一下,给有需要的同志们方便学习,也给自己一个提醒,告诉自己这里还有一件未完成的事..感謝大家支持 --------------------------------------以下是FHS-2.3正文内容----------------------------------------------- Filesystem Hi