分布式存储 ZBS 的 RoCE 技术支持与大数据应用场景性能评测

作者:深耕行业的 SmartX 金融团队 闫海涛

在《解决 SAN 交换机“卡脖子”并升级存储架构?一文解析 RoCE 与相关存储方案趋势》文章中,我们分析了如何利用支持 RoCE 技术的分布式存储,同步实现 IT 基础架构的信创转型与架构升级,并简单介绍了 SmartX 分布式存储 ZBS 对 RoCE 的支持能力。

本文,我们将进一步解读 ZBS 如何支持 RoCE,同时为读者提供启用 NVMe over RDMA(RoCE)接入协议的 ZBS 在实验室环境和业务场景下的真实性能数据,并与 iSCSI、NVMe over TCP 协议场景进行对比,帮助读者直观了解 RoCE 技术的成熟性与生产环境可应用性。

ZBS 如何支持 RoCE

SmartX 分布式存储 ZBS 提供 2 种存算分离架构下的数据接入协议,分别是 iSCSI 和 NVMe-oF。其中,为了满足不同应用对于性能和时延的不同需求,ZBS 在 NVMe-oF 的实现上选择支持 NVMe over RDMA(RoCEv2)和 NVMe over TCP。这两个形态区别仅体现在外部客户端使用哪种协议接入 Access,在元数据管理上并没有区别。

NVMe-oF 协议本身与 iSCSI 协议有很多相似的地方,例如客户端标识为 initiator 端,服务端为 Target 端,NVMe-oF 协议中使用与 iSCSI IQN 近似的 NQN 来作为协议通讯双方的标识等。同时,NVMe-oF 定义了 Subsystem(子系统,相当于 SCSI 体系下的 Target)和 Namespace(命名空间,类似于 SCSI 体系下的 LUN)专有标准。

相比于 iSCSI 通过 initiator + Target 的数据链路控制,NVMe-oF 可以支持 initiator + Namespace 这样更小的链路控制粒度。NVMe-oF 在路径策略选择上(协议原生支持 Multipath)是通过 ANA(Asymmetric Namespace Access)机制指定 Target 链路优先级,再由客户端结合优先级与自身的链路状态探测结果选择 I/O 具体路径。

ZBS 会将所有的可用链路设置为 OP(最优链路)和 Non-OP(次优链路)两种状态,其他状态为发生异常或变化时由 Driver 自动标记。对于每个 initiator + Namespace 的组合,仅返回 1 个最优接入点和 2 个次优接入点。在最优接入点可用时,客户端将仅通过最优接入点访问数据,在异常时选择 2 个次优接入点中的一个进行访问(出于简化安全性处理的考虑,部署时会要求客户端配置为 AB 模式,即使 2 个次优接入点是等价的,也不会进入 AA 模式,同时从两个接入点中下发 I/O)。这样既可保持各个接入点的负载基本均衡,同时又尽可能发挥多个接入点的处理能力。

NVMe-oF 接入架构

欲深入了解 ZBS 中 iSCSI 和 NVMe-oF 的支持设计,请阅读:分布式块存储 ZBS 的自主研发之旅|接入协议之 NVMe-oF。

另外,由于 NVMe-oF 需要工作在无损网络环境中以保证最佳性能,这要求以太网交换机需支持网络拥塞控制功能 ECN,目前 ZBS 支持 L3 DSCP 的 PFC 流控和 Global Pause 流控两种主流模式。我们也基于 ZBS 进行了信创交换机 RDMA 打流测试,测试详情可阅读往期文章《一文了解 SmartX 产品信创硬件选配最佳实践》了解。

NVMe over RoCE vs. NVMe over TCP vs. iSCSI:启用不同存储协议的 ZBS 性能表现

实验室性能测试

我们在相同的测试环境和测试方法下,分别使用不同的接入协议(iSCSI、NVMe over TCP 和 NVMe over RDMA)进行 ZBS 性能测试。结果显示,使用 NVMe over RDMA 作为接入协议,可以取得更高的 I/O 性能输出,其表现为更高的随机 IOPS 和顺序带宽,以及更低的延时表现。欲了解详细测试过程,请阅读:分布式块存储 ZBS 的自主研发之旅|接入协议之 NVMe-oF。

集群性能测试结果

业务场景性能测试

测试背景

某金融客户基于服务器和本地硬盘的方式组建大数据平台,伴随业务的增长,I/O 性能逐渐显现不足。客户过往虽然通过扩容服务器节点的方式来分摊 I/O 负载,以达到提升性能的目的,但该种方式也引起了额外的资源(扩容节点连带的计算资源)投入。借着机房更换的契机,客户希望通过存算分离的架构方案(ZBS),同时实现存储性能提升和大数据平台搬迁至新机房的两个目标。

对于存算分离架构,客户针对 iSCSI 和 NVMe over RDMA(RoCE)两种协议进行了业务场景下的性能测试,并与生产环境进行对比。

测试架构

