
数据库一体机给人的第一印象就是高性能,对其技术架构有所了解的同学们又会很自然地联想到,『这里面InfiniBand互联网络发挥了重大作用』,这是合理的逻辑,准确地说,数据库一体机性能优势是由多方面因素共同成就的,包括IB、RDMA等,但不可否认,IB交换机在这其中确实起到了重要的作用。
在我们公众号另一篇文章《深挖技术 | 低调而奢华的计算存储互联技术-RDMA》中详细讲述了RDMA技术的前世今身,包括应用场景、Infiniband及同类技术协议的原理及优劣性对比,有兴趣的同学可以了解下,这里就不缀述了。
今天我们讨论的焦点在于,Infiniband是数据库一体机的唯一选择吗?是否有成熟可靠、性价比更高的解决方案?
关键词:RoCE、RDMA、InfiniBand、无损网络、流量控制、拥塞控制、RoCE架构一体机实践案例
诸事利弊相生共存
首先,毋庸置疑,IB交换机+RDMA技术,确实是现阶段诸如数据库一体机架构的最佳选择,然大道五十,天衍四九,凡事总有一些不完美的地方,倾听一下来自市场侧的反馈:
# 01
市场玩家太少
Mellanox近年来在IB领域几乎一统天下,其它市场份额逐步萎缩,对用户而言,没有太多的选择空间,价格居高不下;对厂商而言,没有对手意味缺乏竞争,产品核心能力升级慢。
# 02
扩展性受限
现有的IB交换机,如果按端口数量选择产品,更多的用户选择是36端口,再往上产品的端口数量与价格就超比例上升了,普遍情况36端口基本够用,但对于分布式架构而言,这个端口数量就显得有点尴尬。尽管可以采用级联技术进行扩展,但为了尽可能提升速度而显得单薄的协议层及可管理能力,又大大制约了大规模组网灵活性,难免会形成架构孤岛。
# 03
带宽非唯一
通讯速率,当然是越快越好,天玑现阶段PBBdatag 一体机单一节点均配置两块双100Gbps端口IB卡,满速情况下主机需要16通道PCIE4槽位,读写对端则需要一定规模的Nvme闪存卡才能实现性能匹配,真实业务环境中并无太多业务场景会在单一端对端的通讯中充分利用该带宽速率,更多方式利用分布式的架构去平摊南北向的流量,简而言一,对接受调查的大部分用户而言,是可以牺牲部分带宽来换取其它更具性价比特性。
# 04
故障排查难
在以往的案例中,最让人头疼的莫过于IB交换机的故障,IB交换机的管理功能单一,较传统的网络设备,不论是命令行还是监控体系,还是有所欠缺的,IB交换机一旦发生设备层面的疑难杂症,最后往往是重启、微码升级、更换这三把斧。
# 05
国产化鸿沟
资本市场上,2020年4月份英伟达公司收购了以色列迈络斯公司,以目前国内的技术储备及芯片生产能力,短期内无法自研出IB交换机及HCA主机通道卡。
IB交换机是不可替代的吗?
那么问题来了,有没有这样一种可替代的解决方案,能够在传统架构下充分发挥RDMA协议的优势,又能够适当弥补上文中所述不足,答案当然是肯定的。那就是在以太网上运行RDMA协议,即RoCE(RDMA over Coverage Ethernet)。
让我们的从几个角度来先初步论证一下其可行性:
如何基于传统网络设备,实现无损传输
在讨论之前,先了解一下无损网络,无损网络是一个宽泛的概念,其旨在解决新架构环境、新业务模式下数据中心的网络流量暴增所带宽的时延、丢包等一系列问题,拥塞意味着要丢包,丢包意味着重传,重传意味着时延的上升,大规模持续的丢包必然会造成网络状况持续恶化,因此需求通过网络层面的算法和技术,实现零丢包、低时延和高吞吐的网络性能。IB交换机就是最典型的无损交换机,这在《深挖技术 | 低调而奢华的计算存储互联技术-RDMA》一文中已提及,但RoCE基于以太网络实现,需要依靠可配置的流控及拥塞控制技术去实现,这方面我们从技术层面深入讨论一下:
理想状态下,我们期望数据库一体机内部通讯的网络收敛比能够达到1:1,即满速情况下,计算侧的读写带宽与存储侧的出口带宽及端口缓存等能够基本达到一致,但现实情况下,这种假设不成立,总有不对称的极端读写场景,不管是存储侧还是计算侧。对于这类常见的网络情况,需要从技术及方案设计两方面角度去规避:
技术角度:拥塞控制(congestion Control)及流控技术(Flow Control)
要避免丢包及重传,需要通过网络层面拥塞控制和流量控制技术实现,拥塞控制和流控这两个概念很容易混淆,流控的目标是避免产生拥塞,如在马路上,采用红绿灯技术这是为了控制流量,避免无序造成堵车,拥塞控制用于发生交通堵塞或即将发生堵塞的疏导机制,如暂停周边路口的单向车流等,流量控制作用于端对端的,拥塞控制是全局性的。

