0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一键部署无损网络:EasyRoCE助力分布式存储效能革命

星融元Asterfusion 2025-08-04 11:34 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

传统的集中式存储架构已经难以支撑海量数据的高并发访问和实时处理需求,分布式存储凭借其卓越的扩展性和灵活性,正迅速成为构建现代化数据基础设施的核心选择。然而,分布式存储的性能瓶颈往往在于网络。如何构建一个高带宽、超低时延、零丢包的无损网络,是释放分布式存储全部潜力、赋能企业关键业务(如实时数据库、AI训练、高性能计算)的关键挑战。

本文将深入探讨基于RoCEv2技术构建高性能分布式存储网络的最佳实践,帮助企业驾驭数据洪流,赢得市场先机。

驾驭数据洪流:构建媲美InfiniBand的高性能RoCE分布式存储网络

传统的集中式存储(SAN/NAS)虽然成熟稳定,但其扩展性瓶颈难以支撑海量数据存储和高并发访问的洪流。分布式存储,凭借其弹性扩展(可达上千节点、PB/EB级容量)和线性增长的性能优势,正成为构建现代化数据基础设施的基石。

然而,分布式存储的性能潜力能否充分发挥,网络是核心命脉。传统的TCP/IP以太网在分布式I/O场景下会消耗大量CPU资源,成为性能瓶颈。进入全闪存时代,对网络带宽和时延的要求更是达到了极致。

wKgZO2iQJ-6ADjArAACr614-FP0567.pngwKgZPGiQKCyAMHyJAAEHXBzd3hE022.png

为何选择RoCEv2?性能与成本的最优解

为了解决分布式存储的长I/O路径和TCP性能瓶颈,高带宽、超低时延的RDMA(远程直接内存访问)技术已成为业界共识。RDMA允许服务器网卡直接读写对方内存,绕过操作系统内核,极大提升效率。

wKgZPGiQKH2ABjNCAACMPoEvSK8047.png

目前RDMA网络主要有两大阵营:

  1. InfiniBand (IB):性能优异,但需要专用网卡、交换机和线缆,部署和管理成本高昂。
  2. RoCEv2 (RDMA over Converged Ethernet v2):基于开放的标准以太网传输IB流量,充分利用现有以太网生态,部署成本优势显著。

RoCEv2的核心价值在于:

  • 媲美IB的性能: 采用经过优化的RoCE网络设备(如星融元CX-N系列交换机),可实现端到端的超低时延(<500ns)和高吞吐,性能表现足以替代甚至局部超越IB(见下图实测数据)。
wKgZO2iQKL-AbZgAAAFVPqnNESQ932.png
  • 显著的成本优势: 复用标准以太网硬件(网卡、交换机、线缆),大幅降低初始投入和运维复杂度。
  • 开放生态: 基于成熟的以太网标准,兼容性强,技术门槛相对较低。

构建高性能分布式存储网络:架构与选型

组网架构:分离与冗余是关键

wKgZPGiQKOGABHhfAAJF54XAzkQ210.png

计算存储分离: 推荐部署两张独立的Spine-Leaf物理网络:

  • 存储后端网: 专用于分布式存储集群内部通信(如多副本同步、数据重建),确保快速无阻塞。
  • 存储前端网 + 业务网: 承载应用访问存储的流量及其他业务流量。

高可靠接入: 存储节点至关重要,应采用双归或多归 (Multi-homing) 方式接入网络,避免单点故障。

wKgZPGiQKPuAFiIlAADV-nIZYc8748.png

网络硬件选型:面向未来,满足严苛要求

  • 高密度高速接口: 100G/200G/400G端口,减少设备数量,简化架构。
  • 超低时延与无损特性: 端口转发时延<500ns,原生支持RoCEv2及关键无损网络特性(PFC流量控制、ECN显式拥塞通知)。
  • 弹性扩展能力: 全盒式设备,支持构建超大规模(数千节点)、超扁平网络(任意两点≤3跳) 的存储/计算集群。
  • 开放性与自动化: 开放的软件架构和API,为未来自动化运维奠定基础。

RoCE无损网络配置与管理:从手动到自动化

RoCE网络要发挥媲美IB的性能,关键在于“无损”配置(Zero Loss)。这涉及精细化的PFC、ECN、缓冲区等参数调整,确保高优先级存储流量无阻塞、零丢包、低时延传输。

传统方式:手动配置(复杂但精细)