如上图所示,SmartX 分布式存储通过对接裸金属计算服务器承载大数据的 HDFS 和 HBase 等相关服务,测试主要定位在如下两个场景:

  • HBase 数据表导出至 HDFS ,观察数据表导出时间。
  • 通过 Phoenix 程序直接查询 HBase 数据库,观察接口数据响应时间(响应延迟)。

环境与配置

生产环境

生产环境有配置 1 和配置 2 两种服务器配置,具体如下:

配置 1

配置 2
 

测试环境

说明:因为 NVMe over RDMA 技术对计算平台操作系统版本存在兼容性要求,故 Anolis OS 用于 NVMe Over RDMA 协议的测试。

测试结果

HBase 表导出

从 HBase 3 个表导出的用时对比来看,基于 NVMe over RDMA 接入协议的 SmartX 分布式存储相比生产物理机环境,导表时间缩短 72%;相比 iSCSI 接入协议,导表时间缩短约 60%

SQL 单表查询

为了更真实反映出存储性能差异对于该场景的性能影响,通过使用 Phoenix 本地直接查询 HBase 方式进行测试(消除接口服务器自身影响和网络环境差异)。结果显示,SmartX 分布式存储(使用 NVMe over RDMA 接入协议)相比生产物理机环境,查询时间缩短 71%,相比 SmartX 分布式存储(使用 iSCSI 接入协议),查询时间缩短约 60%

总体而言,在大数据应用场景下,基于不同存储架构与存储接入协议的存储系统,其性能表现有较大差异,其中开启 NVMe over RDMA(RoCE)的 ZBS 可大幅提升应用运行效率,满足大数据应用对高性能与低时延的需求。此外,如上测试结果仅是单表差异,如果是多表混合查询场景,分布式存储架构和 NVMe-oF 的优势在多任务的累积下会显现出更明显的差异。

某金融机构也对比测试了 SmartX 分布式存储(开启 RDMA)与全闪集中式存储执行数仓跑批任务的性能。结果显示,相比生产环境,SmartX 分布式存储执行全部存储过程集,3 个月平均跑批时间缩短 45%;其中,某耗时最长存储过程,3 个月平均跑批时间缩短 55%,其他存储过程集 3 个月平均跑批时间缩短 31%。

欲深入了解测试细节,请阅读:金融用户实践|分布式存储支持数据仓库业务系统性能验证。

总结

通过以上技术解读与性能评测可以看出,ZBS 对新一代网络技术具备卓越的支持能力,开启 NVMe over RDMA(RoCE)的 ZBS 不仅可提供更高的性能和更低的时延,还可充分支持大数据、数据仓库等性能敏感应用,满足生产环境业务需求。

结合《一文解析 RoCE 与相关存储方案趋势》中提到的 SAN 交换机“卡脖子”现状,ZBS 不仅能够支持高性能应用场景,还可帮助用户降低 SAN 交换机使用需求,以以太网交换机进行国产化替代。欲了解更多 SmartX 超融合信创云基础设施解决方案与相关用户实践,欢迎阅读电子书《信创云转型合集:技术路线、厂商评估与用践》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2814605.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【架构笔记1】剃刀思维-如无必要,勿增实体

欢迎来到文思源想的架构空间,前段时间博主做了一个工作经历复盘,10年开发路,走了不少弯路,也算积累了不少软件开发、架构设计的经验和心得,确实有必要好好盘一盘,作为个人的总结,同时也留给有缘…

Django项目使用vue打包前端页面使用教程

一、vue打包: 一般使用 npm run build 进行打包,打包完成后会生成一个dist文件夹 二、修改vue.config.js配置 vue.config..js配置里面增加: assetsDir: static 三、修改Django项目 将Django的static文件夹删除,移动di…

【Go 快速入门】协程 | 通道 | select 多路复用 | sync 包

文章目录 前言协程goroutine 调度使用 goroutine 通道无缓冲通道有缓冲通道单向通道 select 多路复用syncsync.WaitGroupsync.Mutexsync.RWMutexsync.Oncesync.Map 项目代码地址:05-GoroutineChannelSync 前言 Go 1.22 版本于不久前推出,更新的新特性可…

雾锁王国服务器配置怎么选择?阿里云和腾讯云

雾锁王国/Enshrouded服务器CPU内存配置如何选择?阿里云服务器网aliyunfuwuqi.com建议选择8核32G配置,支持4人玩家畅玩,自带10M公网带宽,1个月90元,3个月271元,幻兽帕鲁服务器申请页面 https://t.aliyun.com…

Firefox Focus,一个 “专注“ 的浏览器

近期才开始使用 Firefox Focus,虽然使用频率其实并不高,基本上只有想到了才去用,但每次使用的体验都很不错。 Firefox Focus 这款浏览器大约在 2015 年首次发布,不同于一般版本的 Firefox,它主打“自动删除浏览记录”…

Python请求示例获取淘宝商品详情数据API接口,item_get-获得淘宝商品详情(按关键词搜索商品列表)

