NVMe架构将彻底颠覆整个传统阵列行业

本文涉及的产品
数据管理 DMS,安全协同 3个实例 3个月
推荐场景:
学生管理系统数据库
简介:

一场将阵列控制器移出数据路径之外的变革又汹涌袭来。

叮铃铃,现在是NVMeF时间!

NVMe-over-Fabrics (简称NVMeF)共享存储访问机制可能会彻底令传统存储阵列业务被丢入历史的垃圾堆,除非相关供应商拥有出色的创造力,并以某种方式继续证明为NVMeF数据访问提供数据管理服务的必要性。

这一切是如何发生的?

NVMeF架构面向服务器当中发出存储IO请求的应用程序,而服务器与目标存储系统则利用RDMA传输直接面向服务器内存与存储驱动器进行数据往来传递,为了提供理想的性能表现,这里的存储驱动器基本上是指固态存储驱动器。

之所以需要引入这样一套机制,是因为虚拟多核心服务器往往不得不坐等IO操作完成,其配套的联网SAN与文件管理系统无法快速做出反应,而这将直接导致计算效率低下。利用SATA与SAS闪存驱动器(SSD)替代这些存储系统中的磁盘驱动器能够在一定程度上带来性能改善,但这又将引入两种新的网络——阵列中的SATA或者SAS,外加阵列与访问服务器间的块访问光纤通道/iSCSI或者文件协议。这意味着仍有相当一部分时间被耗费在数据传输所产生的IO请求当中。

内部阵列网络问题可通过使用NVMe驱动器(其速度高于SAS与SATA)以及NVMeF网络的方式解决。指向各驱动器的数据由RDMA传输至存储阵列控制器的内存当中。其通过控制器软件堆栈进行处理,同时跨越外部网络实现阵列往来。

NVMeF模式

以上流程皆需要时间。NVMeF模式旨在利用类似于扩展PCIe总线的机制取代传统块访问网络,提供端到端NVMe协议且能够显著提升SCSI上的并行性,并可作为访问服务器与目标存储阵列之间的RDMA传输机制实现运行。这不仅能够降低物理网络的传输时间,同时亦可通过直接访问驱动器将存储阵列控制器的软件堆栈从整个传输流程当中移除。

好吧,一部分阵列控制器软件堆栈内置于块访问协议当中,例如LUN处理以及将其映射至驱动器的协议。然而在多数情况下,例如RAID模式当中,情况并非如此,其仍然存在于数据路径之内。而消除阵列控制器则会带来另一种后果,失去数据管理服务。

我们发现闪存驱动器的容量正在日益提高,这意味着用户已经不再需要能够访问共享式存储系统的方式接入体积超出物理驱动器的数据集。希捷公司已经拥有64 TB SSD,而三星公司则公布了一款128 TB全新设计方案。

NVMeF访问与持续提供的服务器直连存储(简称DAS)容量上限意味着,我们已经不再需要阵列控制器这种东西,这可能代表着我们习以为常的现有全闪存双控制器以及整体阵列将不复存在。相反,存储阵列在本质上只是一堆构成远程DAS结构的闪存驱动器(即JBOF),其中包含某些主干共享访问所必需的NVMe前端。当然,我们也可以直接在超融合型系统当中引入容量更高的DAS存储资源。

在这样的严峻形势之下,戴尔、HDS、HPE、IBM、NetApp、Tegile以及Tintri等存储阵列供应商又该走向何处?

将控制器数据管理功能迁移至应用堆栈

一种潜在的可能性在于将部分阵列控制器功能迁移至访问服务器当中,并在一定程度上将其与NVMe访问流程并行执行。如果这种思路真的可行,那么确实能够带来理想的指导方向。

数据管理服务此前就已经能够在服务器应用堆栈层级进行交付,具体实例包括:

  • Veritas分卷管理器– VxVM与 VxFS
  • Veritas 分卷复制器
  • 拥有内置逻辑分卷管理器的操作系统
  • 甲骨文DataGuard

但这意味着NVMe驱动器将无法直接查看,而只能经由分卷管理器之类机制实现访问,这样的访问方式也会带来时间消耗。

其中一部分时耗可以通过在硬件当中执行数据管理的方式实现消除。RAID已经能够立足硬件实现,且具备通过接入ASIC或者FPGA实现的相对底层的压缩与擦除编码操作。

不过对于重复数据删除等级别较高的服务,其需要占用CPU周期与内存容量且无法单纯利用硬件加以实现。