需要在每台交换机和服务器网卡上进行一系列复杂配置,包括:

  • 启用RoCEv2模式。
  • 划分流量优先级(DSCP/PCP)。
  • 在指定队列启用PFC(流量控制)和ECN/DcqCN(拥塞管理)。
  • 精细调整缓冲区大小、PFC触发门限、ECN标记门限等参数。
  • 配置QoS策略(DiffServ Map, Class Map, Policy Map)并绑定到接口。

#确保服务器网卡工作在 RoCEv2 模式下 #为业务流量配置 PCP 或 DSCP,并启用 ECN。 #设置网卡RDMA CM的工作模式 [root@server ~]# cma_roce_mode -d mlx5_0 -p 1 -m #设置网卡的优先级类型为DSCP [root@server ~]# mlnx_qos -i enp1s0f0 –trust=dscp DCBX mode: OS controlled Priority trust state: dscp #在队列3上开启PFC [root@server ~]# mlnx_qos -i enp1s0f0 -f 0,0,0,1,0,0,0,0 #在队列3上开启DCQCN [root@server ~]# echo 1 > /sys/class/net/enp1s0f0/ecn/roce_np/enable/3 [root@server ~]# echo 1 > /sys/class/net/enp1s0f0/ecn/roce_rp/enable/3 #设置CNP DSCP [root@server ~]# echo 48 > #在交换机端口配置以启用 PFC 和 ECN 功能并指定队列 #在交换机的指定队列(与服务器上的队列匹配)上启用 PFC 和 ECN #调整缓冲区和阈值 # 设置PFC门限值 sonic(config)# buffer-profile pg_lossless_100000_100m_profile sonic(config-buffer-profile-pg_lossless_100000_100m_profile)# mode lossless dynamic -2 size 1518 xon 0 xoff 46496 xon-offset 13440 sonic(config-buffer-profile-pg_lossless_100000_100m_profile)# exit # 在3、4队列开启PFC功能(AsterNOS的PFC功能默认使能3、4队列,无需配置) sonic(config)# priority-flow-control enable 3 sonic(config)# priority-flow-control enable 4 sonic(config)# exit # 设置ECN门限值 sonic(config)# wred roce-ecn sonic(config-wred-roce-ecn)# mode ecn gmin 15360 gmax 750000 gprobability 10 sonic(config-wred-roce-ecn)# exit # 配置Diffserv map sonic(config)# diffserv-map type ip-dscp roce-dmap sonic(config-diffservmap-roce-dmap)# ip-dscp 48 cos 6 # 配置Class map sonic(config)# class-map roce-cmap sonic(config-cmap-roce-cmap)# match cos 3 4 sonic(config-cmap-roce-cmap)# exit # 配置Policy map sonic(config)# policy-map roce-pmap sonic(config-pmap-roce-pmap )# class roce-cmap sonic(config-pmap-c)# wred roce-ecn sonic(config-pmap-c)# priority-group-buffer pg_lossless_100000_100m_profile sonic(config-pmap-c)# exit sonic(config-pmap-roce-pmap )# set cos dscp diffserv roce-dmap sonic(config-pmap-roce-pmap )# exit # 进入以太网接口视图,绑定策略,将RoCE网络配置在接口上使能 sonic(config)# interface ethernet 0/0 sonic(config-if-0/120)# service-policy roce-pmap

创新之道:自动化配置(高效且可靠 - EasyRoCE方案)

wKgZO2iQKVqAC4CEAADt6w7PL3s429.png

面对手动配置的挑战,EasyRoCE Toolkit 提供了革命性的解决方案,让RoCE部署和管理变得前所未有的简单高效:

  • 1行命令启用RoCE: 业务级命令行封装,基于最佳实践模板一键完成复杂配置。
  • 开箱即用的可视化监控: 内置RoCE Exporter容器,无缝对接Prometheus/Grafana,实时监控关键RoCE指标(时延、丢包、PFC状态、ECN标记等),网络健康一目了然。
  • 集中配置视图: 统一展示全网RoCE相关配置,简化排障流程,提升运维效率。
wKgZPGiQKX2AKkcbAAJu-fn6TM4451.png
  • 免费开放: 该工具套件对星融元签约客户免费提供。

性能验证:科学测试,数据说话

部署完成后,严谨的性能测试至关重要。

关键指标

  • IO时延 (Latency): 单次IO请求的响应时间(越低越好)。
  • IOPS: 每秒处理的IO请求数(越高越好)。
  • 吞吐量 (Throughput): 单位时间传输的数据量(如MB/s, GB/s)。
  • 测试模式: 需区分顺序IO(连续大块数据,高吞吐场景)和随机IO(小块分散数据,高IOPS场景,如数据库),通常随机写是最严苛的负载。读写比例(如70%读/30%写)和IO大小(4K小IO, 64K/1M大IO)需模拟真实业务。

