0
点赞
收藏
分享

微信扫一扫

RDMA网络搭建

慎壹 2023-11-15 阅读 82

建设一个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基础设施上运行。


4. 设备选型

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


5. 配置和优化

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


6. 测试和调优

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


7. 文档和培训

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


8. 安全和合规

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


附: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流量的性能和可靠性。
举报

相关推荐

0 条评论