请求示例,API接口接入Anzexi58 item_get-获得淘宝商品详情 公共参数 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥WeChat18305163218api_nameString是API接口名称(包括在请求地址中&am…

阅读笔记——《GANFuzz: A GAN-based industrial network protocol fuzzing framework》

【参考文献】Hu Z, Shi J, Huang Y H, et al. GANFuzz: a GAN-based industrial network protocol fuzzing framework[C]//Proceedings of the 15th ACM International Conference on Computing Frontiers. 2018: 138-145.【注】本文仅为作者个人学习笔记,如有冒犯&…

66-ES6:var,let,const,函数的声明方式,函数参数,剩余函数,延展操作符,严格模式

1.JavaScript语言的执行流程 编译阶段:构建执行函数;执行阶段:代码依次执行 2.代码块:{ } 3.变量声明方式var 有声明提升,允许重复声明,声明函数级作用域 访问:声明后访问都是正常的&…

ElasticSearch之找到乔丹的空中大灌篮电影

写在前面 本文看一个搜索的实际例子,找到篮球之神乔丹的电影Space Jam,即空中大灌篮。 正式开始之前先来看下要查询的目标文档,以及查询的text: 要查询的目标文档 {..."title": "Space Jam",..."ove…

密码学系列(四)——对称密码2

一、RC4 RC4(Rivest Cipher 4)是一种对称流密码算法,由Ron Rivest于1987年设计。它以其简单性和高速性而闻名,并广泛应用于网络通信和安全协议中。下面是对RC4的详细介绍: 密钥长度: RC4的密钥长度可变&am…

数据结构:栈和队列与栈实现队列(C语言版)

目录 前言 1.栈 1.1 栈的概念及结构 1.2 栈的底层数据结构选择 1.2 数据结构设计代码(栈的实现) 1.3 接口函数实现代码 (1)初始化栈 (2)销毁栈 (3)压栈 (4&…

Unity(第九部)物体类

拿到物体的某些数据 using System.Collections; using System.Collections.Generic; using UnityEngine;public class game : MonoBehaviour {// Start is called before the first frame updatevoid Start(){//拿到当前脚本所挂载的游戏物体//GameObject go this.gameObject;…

踩坑wow.js 和animate.css一起使用没有效果

踩坑wow.js 和animate.css一起使用没有效果 问题及解决方法一、电脑系统配置问题二、版本问题 问题及解决方法 一、电脑系统配置问题 在系统属性里面把窗口内的动画和元素勾选 二、版本问题 使用wow加animate4.4.1也就是最新本,打开网页没有任何动画效果 但是把…

CSS——PostCSS简介

文章目录 PostCSS是什么postCSS的优点补充:polyfill补充:Stylelint PostCSS架构概述工作流程PostCSS解析方法PostCSS解析流程 PostCSS插件插件的使用控制类插件包类插件未来的CSS语法相关插件后备措施相关插件语言扩展相关插件颜色相关组件图片和字体相关…

45、上海大学:轻量级多特征神经网络M-FANet,用于MI-BCI解码

本文由上海大学机电工程与自动化学院于2024.1.9日发表于《IEEE Transactions on Neural Systems and Rehabilitation Engineering》(SCI中科院分区二区,IF:4.9) 论文链接:M-FANet: Multi-Feature Attention Convolutional Neural Network fo…

数据结构--二叉排序树(Binary Search Tree,简称BST)

这里写自定义目录标题 二叉排序树二叉排序树与排序数组没有排序数组,链式存储链表的对比二叉排序树概念对于搜索操作,对于插入操作,对于删除操作, 分析删除节点代码运行结果 二叉排序树 二叉排序树与排序数组没有排序数组&#x…

【React源码 - 调度任务循环EventLoop】

我们知道在React中有4个核心包、2个关键循环。而React正是在这4个核心包中运行,从输入到输出渲染到web端,主要流程可简单分为一下4步:如下图,本文主要是介绍两大循环中的任务调度循环。 4个核心包: react:…

SpringMVC了解

1.springMVC概述 Spring MVC(Model-View-Controller)是基于 Java 的 Web 应用程序框架,用于开发 Web 应用程序。它通过将应用程序分为模型(Model)、视图(View)和控制器(Controller&a…

SpringMVC 学习(八)之文件上传与下载

目录 1 文件上传 2 文件下载 1 文件上传 SpringMVC 对文件的上传做了很好的封装,提供了两种解析器。 CommonsMultipartResolver:兼容性较好,可以兼容 Servlet3.0 之前的版本,但是它依赖了 commons-fileupload …

kubectl 命令行管理K8S(上)

目录 陈述式资源管理方式 介绍 命令 项目的生命周期 创建 kubectl create命令 发布 kubectl expose命令 更新 kubectl set 回滚 kubectl rollout 删除 kubectl delete 应用发布策略 金丝雀发布 陈述式资源管理方式 介绍 1.kubernetes 集群管理集群资源…