常用测试工具

  • 网络层: iperf (带宽), ib_read/write_bw (RDMA带宽), ib_read/write_lat (RDMA时延)。
  • 存储系统层: fio (Flexible I/O Tester) - 存储性能测试的瑞士军刀,可高度定制化模拟各种负载。
  • 业务层: 如数据库用swingbench/hammerdb,对象存储用cosbench。

FIO测试参数解读 (示例:模拟OLTP小IO负载)

wKgZPGiQKc-Ab3z2AAHoavpiFz8826.png

测试时延时使用的是1v1的方式,测试存储系统IOPS时分别用1v1、2v1的方式进行压测。目标是测试服务器在假设的小IO业务场景中(100% 随机,70% 读,30% 写,IO size 4K)的性能表现。

[root@server ~]# fio \ -filename=/root/randrw_70read_4k.fio \ -direct=1 \ -iodepth 1 \ -thread \ -rw=randrw \ -rwmixread=70 \ -ioengine=psync \ -bs=4k \ -size=5G \ -numjobs=8 \ -runtime=300 \ -group_reporting \ -name=randrw_70read_4k_local `-filename=/root/randrw_70read_4k.fio` 支持文件、裸盘、RBD image。该参数可以同时制定多个设备或文件,格式为:-filename=/dev/vdc:/dev/vdd(以冒号分割)。 `-direct=1` direct即使用直接写入,绕过操作系统的page cache。 `-iodepth=1` iodepth是设置IO队列深度,即单线程中一次给系统多少IO请求。如果使用同步方式,单线程中iodepth总是1;如果是异步方式,就可以提高iodepth,一次提交一批IO,使得底层IO调度算法可以进行合并操作,一般设置为32或64。 `-thread` fio默认是通过fork创建多个job,即多进程方式,如果指定thread,就是用POSIX的thread方式创建多个job,即使用pthread_create()方式创建线程。 `-rw=randrw` 设置读写模式,包括:write(顺序写)、read(顺序读)、rw(顺序读写)、randwrite(随机写)、randread(随机读)、randrw(随机读写)。 `-rwmixread=70` 设置读写IO的混合比例,在这个测试中,读占总IO的70%,写IO占比30%。 `-ioengine=psync` 设置fio下发IO的方式,本次测试使用的IO引擎为psync。 `-bs=4k` bs即block size(块大小),是指每个IO的数据大小 `-size=5g` 测试总数据量,该参数和runtime会同时限制fio的运行,任何一个目标先达到,fio都会终止运行。在做性能测试时,尽量设置大点,比如设置2g、5g、10g或者更大,如果基于文件系统测试,则需要需要小于4g。 `-numjobs=8` 本次作业同时进行测试的线程或进程数,线程还是进程由前面提到的thread参数控制。 `-runtime=300` 测试总时长,单位是s。和size一起控制fio的运行时长,在做一般性性能测试的时候,该时间也尽量设置长点,比如5分钟、10分钟。 `-group_reporting` 多个jobs测试的时候,测试结果默认是单独分开的,加上这个参数,会将所有jobs的测试结果汇总起来。 `-name=randrw_70read_4k_local` 本次测试作业的名称。

成功实践:中国TOP3公有云的信任之选

需要进行存储区域扩容,来满足政府、企业客户对云服务更高网络质量(超低时延、零丢包)和可靠性的严苛要求,还需保障供应链稳定和获得专业及时的技术支持。

