资讯详情

资讯详情

052、RDMA over Converged Ethernet (RoCE) 深度解析

052、RDMA over Converged Ethernet (RoCE) 深度解析从一次诡异的丢包说起去年在调一个分布式存储集群,用的Mellanox ConnectX-5网卡,RoCE v2跑在25Gbps链路上。业务层反馈说偶尔出现几十毫秒的延迟抖动,但抓包看TCP层面一切正常。我一开始怀疑是CPU中断亲和性问题,调了半天没效果。后来在网卡硬件计数器里发现了一个关键线索:roce_errors和link_dropped在抖动时刻同时跳变。这才意识到问题出在RoCE的流控机制上——确切说,是PFC(优先级流控)的“死锁”前兆。这个坑让我花了整整三天。今天这篇笔记,就把RoCE从协议栈到调优踩过的坑,一次性说清楚。RoCE到底是个什么玩意儿RoCE全称RDMA over Converged Ethernet,说白了就是把RDMA的传输层(InfiniBand的RC、UC、UD服务类型)封装到以太网帧里。分两个版本:RoCE v1:直接把IB的包封装在以太网帧里,以太网类型字段是0x8915。这玩意儿只能在同一个二层广播域里跑,不能跨子网,现在基本没人用了。RoCE v2:把IB的包封装在UDP里,目标端口号4791。这样就能走三层路由了,但代价是UDP头增加了开销,而且需要网络设备支持ECN(显式拥塞通知)和PFC。
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →