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 三章即可。笔记地址