在这样的情况下,我们可以采取这样的方法:使用NVMe架构内阵列控制器。驱动器能够在200微秒之内对数据请求作出响应,而NVMe指向驱动器的访问则耗时约为10微秒。通过提升数据管理堆栈的执行效率并将底层任务交由硬件直接完成,我们将能够把这200微秒的时间浪费压缩至100微秒以下,这意味着用户将可在无需变更数据管理服务的前提下实现NVMeF加速。

而各类数据管理服务将能够在阵列控制器或者应用程序服务器当中完成。

双访问阵列

另一种可行方案在于在现有阵列基础之上或者以并行方式为一级数据添加JBOF,从而建立起双轨阵列。在此之中,指向及来自该JBOF的数据将以二级数据的形式被导入至数据管理服务域,并在这里进行保护、复制或者重复数据删除等常用操作。

这种方式能够帮助客户以并行方式同时运行NVMeF数据访问与原有块数据访问流,从而更好地完成面向NVMeF时代的过渡。

在NVMeF时代下提供数据管理服务

需要指出的是,数据管理服务的实现道路并非一帆风顺。数据保护、复制以及重复数据删除等应对驱动器、服务器系统乃至高成本存储故障的重要功能皆很难达成。其中一部分数据管理功能需要运行在访问服务器当中,方可真正在DAS驱动器故障以及服务器故障场景下实现保护。

那么此类方案将由谁来提供?首先自然是服务器供应商,其能够凭借操作系统扩展实现这一目标。其次则为阵列供应商,他们可以将阵列软件组件转换为服务器插件。

就目前来看,阵列供应商在这一领域仍面临着严重问题,这是因为在以某种方式建立起NVMeF未来发展路径的过程当中,其当前套件可能将不再适用于存储一级数据。当然,供应商也有可能找到优于NVMeF的新型数据访问与存储方法。但这项任务恐怕将极难达成。

对于服务器与服务器系统软件供应商而言,这更像是一种潜在机遇而非迫在眉睫的问题。那么,Veritas分卷管理器与其它类似的产品能够把握机会,在新时代下继续生存下去?

服务器系统软件与阵列控制器软件工程师们显然非常睿智,因此我们期待看到他们能够拿出怎样的最终方案。

作者:佚名

来源:51CTO

相关实践学习
MySQL基础-学生管理系统数据库设计
本场景介绍如何使用DMS工具连接RDS,并使用DMS图形化工具创建数据库表。
目录
相关文章
|
存储 算法 架构师
架构师不得不了解的硬件知识 - 磁盘阵列 RAID
什么是RAID? RAID ( Redundant Array of Independent Disks )即独立磁盘冗余阵列,通常简称为磁盘阵列。
261 0
架构师不得不了解的硬件知识 - 磁盘阵列 RAID
|
缓存 分布式计算
为什么说,MapReduce,颠覆了互联网分层架构的本质?
为什么说,MapReduce系统架构,颠覆了互联网分层架构的本质? 下图是一个典型的,互联网分层架构:客户端层:典型调用方是浏览器browser或者手机APP 站点应用层:实现核心业务逻辑,从下游获取数据,对上游返回html或者json 服务层:业务服务,数据服务,基础服务,对上游提供友好的RPC接口 数据缓存层:缓存加速访问存储 数据固化层:数据库固化数据存储 同一个层次的内部,例如端上的APP,以及web-server,也都会进行MVC分层:view层:展现 control层:逻辑 model层:数据 工程师骨子里,都潜移默化的实施着分层架构设计。
2154 0
|
8天前
|
弹性计算 Kubernetes Cloud Native
云原生架构下的微服务设计原则与实践####
本文深入探讨了在云原生环境中,微服务架构的设计原则、关键技术及实践案例。通过剖析传统单体架构面临的挑战,引出微服务作为解决方案的优势,并详细阐述了微服务设计的几大核心原则:单一职责、独立部署、弹性伸缩和服务自治。文章还介绍了容器化技术、Kubernetes等云原生工具如何助力微服务的高效实施,并通过一个实际项目案例,展示了从服务拆分到持续集成/持续部署(CI/CD)流程的完整实现路径,为读者提供了宝贵的实践经验和启发。 ####
|
5天前
|
监控 安全 应用服务中间件
微服务架构下的API网关设计策略与实践####
本文深入探讨了在微服务架构下,API网关作为系统统一入口点的设计策略、实现细节及其在实际应用中的最佳实践。不同于传统的摘要概述,本部分将直接以一段精简的代码示例作为引子,展示一个基于NGINX的简单API网关配置片段,随后引出文章的核心内容,旨在通过具体实例激发读者兴趣,快速理解API网关在微服务架构中的关键作用及实现方式。 ```nginx server { listen 80; server_name api.example.com; location / { proxy_pass http://backend_service:5000;
下一篇
无影云桌面