TeRM: Extending RDMA-Attached Memory with SSD——论文泛读

FAST 2024 Paper 论文阅读笔记整理

问题

通过RDMA可以以虚拟地址的形式向客户端公开服务器端内存区域,即RDMA连接的内存。客户端可以通过单方面请求直接访问这些区域的数据,在服务器端绕过CPU,由RDMA NIC(RNIC)使用RNIC页表执行虚拟到物理地址的转换,然后将数据DMA到物理内存。通过这种方式,RDMA提供了低延迟和高CPU效率。

为了进一步扩大RDMA连接的内存,考虑利用SSD扩展内存空间。提出了一种称为ODP MR(内存区域按需换页)[22]的硬件机制来支持它。在处理RDMA请求时,RNIC将触发SSD驻留数据的页面故障中断,然后CPU将数据从SSD提升到内存,并更新RNIC页面表。但其显著增加了延迟,RDMA READ在内存内页面上延迟为3.66μs,在SSD驻留页面上的延迟为570.74μs。根本原因是RNIC硬件的计算和内存资源有限[22],只能以简单、低效的方式处理RNIC页面故障的异常(例如,丢弃接收到的数据并通知客户端RNIC重新发送)。

本文方法

本文提出了TeRM,用SSD扩展RDMA连接的内存。主要思想是消除关键路径中的RNIC和CPU页面故障。

  • 异常处理(即RNIC页面故障)从硬件加载到软件。对于所有SSD驻留页面,TeRM使RNIC页面表指向包含预定义模式的保留物理页面。通过这种方式,消除RNIC页面故障。对于读取请求,客户端首先通过RDMA read获取数据,并识别页面是否在SSD上。然后,客户端使用RPC从服务器检索SSD驻留页面,但不需要对内存驻留页面进行任何额外操作,从而在常见情况下确保快速远程访问。同时,还介绍了一套减少网络流量的技术。

  • 为了消除RPC执行的关键路径中的重CPU页面故障[11,30,42],提出了分层IO。其关键思想是通过文件IO接口而不是内存加载/存储接口访问SSD扩展的虚拟内存。当数据缓存在物理内存中时,通过缓冲IO读取/写入SSD扩展的虚拟内存,否则通过绕过页面缓存的直接IO。

  • 由于直接I/O导致冻结了服务器上的数据放置。如果一个热点在SSD上,它将始终由RPC直接IO访问。因此,设计了一种动态热点提升机制,该机制依赖于客户端和服务器的协作。

开源代码:GitHub - thustorage/TeRM: TeRM: Extending RDMA-Attached Memory with SSD

评估显示,TeRM的性能接近理想上限,其中所有页面都固定在物理内存中。与现有方法相比,TeRM显著提高了未修改的基于RDMA的存储系统(包括文件系统和键值系统)的性能。

实验

实验环境:在一台服务器和两台客户端组成的集群上进行实验。该服务器具有56核Intel Xeon Gold 6330 CPU、96GB DRAM、400GB Intel Optane 5800X SSD。SSD具有1.25/1.16 Mops/s的4KB随机读/写和4.21/0.69 Mops/s的512B随机读写。每台客户端机器都有一个36核Intel Xeon Gold 5220 CPU、64GB DRAM。每个机器上都有一个ConnectX-5 RNIC,并通过100Gbps IB RDMA交换机进行连接。

数据集:微基准测试、YCSB

实验对比:吞吐量、延迟、带宽

实验参数:读大小、写大小、动态工作负载随时间变化、倾斜程度、写比例、客户端线程数、RDMA比例

总结

优化用SSD扩展RDMA连接的内存,现有方法在处理页面故障时效率低。本文提出了TeRM,主要思想是消除关键路径中的RNIC和CPU页面故障。(1)消除RNIC页面故障。对于SSD驻留页面,使RNIC页表指向包含预定义模式的保留物理页面。对于读取请求,客户端首先通过RDMA read获取数据,并识别页面是否在SSD上。然后,客户端使用RPC从服务器检索SSD驻留页面,但不需要对内存驻留页面进行任何额外操作,从而在常见情况下确保快速远程访问。(2)消除CPU页面故障,提出了分层IO。通过文件IO接口而不是内存load/store接口访问SSD扩展的虚拟内存。当数据缓存在物理内存中时,通过缓冲IO读/写SSD扩展的虚拟内存,否则通过直接IO绕过页面缓存。(3)由于直接I/O导致服务器上的数据放置不变,难以适应热点。设计了一种动态热点提升机制,依赖于客户端和服务器的协作。

  • 25
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

妙BOOK言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值