一场将阵列控制器移出数据路径之外的变革又汹涌袭来。
叮铃铃,现在是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分卷管理器与其它类似的产品能够把握机会,在新时代下继续生存下去?
服务器系统软件与阵列控制器软件工程师们显然非常睿智,因此我们期待看到他们能够拿出怎样的最终方案。
原文发布时间为: 2017年8月22日
本文作者:李超
本文来自云栖社区合作伙伴至顶网,了解相关信息可以关注至顶网。