建设一个RDMA网络,你需要从这几个方面着手考虑:

1. 前期调研

目标和需求

  • 确定网络的规模、性能目标(比如延迟、吞吐量)。
  • 确定应用场景,例如数据中心内部通信、高性能计算或存储访问。

环境评估

  • 分析现有的网络基础设施。
  • 评估与现有网络的兼容性问题。

2. 架构设计

拓扑结构

  • 设计RDMA网络的拓扑结构,考虑到冗余、可扩展性和高可用性。

协议和技术

  • 选择合适的RDMA协议,如RoCE(RDMA over Converged Ethernet)或InfiniBand。
  • 考虑网络虚拟化技术,如VXLAN。

3. 设备选型

网络设备

  • 选择支持RDMA的交换机和路由器。
  • 考虑设备的端口密度、性能参数(如带宽、延迟)。

服务器和存储

  • 确保服务器和存储设备具有RDMA支持。
  • 考虑网络接口卡(NICs),选择支持所需RDMA协议的型号。

4. 配置和优化

网络配置

  • 配置交换机和路由器以支持RDMA流量。
  • 设置适当的QoS策略,以保证RDMA流量的性能。

服务器和存储配置

  • 在服务器上配置RDMA网络接口。
  • 调整操作系统和存储系统的参数,以优化RDMA性能。

5. 测试和调优

  • 进行性能测试,确保网络达到预期的性能指标。
  • 根据测试结果调整配置,优化性能。

6. 文档和培训

  • 编制详细的配置和维护文档。
  • 对相关人员进行RDMA网络操作和维护的培训。

7. 安全和合规

  • 确保RDMA网络符合公司的安全政策和行业标准。

以下是笔者工作中的一个现实案例:

1. 目标和需求

  • 规模: 支持约100台服务器。
  • 性能目标: 实现低延迟(<1微秒)和高吞吐量(>100Gbps)。

2. 环境评估

  • 现有网络: 基于10G Ethernet的传统网络。
  • 兼容性: 需要与现有网络平滑集成。

3. 架构设计

  • 拓扑结构: Clos网络拓扑,提供高度可扩展性和冗余。
  • 协议: 选择RoCEv2,因为它可以在现有的Ethernet基础设施上运行。

RDMA网络搭建_Cisco Nexus

4. 设备选型

  • 交换机: 选择支持100Gbps和RoCEv2的交换机,如Cisco Nexus系列。
  • 服务器: 确保服务器配备支持100Gbps的RDMA兼容网络接口卡(NIC)。
  • 存储系统: 选择支持RDMA的高性能存储系统,确保与服务器的兼容性。

5. 配置和优化

  • 网络配置: 在交换机上启用ECN(显式拥塞通知),配置适当的流控策略。
  • 服务器配置: 在操作系统中配置RDMA NIC,确保最优的网络堆栈设置。

6. 测试和调优

  • 性能测试: 通过模拟高负载情况来测试网络性能,包括延迟和吞吐量。
  • 调优: 根据测试结果调整QoS策略和流控设置,以获得最佳性能。

7. 文档和培训

  • 文档: 编制网络配置、管理和维护的详细文档。
  • 培训: 为IT团队提供RDMA网络技术和故障排除的培训。

8. 安全和合规

  • 安全: 实施网络隔离策略,确保数据安全。
  • 合规性: 确保网络设计符合行业标准和公司政策。

RDMA网络搭建_RDMA_02

附:Cisco Nexus系列交换机RoCEv2配置示例

1. 启用PFC(优先级流量控制)

PFC是RoCEv2的关键要求,它可以防止由于拥塞导致的丢包。你需要为RoCEv2流量选择一个优先级(通常是3或4)并为该优先级启用PFC。

switch(config)# class-map type qos match-any <CLASS_MAP_NAME> 
switch(config-cmap-qos)# match cos <PRIORITY> 
switch(config)# policy-map type qos <POLICY_MAP_NAME>
switch(config-pmap-qos)# class <CLASS_MAP_NAME> 
switch(config-pmap-c-qos)# set qos-group <PRIORITY> 
switch(config)# system qos 
switch(config-sys-qos)# service-policy type qos input <POLICY_MAP_NAME> 
switch(config-sys-qos)# service-policy type qos output <POLICY_MAP_NAME>

2. 配置ECN(显式拥塞通知)

ECN允许网络设备在检测到拥塞时通知发送端,而不是丢弃包。

switch(config)# class-map type network-qos <CLASS_MAP_NAME> 
switch(config-cmap-nqos)# match qos-group <PRIORITY> 
switch(config)# policy-map type network-qos <POLICY_MAP_NAME> 
switch(config-pmap-nqos)# class type network-qos <CLASS_MAP_NAME>
switch(config-pmap-c-nqos)# set dscp 46 
switch(config-pmap-c-nqos)# pause no-drop
switch(config-pmap-c-nqos)# random-detect dscp-based 
switch(config-pmap-c-nqos)# random-detect dscp 46 minimum-threshold 70 maximum-threshold 100 
switch(config)# system qos 
switch(config-sys-qos)# service-policy type network-qos <POLICY_MAP_NAME>

3. 应用配置到端口

最后,应用配置到连接到RDMA设备的端口。

switch(config)# interface ethernet <PORT> 
switch(config-if)# priority-flow-control mode on 
switch(config-if)# priority-flow-control priority <PRIORITY> enable

4. 保存配置

完成配置后,保存配置以确保在重启后仍然生效。

switch(config)# copy running-config startup-config

注意:

  • 确认固件版本:确保交换机运行的固件版本支持RoCEv2。
  • 端口速率:对于RoCEv2,建议使用高速率端口,如40Gbps或100Gbps。
  • 测试和验证:配置完成后,进行充分的测试以验证RDMA流量的性能和可靠性。

面对RDMA,网络工程师该如何进化?

基础知识

  1. 理解 RDMA 的基本概念:学习 RDMA 的原理,包括其如何允许在网络设备之间直接交换数据,绕过操作系统内核,减少延迟和CPU负载。
  2. 网络基础:加强对传统网络技术(如 TCP/IP)的理解,这有助于理解 RDMA 如何与现有网络架构相比较。

技术深入

  1. RDMA 协议和标准:熟悉 RDMA 相关的协议和标准,如 InfiniBand、RoCE(RDMA over Converged Ethernet)、iWARP(Internet Wide Area RDMA Protocol)。
  2. 硬件要求:了解支持 RDMA 的网络适配器(RNIC)、交换机和存储设备等硬件组件。

实践技能

  1. 配置和优化:学习如何配置 RDMA 环境,包括硬件设置、网络配置以及性能优化。
  2. 故障排除:掌握诊断和解决 RDMA 网络中常见问题的能力。

高级应用

  1. 软件定义网络(SDN):了解 SDN 如何与 RDMA 技术结合,为数据中心和云计算提供更高效的网络解决方案。
  2. 高性能计算(HPC)和大数据:学习 RDMA 在高性能计算和大数据环境中的应用,理解其对数据处理速度的影响。

持续学习

  1. 跟进最新进展:网络技术在不断发展,持续关注 RDMA 和相关技术的最新研究和进展。
  2. 参与社区和论坛:加入专业社区,如 RDMA 相关的论坛或社交媒体群组,与其他专业人士交流和学习。

学习资源

  1. 专业书籍和教程:阅读有关 RDMA 和网络技术的书籍、在线教程和文档。
  2. 参加培训和研讨会:参加专业的培训课程和研讨会,与行业专家互动。