流量控制

拥寒控制
拥塞控制
当前拥塞控制的技术原理有慢开始&拥塞避免及快重传&快恢复,大家有兴趣可以深入了解一下,技术原理并不复杂,比如通过端口缓冲区门限监测来判断是否即将拥塞,并通过在TCP头部嵌入拥塞位来告诉发送端发生拥塞了,发送端定量降低发送速率,从而实现拥塞的快速缓解;又或者在发现包确认未返回后进行二次确认,如果多次二次确认未返回则认为可能产生拥塞,立即停止后续包的发送并立刻重传丢失包,避免失序包大量重传(Go-Back-N)等技术实现方式。常见的技术包括了ECN、BECN、FECN、QCN等,实际上,这些技术都已经比较成熟,对于数据库一体机而言内部通讯网络而言,数据流不复杂且多数可预测,所以不需要追求过于复杂的拥塞控制机制,避免提升运维复杂度,经过我们在实验室及真实用户环境的验证,对于数据库一体机而言,采用ECN即可很好地实现拥塞控制。

当网络中发生拥塞时,交换机会在在TCP/IP包头中加入ECN拥塞标记,带有ECN标记的数据包被传播到接收方的网卡上。接收方网卡创建一个CNP并把它发送给ECN所标记的数据包的发送方。当CNP被发送方网卡收到时,它会基于所携带算法来降低指定目标的传输速率。
流量控制
拥塞发生或即将发生时,不可避免造成性能抖动,此时,对于重负载的核心数据库业务而言,任何抖动都会造成不可预计的后果,因此,只有拥塞控制机制的网络原则上还是有损网络,需要引入诸如Global Pause或PFC等流量控制技术。
Global Pause:针对端口级别,一旦接收方发现接收队列深度超过某个阀值时,向前端端口发送XOFF Pause Frame,前时端口暂时发送,缓存数据至缓存区,当缓存区达到门限时,再逐级向上反压,则发送端暂停该端口发送,直到收到XON消息或超时,该方式对仅运行单一数据库的数据库一体机,毕竟计算节点之间是公平的,只有DB访问IO数据流,无需区分高低优先级,这种情况下是较适用的,毕竟机制越简单,架构越可靠。
PFC(Priority-based Flow Control):但更多的用户会在一套数据库一体机云架构中,运行多个数据库,尤其对于天玑的分区数据库一体机PBDATA-K而言,可用于整合多个中小型数据库,且不仅仅有数据库的正常IO数据流,还有诸如备份、CDM等其它非业务数据流,此时的流控技术就需要能够区分核心与非核心、生产与非生产,对于不同的数据流,保证不同的优先级,在发生拥塞时,优先保证核心及生产数据流实现无损通讯、暂停其它非生产数据流,这就需要采用PFC。他能够在一个端口区分8个不同优先级的逻辑通道 ,为每个通道定义不同的缓存区队列,对定不同类型的数据流,在接收端及发送端指定每种数据流的通道及优先级,从而实现不同数据流的流控。

方案设计角度:量化的数据库一体机设计方案
不管是流控技术还是拥塞控制技术,都是事中及事后的技术处理弥补机制,所谓上兵伐谋,其下攻城,架构层面能够解决的问题,应首先在事前的架构设计阶段规避。
对于用户而言,核心业务系统数据库的建设至关重要,不单纯是产品配置层面的解决方案,还需要与业务需求紧密结合,天玑解决方案部门提供一定化的量身定制的解决方案设计,而基于RoCE架构的数据库一体机设计,我们期望通过以下几方面的手段及原则,统筹方案设计,从架构容量设计规避存在的拥塞风险:
数据库业务负载的深度分析及模拟;
系统容量及性能的精确评估;
整体架构高可用性、冗余性;
不单纯追求国产化、而应着重考虑架构后续的平滑演进。
基于RoCE架构的天玑数据库一体机
综上所述,可以证明,数据库一体机采用RoCE架构技术上是完全可行的,但需要经过专业的、全面的解决方案评估,这也与天玑公司的核心产品及服务理念所匹配。
天玑科技数据库一体机PBDATA、分区数据库一体机PBdata-K在国内首先采用了基于RoCE的以太网交换机作为内部交换网络,实现了全体系的国产化,并在真实业务环境中率先落地,表现出卓越的性能及稳定性。

图丨天玑基于RoCE协议国产化数据库一体机物理架构

图丨天玑基于RoCE协议国产化数据库一体机逻辑架构

图丨真实生产案例,承载省级政务类业务数据库

上海天玑数据技术有限公司是以大数据、云计算为核心的高科技创新企业。公司紧扣国家未来信息化战略和行业信息化发展需求,坚持专业化和产业化的发展方向,以“创新推动发展”为用户提供专业化解决方案。
业务联系电话:400-822-5030
网址:http://www.dnt.com.cn
地址:上海市闵行区田林路1016号科技绿洲三期6号楼









