SmartX分享:NVMe-oF 介绍、SMTX ZBS 如何选择高性能场景解决方案与如何实现

目录

  • 背景
  • 什么是 NVMe-oF
    • ZBS Access
    • iSCSI 与 iSER
    • NMVe-oF 介绍
      • NVMe
      • NVMe-oF
      • NVMe-oF 承载网络(数据平面)
    • ZBS NVMe-oF 实现
      • ZBS 接入策略
      • ZBS 接入点分配策略
      • 性能测试
  • 为什么要支持 RoCE
  • 引用

背景

前几篇文章,我们认识到了 SmartX 公司产品 SMTX ZBS 的一些内容,如iSCSI和NFS的路径、EC与多副本、RDMA等。
其中有提到,ZBS 在存算分离的架构下,提供了2种不同的数据接入协议,iSCSI 和 NMVe-oF 。当然,在接入 Access 之后,元数据管理,ZBS 内部的数据操作没有区别。
那么这篇文章,就介绍一下什么是 NVMe-oF,以及 ZBS 为何要支持 RoCEv2。

什么是 NVMe-oF

简单来说,NVMe-oF 就是在 RDMA 上跑 NVME 流量,提供高性能的工作负载。

ZBS Access

Access 是 ZBS 接收 NFS Client、iSCSI Initiator、NVMF Initiator 的读写请求的组件。它提供统一的标准存储协议接口,负责将不同的存储协议接收并处理成统一的逻辑,交由 ZBS 内部真实存储数据的 Extent 工作。
Access 是内部存储对象(Volume)与外部存储对象(iSCSI LUN / NFS File)的转义的一个工作。

在https://blog.csdn.net/Tassel_YUE/article/details/144427581 这边文章中,详细讲述了基于 iSCSI 的数据接入流程。可以回顾,本文不赘述。
最初的版本,ZBS 仅提供iSCSI和NFS两种接入协议,如今的新版本已经支持 NFS、iSCSI、NVMe-oF、vHost 四种接入协议。

iSCSI 与 iSER

iSCSI 是使用最广泛的最主流的接入方式之一。
但性能层面,iSCSI 的设计原因,导致它的速率不能批能如今极为高超的硬件速率。
iSER 是在 RDMA 之上跑iSCSI,是革新,但基于iSCSI,仍然无法释放性能。
所以 ZBS 选择支持NVMe的 NVMe-oF 作为支持的 RDMA 模式协议。

NMVe-oF 介绍

NVMe

NVMe 是NVM Express 协议规范,定义通过PCIe总线和存储通信。
NVMe 支持65535 个I/O队列,每个队列支持65535条命令(队列深度)。提供了更高的数据吞吐与更低的通信延迟。

NVMe-oF

NVMe-oF 全称是 NVMe over Fabrics。将原本DAS内部的NVMe的效果,放大到了SAN中。

DAS 直接存取网络;SAN 网络附加存储。具体可以自行搜索。

NVMe-oF 定义了使用多种通用的传输层协议来实现 NVMe 远程连接的能力。
在这里插入图片描述

NVMe-oF 承载网络(数据平面)

NVMe-oF 的承载网络,实现方法有:FC、RDMA 和 TCP 。
ZBS 选择支持 RDMA/RoCE v2 和 TCP。提供了很好的客户个性需求适配性。

  • NVMe over FC:基于传统的 FC 网络(主机总线适配器 HBA 和光纤交换机构建的专有通信网络),与 FC-SAN(SCSI)可以同时运行在同一个 FC 网络中,最大化地复用 FC 网络基础环境,发挥 NVMe 新型协议的优势。常用于传统集中存储的升级改造。
  • NVMe over RDMA:通过远程直接内存访问技术,允许客户端程序远程访问存储系统的内存空间进行数据传输。具有数据零拷贝(不涉及网络堆栈执行数据传输)、Kernel Bypass(应用程序可以直接从用户空间执行数据传输,无需内核参与)、减少 CPU 资源消耗(应用程序可以访问远程内存,而无需在远程服务器中消耗任何 CPU Cycle)等特点。
    • InfiniBand - 通过 InfiniBand 网络使用 RDMA,在高性能计算 HPC 领域非常流行,与 FC 相似,需要专有的网络适配器和交换网络支撑。

    • RoCE - 全称 RDMA over Converged Ethernet,即通过以太网实现 RDMA,但需要专门的网卡硬件,目前有两个版本:RoCEv1 不可路由,仅可以在 2 层工作;RoCEv2 使用 UDP/IP,具有 3 层路由能力。
      ZBS 支持的是 RoCEv2。
      在这里插入图片描述

    • iWARP - 构建在 TCP/IP 之上。跟 RoCE 协议继承自 Infiniband 不同,iWARP 本身不是直接从 Infiniband 发展而来的。Infiniband 和 RoCE 协议都是基于 “Infiniband Architecture Specification”,也就是常说的 “IB 规范”。而 iWARP 是自成一派,遵循着一套 IETF 设计的协议标准。虽然遵循着不同的标准,但是 iWARP 的设计思想受到了很多 Infiniband 的影响,并且目前使用同一套编程接口。

  • NVMe over TCP:与前两种实现方式不同,该方案无需任何特殊的硬件要求,基于通用标准以太网环境。成本低是该协议的优势,缺点是需要更多的 CPU 资源参与数据处理,受限于 TCP/IP 协议,在数据传输中相对 RDMA 会引入更多的延迟。
    ZBS 也支持 NVMe-oF over TCP。

