暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

为什么用RocE替换掉了infiniband

1838

关于内联网络问题

最近遇到多次老型号一体机网络相关故障,大部分都和infiniband有关。处理这类型网络故障,大部分都是OS的rds通讯相关内核的bug引起,或者交换机固件的bug,现场处置其实最好的办法就是重启大法,尽快将内核以及服务干净的重置,大部分都可以恢复。


因为一般来说,对内核级的网络故障诊断的人才,是非常稀少的,更别说,你在遇到一个数据库故障的时候,能够给你快速找到熟悉infiniband网络高手。所以,最好是恢复以后,再进行深入分析和诊断,解决隐患。


凡事究其过去未来现在,是王探长办案的一贯准则,于是搜索到在油tube看到了个

Why Roce replaced infiniband的视频,顺便给大家扩展解读下。

视频link:https://www.***油tube***.com/watch?v=f2jjZUkY_K8&t=66

         总所周知,X8M开始,一体机就已经不在采用infiniband网络


为什么过去Exadata要采用infiniband?


 InfiniBand 支持多种协议,包括通过 InfiniBand 网络结构传输几乎任何非 InfiniBand 协议关联的数据包。Oracle RAC除了infiniband上使用RDS,zero data loss的协议实现外,TCP/IP(IPonIB)也是cluster的关键协议。


它比传统以太网更低的延迟, InfiniBand 的超低延迟(端到端测量延迟为 1µs)。可实现 40Gb/s 的吞吐量。


其实生产中的RAC的系统的cache fusion其实很难击穿40GB的心跳带宽。常见的客户生产,能有500MB/s就是非常高场景了。大部分核心系统,在200MB/s以内,当然可能和应用系统的设计也有关系。 


另外它支持RDMA,一般的应用程序也可以在不引起内核特权模式切换的情况下发送和接收消息。CPU不参与消息传递。每个网络消息传输都由通道适配器内的硬件 DMA 传输引擎处理。这减少了计算节点CPU上的“抖动”,因为它们不忙于协调网络传输。这增加了处理业务数据的计算能力。InfiniBand 通过在每个结构跳跃处执行循环冗余校验 (CRC) 并在整个结构中端到端确保数据正确传输,从而实现最高级别的数据完整性。


     RDMA是Exadata的关键


远程直接内存访问( RDMA ) 是从一台计算机的内存直接访问另一台计算机的内存,而不涉及任何一方的操作系统。这种高吞吐量、低延迟的网络,在大规模并行计算机集群中特别有用。Oracle RAC的sharing everything的架构非常适配这种网络架构。RAC的集群稳定性,一致性,cache fusion的低延迟和高吞吐量都决定了Oracle RAC数据库高性能,可靠性,可扩展性和弹性。过去,我们采用低质量以太网做心跳的RAC,大家都觉得RAC就只有高可用性,性能=gc contention。造成了对RAC的固有老印象。


常见的RDMA实现有RDMA over Converged Ethernet (RoCE), InfiniBand, Omni-Path(intel) 和iWARP. 


 一体机早期选择了技术领先的infiniband,其实是当时唯一的选择。

但是技术是发展的,世界Top 500的超大型计算集群,采用的网络技术的发展图如下:

可以看出inifiband始终在波动,在15年到达了一个高峰,而25GB的以太网技术则大幅度提升。这里并没有包含100GB, 甚至200GB的以太网技术统计。

虽然RAC的和这些超大型科学集群比,只是一个“微小”应用,但它对网络的需求和这些集群也类似,追求高质量,高带宽,低延迟,0丢失。


My thought

如果网络具有有这4要素,那我要搞啥分区可用性,容错性,  CAP,最终一致性呢?


So我就要大型cluster具有Cache fusion超强一致性,分布式事务完美一致性,内存级恢复...

其它概念

Oracle Exadata 使用智能数据库协议(iDB) 在数据库节点和存储单元节点之间传输数据。它在数据库内核中实现,作为功能传送架构 ,透明地将数据库操作映射到 Exadata 操作。iDB 可用于将 SQL 操作从 Database Node 转移到 Cell 节点,并从 Cell Node 获取返回的查询结果或完整的数据块。


iDB 建立在可靠数据报套接字( RDS v3) 协议之上,并运行在 InfiniBand ZDP(零丢失零拷贝数据报协议)之上。ZDP 的目标是消除不必要的块复制。


RDS 基于 Socket API,具有低开销、低延迟、高带宽。Exadata 单元节点可以使用远程直接内存访问(RDMA) 发送/接收大型传输。


