毫无疑问地,用来取代iSCSI/iSER(iSCSI Extensions for RDMA)技术的NVMe over Fabrics着实让RDMA又火了一把。在介绍NVMe over Fabrics之前,先科普一下RDMA。
1. DMA和RDMA的概念
1.1 什么是DMA?
Direct Memory Access(DMA) is a capability provided that allows data to be sent directly from an attached device to the memory on the computer's motherboard.
DMA(直接内存访问)是一种能力,允许在计算机主板上的设备直接把数据发送到内存中去,数据搬运不需要CPU的参与。
1.2 什么是RDMA?
RDMA is a concept whereby two or more computers communicate via Direct Memory Access directly from the main memory of one system to the main memory of another.
RDMA是一种概念,在两个或者多个计算机进行通讯的时候使用DMA, 从一个主机的内存直接访问另一个主机的内存。
RDMA is a host-offload, host-bypass technology that allows an application (including storage) to make data transfers directly to/from another application's memory space. The RDMA-capable Ethernet NICs (RNICs) -- not the host -- manage reliable connections between source and destination. Applications communicate with the RDMA NIC using dedicated Queue Pairs (QPs) and Completion Queues (CQs):
- Each application can have many QPs and CQs
- Each QP has a Send Queue (SQ) and Receive Queue (RQ)
- Each CQ can be associated with multiple SQs or RQs
RDMA是一种host-offload, host-bypass技术,允许应用程序(包括存储)在它们的内存空间之间直接做数据传输。具有RDMA引擎的以太网卡(RNIC)--而不是host--负责管理源和目标之间的可靠连接。使用RNIC的应用程序之间使用专注的QP和CQ进行通讯:
- 每一个应用程序可以有很多QP和CQ