ACM Transactions on Storage,Vol.号144、第三十一条。出版日期:2018年12月
RDMA可以在不同的链路层协议上实现它最初与InfiniBand相关[35],需要特殊用
途的互连。最近的两个基于以太网的替代方案- RoCE和iWARP-提供了一个更具成
本效益的解决方案,预计将增加数据中心领域中的RDMA采用。RoCE(融合以太
网上的RDMA)[7]基于以太网上的InfiniBand传输,并使用以太网上的RDMA和
UDP/IP帧。iWARP(interent Wide Area RDMA Protocol)[9]在面向连接的传输(如
TCP)上使用RDMAiWARP和RoCE都需要专门的支持RDMA的交换机,但都可以在
基于以太网的现代交换机上运行与InfiniBand相比,这大大减少了基础设施投资
1
虽
然在标准以太网上运行iWARP比运行RoCE更便宜,但RoCE提供更低的延迟,并且
拥有强大的追随者。最近,RoCE似乎正在获得动力,并被OEM采用(例如,参考
文献[47]); RoCEv 2是我们的NVMe-oF评估中使用的织物
图1(a)显示了主机和目标的NVMe-over-Fabric堆栈。主机驱动程序包含常见的
NVMe主机核心以及PCIe和RDMA传输。目标驱动程序包含NVMe目标核心和RDMA传
输。这两个驱动程序共享共同的NVMe和NVMe-oF数据结构、排队接口、命令和属性,
这些都独立于NVMe传输层。NVMe传输绑定(NVMe-RDMA块)将NVMe-over-Fabrics
绑定到NVMe传输层,并且特定于结构协议和物理层。
在进行传输之前,主机与目标中的NVM控制器进行关联(
连接
),从而在I/O提
交队列和I/O完成队列之间创建一对一映射NVMe队列与CPU核心对齐,并与RDMA
专用发送(SQ)和响应(RQ)队列对和完成队列配对(参见图1(b))。这种具
有端到端配对的队列设计将NVMe的固有并行性暴露给远程主机。当关联存在时,
NVMe主机驱动程序将NVMe命令和响应封装到结构中立的命令封装中,并将其传
递到NVMe RDMA传输。封装体是从主机转移到NVM子系统的NVMe单元[48]。
3 方法
本节描述了我们研究中使用的硬件和软件设置我们的非分解基准配置使用双插槽
Xeon E5-2690 v4服务器[23],具有128 GB DDR4存储。它配备了一个PM 1725 NVMe-
SSD [56]-一个高端企业驱动器,支持高达750(120)KIOPS的随机读(写)流量和
3GB/s(2GB/s)的顺序读(写)带宽。我们将此配置称为直接连接存储(DAS)或
本地
服务器。在评估远程存储时,我们使用三个这样的DAS服务器,并将其驱动器
移动到指定的
存储服务器
(称为
目标
)。三个基线节点现在通过网络访问驱动
器,并被称为
主机
(或
网络服务器
[31])。目标节点是四插槽Xeon E7-8890 v4服务
器[23],配备512 GB DDR4内存和相同的三个NVMe-SSD驱动器。为了减少噪音并
允许更清晰的比较,我们在所有服务器上禁用超线程以及
所有服务器都使用单个ConnectX-4 100 Gb以太网NIC [39],提供以太网上的RDMA
(RoCE)功能,并通过100 Gb以太网交换机连接[40]。对于远程存储配置,我们通
过RoCE评估iSCSI和NVMe-oF由于数据中心主要使用以太网,因此我们使用RoCE而
不是InfiniBand进行底层互连(如
1
与iWARP不同,RoCE要求交换机支持数据中心桥接(DCB)。虽然旧交换机不支持DCB,但它在新的
高带宽交换机中变得越来越普遍