而套接字直接协议( SDP ) 是一种与传输无关的协议,用于支持远程直接内存访问(RDMA) 网络结构上的流套接字。



为什么一体机放弃了infiniband?


干货:因为Roce (在聚合以太网络上实现RDMA)技术已经追上infiniband,而且更加通用和经济。


RDMA over Converged Ethernet ( RoCE ) 和

InfiniBand over Ethernet ( IBoE ) 都是一种网络协议,允许通过网络远程直接内存访问(RDMA) 。


RoCE 定义了如何通过以太网执行 RDMA,而InfiniBand架构规范定义了如何通过 InfiniBand 网络执行 RDMA。


10年以前,Infiniband 提供比以太网更好的延迟和带宽。然而,该行业已经完成以太网方面的转型期。最早10GbE 试图在延迟和带宽方面与 Infiniband 相匹配。Infiniband 产品提供比 10GbE 更高的带宽,例如:40GbE,甚至56。所以过去在带宽方面仍然有很好的领先优势。 

下图为10年以前的文章,数落了诸多RoCE不足,



但后来IB 产品通常具有的几乎所有功能现在都出现在推出的/最近的以太网产品中。而且以太网的带宽从10,增加到25,目前一体机采用的交换机,带宽 到100Gb。


1

其实带宽并不是关键,之前说到“很难击穿40GB”,何况100GB。其实infiniband也推出了100GB交换机。






从下图可以看出RoCE是基于IP网络,Inifiband则是它专有的InfiniBand 网络。而且RAC从诞生之初就是基于IP网络架构的设计,相关技术更加成熟,而且RoCE支持所有一体机和RAC对RDMA的所有优化,诸如0数据库丢失,消息优先级,流控,RDMA(SDP)。而且从成本上考虑,以太网技术更有经济优势。

RoCE业界标准更加统一和成熟,比如一体机采用的是Mellanox的RoCR卡和cisco的RoCE交换机。


RAC cluster有很多组件依然采用IP协议,所以在infiniband上使用IPoIB,IPoIB是一种上层协议,它实现了IBA网络接口 传输 它通过InfiniBand传输IP数据报的协议。使得任何使用标准Linux网络接口的应用程序或内核模块  都可以使用IBA无需修改。 但运行IPoIB的应用程序仍将调用OS内核中的TCP/IP调用栈。而如果采用RoCE,则减少了一层的封装。

  


下图可以看出一体机的硬件发展,到X8M。X9M和X8M差异不大。



Infiniband troubleshooting体会



另外不得不说就是,infiniband的实际使用体会。网络这种设备,和存储,主机的需求不一样, 心跳网络设备需要的是一次部署,长期稳定运行,尽量减少维护带来的影响。它不像存储要考虑rebalence,要扩容, 主机要考虑CPU,内存,内核维护各种层面的东西。


但infinband给人的感觉长期以来就是trouble shooting困难。无论是一体机和用户自己采购infiniband设备搭建的网络,一旦出现故障,往往都无法在短时间内分析出原因。而且也找不到任何办法来重置内核服务(也可能水平有限),DBA平时既不开发内核,也不维护内核,其实DBA就需要最简单的方法维护网络的稳定。


下图为infiniband的communication stack


我记得曾经客户基于infiniband自建的RAC,在高可用测试中,一旦拔掉IB线,再插回去,即使可以ping通,但RAC就是无论如何也无法重启成功。必须通过reboot主机才能恢复。然后,找不到任何专业的网络技术支持。


而一体机bug修复list中针对infiniband的bug,历年来大家也见过不少,尤其是冠以EX开头的critical 问题。而且O记还有一本白皮书《infiniband troubleshooting》,为故障诊断出白皮书,嘿嘿,不多见。


Solution:

Reset, upgrade

Reset, upgrade

Reset, upgrade

....

 


而它在general system中IB的问题也不少见,比如

RDMA services fail to start after kernel update

Infiniband card fails to initialize after kernel update  

Solution:

Reset, upgrade

Reset, upgrade

Reset, upgrade

....

O记的研发为何回到了以太网呢,你懂的...


云技术需要以太网

Cloud Day

这是一个非常重要的原因。首先infiniband和Roce的数据包无法互通。

如果要把一体机部署到基于以太网的公有云or私有云上,那么肯定是采用RoCE是一种更好的选择!


最后,总结

Summary


在新一代数据中心建设中,还有其它狠角色,比如

NVME

PMEM


且听王探长后续深入分解。



文章转载自西区O记重案实录,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论