RDMA 相关笔记。
1. RDMA 相关资源
- libvma: VMA Source Code and Documentation
- rdma-core: RDMA core userspace libraries and daemons
- perftest: Infiniband Verbs Performance Tests
- RDMA-Tutorial: A tutorial on RDMA based programming using code examples
2. RDMA 相关术语
Abbr | Term |
---|---|
RDMA | Remote Direct Memory Access |
HPC | High-Performance Computing |
IPC | InterProcess Communication |
SCSI | Small Computer System Interface |
MPI | Message Passing Interface |
HBA | Host Bus Adapter |
HCA | Host Channel Adapter: usually used to describe InfiniBand interface cards, is the point at which an InfiniBand end node connects to the InfiniBand network |
TCA | Target Channel Adapter, is a specialized version of a channel adapter intended for use in an embedded environment |
MMIO | Memory Mapped I/O |
VIA | Virtual Interface Architecture |
RoCE | RDMA over Converged ethernet |
IB | InfiniBand |
IBTA | InfiniBand Trade Association |
iWARP | internet Wide Area RDMA Protocol |
NIC | Network Interface Controller(Cards) |
VMA | Mellanox’s Messaging Accelerator |
ULPs | Upper Layer Protocols |
RC | Reliable Connection |
UC | Unreliable Connection |
UD | Unreliable Datagram |
Verb | Defines the types of communication operations |
PD | Protection Domain |
CQ | Completion Queue |
QP | Queue Pair, the endpoint of the Channel I/O |
SQ | Send Queue |
RQ | Receive Queue |
WR | Work Request, represents a single quantum of work that the application wants to perform |
MR | Memory Registration |
3. RDMA 相关博文
-
- 介绍了 RDMA 相关基础概念,适合入门观看。
-
VMA Improves Redis Transaction Rate and Latency (Memtier Benchmark)
- 在这篇文章中测试了分别在 No VMA,VMA on Server 和 VMA on both 三种情况下, Redis GET/SET 请求的吞吐量和延迟
4. RDMA 相关论文
-
- RDMA 背景介绍
- RDMA 允许本地 CPU 绕过操作系统,直接读写远端节点内存,该过程无需远端 CPU 的参与
- RDMA 通信链路可以被配置为 3 种模式:RC, UC 和 UD
- RDMA 访问远端内存依靠 2 类原语
- 消息语义:Send/Recv
- 内存语义:Write/Read
- RDMA 与硬件管理
- 缓存管理:网卡缓存用于暂存 CPU 发起的网络请求和相应的网络状态信息,其主要缓存 3 类数据
- 注册内存从逻辑地址到物理地址的映射表
- QP 状态,存放 QP 对应的元数据信息
- 由 CPU 发起的网络请求条目
当网卡处理能力不及 CPU 时,需控制 CPU 请求速率,避免网络吞吐下降
- CPU 调度
- 多核并发
- 负载均衡
- QP 共享 (会引入时序问题)
- 缓存管理:网卡缓存用于暂存 CPU 发起的网络请求和相应的网络状态信息,其主要缓存 3 类数据
- RDMA 与软件重构
- RDMA 在 Key-Value 系统中的应用: Pilaf, HERD, HydraDB, RFP, C-Hint, FaRM, Nessie
- RDMA 在文件系统中的应用: Octopus, NVFS, Crail
- RDMA 在分布式事务中的应用: DrTM, FaRM, FaSST
- RDMA 的通用性优化
- 网络负载重分派
- 数据备份与持久化
- RDMA 背景介绍
-
Accelerating Redis with RDMA over InfiniBand
- Redis 客户端使用处于 UC 传输类型下的设置为 unsignaled 模式和 inlined 模式的 RDMA Write 操作来传输客户端请求至 Redis 服务器端
- Redis 服务器端使用处于 UD 传输类型下的设置为 inlined 模式的 Send 操作响应客户端的请求
- 当 Redis 启动时,在 HCA 上注册 M 个 Chunk,每个 Chunk 包含 Request Buffer 和 Respond Buffer
-
Introduction to infiniband for end users
- 介绍了 InfiniBand 相关概念,只需阅读 1、4、5 三章即可。笔记地址