该方案部署 64 x 200GE 高性能数据中心交换机,用于提供大容量、超低时延转发,构建基于RoCEv2的全无损以太网络,通过PFC+ECN+DCBX技术组合,实现与IB媲美的零丢包、超低时延传输保障。利用该设备的原生开放特性,为未来自动化运维提供基础。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 无损
    +关注

    关注

    0

    文章

    7

    浏览量

    9582
  • 分布式存储
    +关注

    关注

    4

    文章

    182

    浏览量

    20107
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    移动网络网元分布式部署的优势及注意事项

    移动数据业务快速发展,移动宽带网络的投入成本和收入问题,对网络扁平化趋势下网元分布式部署提出了定要求,本文在研究移动
    的头像 发表于 11-06 08:12 8754次阅读
    移动<b class='flag-5'>网络</b>网元<b class='flag-5'>分布式</b><b class='flag-5'>部署</b>的优势及注意事项

    分布式软件系统

    的。 --------------- 分布式数据库系统是由若干个站集合而成。这些站又称为节点,它们在通讯网络中联接在起,每个节点都是个独立的数据库系统,它们都拥有各自的数据库、中央
    发表于 07-22 14:53

    使用分布式I/O进行实时部署系统的设计

    这篇文章讨论了使用分布式I/O进行实时部署系统的设计。美国国家仪器公司推出了NI 9144扩展机箱,用于确定性以太网中的NI CompactRIO和可编程自动化控制器(PAC)系统。用于C系列模块
    发表于 03-12 17:47

    如何在集群部署时实现分布式session?

    集群部署时的分布式 session 如何实现?
    发表于 07-17 06:57

    HarmonyOS应用开发-分布式任务调度

    什么 如何创建个HarmonyOSDemo Project 如何构建个HAP并且将其部署到智慧屏真机 通过此示例应用体验如何使用分布式任务调度2. 您需要什么硬件要求 操作系统:W
    发表于 09-18 09:21

    分布式KVM坐席拼控系统解决方案

    ,形成个信息共享的云管理平台。 视通科技经过多年来对技术的深入研究和对用户使用习惯的积累,推出了AS-ADS 4K分布式KVM坐席拼控解决方案,本系统是套技术先进、功能完善、性能稳定、安全可靠、操作
    发表于 02-26 15:15

    如何高效完成HarmonyOS分布式应用测试?

    , getText等。② 提供远程和本地描述方式致的分布式持测试API,仅参数不同,使用简单方便。通过UIDriver来实现。③ 分布式UI测试框架集成于IDE,开发者一键
    发表于 12-13 18:07

    深度解读分布式存储技术之分布式剪枝系统

    分布式文件系统存储目标以非结构化数据为主,但在实际应用中,存在大量的结构化和半结构化的数据存储需求。分布式键值系统是种有别于我们所熟悉的
    发表于 10-27 09:25 2154次阅读

    什么是分布式存储技术?有哪些应用?

    分布式存储概念 与目前常见的集中式存储技术不同,分布式存储技术并不是将数据存储在某个或多个特定的
    的头像 发表于 11-17 09:26 2.4w次阅读
    什么是<b class='flag-5'>分布式</b><b class='flag-5'>存储</b>技术?有哪些应用?

    浅谈分布式存储的元数据服务设计

    般来说,我们根据存储的访问接口以及应用场景,把分布式存储分为三种类型,包括分布式存储
    发表于 05-31 07:36 5362次阅读

    文知道什么是分布式存储

    分布式存储简单的来说,就是将数据分散存储到多个存储服务器上,并将这些分散的存储资源构成个虚拟的
    发表于 08-27 17:12 5202次阅读
    <b class='flag-5'>一</b>文知道什么是<b class='flag-5'>分布式</b><b class='flag-5'>存储</b>

    分布式存储的7个特征

    什么是分布式存储呢?如果存储系统,不管是对象、块、文件、kv、log、olap、oltp,只要对所管理的数据做了Partitioning&Replication,不管姿势对不对,其
    发表于 07-18 14:17 1680次阅读

    8K无损压缩分布式系统,开创分布式新时代!

    近年来,分布式产品可谓遍地开花,很多厂商络绎不绝的在AV over IP化下足功夫,行业各类分布式产品层出不穷,当大家还以4K产品引以为傲的时候,近日讯维率先推出最新分布式产品:8
    的头像 发表于 08-24 10:28 1212次阅读
    8K<b class='flag-5'>无损</b>压缩<b class='flag-5'>分布式</b>系统,开创<b class='flag-5'>分布式</b>新时代!

    CentOS7中使用一键脚本部署Librenms网络监控系统

    今天在CentOS7下使用一键脚本部署Librenms网络监控系统。
    的头像 发表于 09-14 09:27 2149次阅读
    CentOS7中使用<b class='flag-5'>一键</b>脚本<b class='flag-5'>部署</b>Librenms<b class='flag-5'>网络</b>监控系统

    WDS分布式存储系统软件助力电信工程海量数据存储项目

    WDS分布式存储系统软件助力电信工程海量数据存储项目
    的头像 发表于 11-11 09:59 752次阅读
    WDS<b class='flag-5'>分布式</b><b class='flag-5'>存储</b>系统软件<b class='flag-5'>助力</b>电信工程海量数据<b class='flag-5'>存储</b>项目