ZBS 不支持 FC 和 IB,原因是依赖专有网络,与产品定位冲突。不支持 iWARP 是相比于 RoCE 来看,RoCE 的发展前途更好。
不过 RoCE 需要无损网络的环境(不能有丢包PSN和NACK重传)。

ZBS NVMe-oF 实现

ZBS 支持 NVME-oF over RoCEv2 和 NVMe-oF over TCP 两种。

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 具体路径。

ANA 状态包括:Optimized 最优 / Non-Optimized 次优 / Inaccessible 不可达 / Persistent Loss 失去连接 / Change 状态变更

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

在这里插入图片描述

ZBS 接入策略

  • 继承策略,同一客户端访问同一 Subsystem 中的所有 Namespace 使用同一接入点。
  • 均衡策略,保证同一 Namespace Group 中的 Namespace 尽量使用不同接入点。

ZBS 接入点分配策略

  • 客户端视角,允许利用多个存储接入点的处理能力。
  • 客户端视角,保证不同客户端的公平性,避免占用所有存储接入点的处理能力。
  • 存储接入点视角,保持各个接入点的负载基本均衡,同时又尽可能发挥多个接入点的处理能力。

性能测试

见引用部分 的 第二篇引用内容

为什么要支持 RoCE

我们都知道,FC SAN 的核心是 FC 交换机。但FC 交换机实际上一家独大,其他厂商大部分均 OEM 该厂商的设备。而针对如今的信创转型需求,对于高性能存储网络传输方案的解决方案就受制约很多。

NVMe-oF over RoCE 的方案,既是基于通用以太网建立的(仅需要网卡是特殊的)、性能又不逊色于 IB。

具体的内容可以参考 引用的 第三篇文章

引用

SmartX 分布式存储产品组合介绍

基于 SmartX 分布式存储的 iSCSI 与两种 NVMe-oF 技术与性能对比

SAN 交换机“卡脖子”?以 RoCE+软件定义存储同时实现信创转型与架构升级

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【机器学习】机器学习的基本分类-强化学习(Reinforcement Learning, RL)

强化学习(Reinforcement Learning, RL)是一种基于试错的方法,旨在通过智能体与环境的交互,学习能够最大化累积奖励的策略。以下是强化学习的详细介绍。 强化学习的核心概念 智能体(Agent) 执行动作并与环境…

MyBatis-Plus中isNull与SQL语法详解:处理空值的正确姿势

目录 前言1. 探讨2. 基本知识3. 总结 前言 🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF 基本的Java知识推荐阅读: java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全&#x…

Spring Boot 项目创建

创建一个新项目: 打开 Spring Initializr 网址:https://start.spring.io/ ,然后创建一个新项目: springboot3.3.5_jdk17: Project(Maven)编程语言(Java 17)Spring Boo…

基于蓝牙通信的手机遥控智能灯(论文+源码)

1.系统设计 灯具作为人们日常生活的照明工具为人们生活提供光亮,本次基于蓝牙通信的手机遥控智能灯设计功能如下: (1)用户可以通过蓝牙通信模块的作用下,在手机端遥控切换智能灯不同的工作模式; &#x…

为什么光耦固态继电器(SSR)值得关注?

光耦固态继电器(SSR)作为现代电子控制系统中不可或缺的关键组件,正逐步取代传统机械继电器。通过利用光耦合技术,SSR不仅能够提供更高的可靠性,还能适应更加复杂和严苛的应用环境。在本文中,我们将深入探讨…

AI @国际象棋世界冠军赛: 从棋盘到科研创新之路

点击屏末 | 阅读原文 | 在小红书和 Google 谷歌回顾 WCC

leetcode二叉搜索树部分笔记

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 二叉搜索树 1. 二叉搜索树的最小绝对差2. 二叉搜索树中第 K 小的元素3. 验证二叉搜索树 1. 二叉搜索树的最小绝对差 给你一个二叉搜索树的根节点 root ,返回 树中…

计算机工作流程

分析下面的计算机工作流程: 1.取数a至ACC:PC程序寄存器自增1,变成0(可以理解为PC初始从-1开始自增);接着PC把当前指令的地址给到MAR(地址寄存器);MAR拿到当前地址后&…

ffmpeg翻页转场动效的安装及使用

文章目录 前言一、背景二、选型分析2.1 ffmpeg自带的xfade滤镜2.2 ffmpeg使用GL Transition库2.3 xfade-easing项目 三、安装3.1、安装依赖([参考](https://trac.ffmpeg.org/wiki/CompilationGuide/macOS#InstallingdependencieswithHomebrew))3.2、获取…

Elasticsearch8.17.0在mac上的安装

1、下载并安装 下载8.17版本es(目前最新版本):Download Elasticsearch | Elastic 也可以通过历史版本列表页下载:Past Releases of Elastic Stack Software | Elastic 当然也可以指定具体版本号进行下载:Elasticsearch 8.17.0 | Elastic …

解决Apache/2.4.39 (Win64) PHP/7.2.18 Server at localhost Port 80问题

配置一下apache里面的配置文件:httpd.conf 和 httpd.vhosts.conf httpd.conf httpd-vhosts.conf 重启服务 展示: 浏览器中中文乱码问题:

git 删除鉴权缓存及账号信息

在Windows系统下 清除凭证管理器中的Git凭据 按下Win R键,打开“运行”对话框,输入control,然后回车,打开控制面板。在控制面板中找到“用户账户”,然后点击“凭据管理器”。在凭据管理器中,找到“Windows…

MacOS下PostIn安装配置指南

PostIn是一款开源免费的接口管理工具, 下面介绍私有部署版本的MacOS下安装与配置。私有部署版本更适合有严格数据安全要求的企业,实现对数据和系统的完全控制。   1、MacOS服务端安装 Mac安装包下载地址:下载Mac安…

最适合智能体的身份认证技术:对比OpenID Connect、API keys、did:wba

最适合智能体的身份认证技术:对比OpenID Connect、API keys、did:wba 智能体需要新的身份认证技术 智能体对身份认证技术提出了新的需求,其中最重要的一个就是互联互通,特别是让任意两个智能体都能够互联互通。 其中的原理很简单:…

排序算法(7):堆排序

问题 排序 [30, 24, 5, 58, 18, 36, 12, 42, 39] 堆排序 堆排序是一种基于堆数据结构的排序算法。堆是一个近似完全二叉树的结构,即除了最后一层外,每一层都必须填满,且最后一层从左往右填充。 堆可以分为大根堆和小根堆。在大根堆中&…

多核CPU调度是咋搞的?

其实很多情况下都有 这样的疑问 为什么多核CPU用着用着会“躺平”? 为什么手机有 8 核,跑分时性能却不是核心数的翻倍? 答案的钥匙,就藏在多核CPU的调度机制里。 为了更直观地理解,以一个《王者荣耀》游戏服务器为例…

Qt Quick:CheckBox 复选框

复选框不止选中和未选中2种状态哦,它还有1种部分选中的状态。这3种状态都是Qt自带的,如果想让复选框有部分选中这个状态,需要将三态属性(tristate)设为true。 未选中的状态值为0,部分选中是1,选…

使用ElasticSearch实现全文检索

文章目录 全文检索任务描述技术难点任务目标实现过程1. java读取Json文件,并导入MySQL数据库中2. 利用Logstah完成MySQL到ES的数据同步3. 开始编写功能接口3.1 全文检索接口3.2 查询详情 4. 前端调用 全文检索 任务描述 在获取到数据之后如何在ES中进行数据建模&a…

【mysql】1205 -Lock wait timeout exceeded; try restarting transaction

问题: mysql8执行SQL提示下面错误: 1205 -Lock wait timeout exceeded; try restarting transaction 1205-超过锁定等待超时;尝试重新启动事务 可能的原因: 事务冲突:多个事务同时尝试修改同一行数据,导…

android 登录界面编写

1、登录页面实现内容 1.实现使用两个EditText输入框输入用户名和密码。 2.使用CheckBox控件记住密码功能。 3.登录时候,验证用户名和密码是否为空。 4.当前CheckBox控件记住密码勾上时,使用SharedPreferences存储用户名和密码。 5.登录时候使用Prog…