将闪存技术引入数据中心时,首先采用的是混合磁盘闪存阵列形式,然后是全闪存阵列形式,两种形式都对企业级应用程序的性能产生了巨大影响。闪存存储还改变了最终用户对性能的预期。使用支持闪存的 PC 的用户已经习惯了更快的响应速度,即使这些应用程序变得越来越复杂,而且从数据中心扩展到了云中,他们仍期望在使用所有业务应用程序时获得相同体验。
不过,因为数据路径的其他部分存在瓶颈,所以 SSD 可能带来的速度提升正接近极限。目前的两种主要网络协议(光纤通道和以太网)均使用 SCSI 命令集来实现存储协议。SCSI 是将近 40 年前为机械介质开发的,虽然它能处理进出旋转磁盘的数据流,但已经无法满足全新闪存存储介质的需要。
原因在于 SCSI 将 I/O 请求放入一个队列,其中最多包含256 个命令。当来自应用程序的 I/O 请求到达时,它们只能排队等待其他请求处理完毕。在旋转磁盘时代,这种数据访问延迟的确无关紧要,因为驱动器的读写磁头一直都在旋转,忙于在快速旋转的盘片上寻找微小的磁块。闪存及其他固态介质没有移动部件,因而固有延迟非常低,所以数据路径中的延迟成为新的瓶颈,导致数据访问速度变慢。
过去十年间,随着PCIe总线的出现,这种情况有所改观。该标准在速度上远超 SATA 和其他传统协议。例如,PCIe 总线支持多达 65,535 个队列,每个队列的队列深度可达 65,535 个命令,而且可以将存储直接连接到 CPU,从而提供内存式访问。此外,PCIe 所需的软件堆栈远远小于传统协议(见图 1)。
如今,基于 PCIe 的设备广泛应用于各种计算环境,这可能会给 SSD 带来问题,因为每个供应商的硬件都需要使用专有驱动程序。为了消除兼容性问题,业内所有重要厂商一致同意对运行于 PCIe 总线上的闪存以及其他形式的固态内存采用新的现代数据访问标准:NVMe 规范。NVMe 实际上包含两个截然不同但又相互交织的层面:
• 一个针对固态存储设备进行了优化的协议和指令集
• 一套适用于非易失性内存系统的前瞻性开源架构标准
NVMe 规范是从头开始设计的,目的是在从移动电话到网络级服务提供商的各种计算环境中利用非易失性内存。此外,由于 NVMe 可实现更大吞吐量和更低延迟,因此正快速地在数据中心内得到应用(见图 2)。 
在 NVMe 上投入了大量投资的公司包括 NetApp、Broadcom、Intel、Samsung、Micron、Seagate、Cisco、Western Digital、Microsoft 和 Toshiba。NetApp 目前在其大多数混合闪存和全闪存存储系统中使用 NVMe 存储,可显著提高这些系统的性能。
总之,NVMe 正在推动着一场架构变革,实现与存储系统的大规模并行通信。最终结果是在服务器和存储设备之间提供带宽更高、延迟更低的连接。此外,其目的在于满足未来需求:NVMe 不仅支持当前 NAND 闪存和 3D XPoint 技术,而且随着目前正在开发以及尚未发现的持久内存技术的兴起,也将能与它们协同工作。在许多其他因素的共同作用下,NVMe 得以在数据中心提供无与伦比的性能,其中包括:
• 中断处理
• 序列化 I/O 请求所需的内部锁定
• 命令简化
• 上下文切换减少
• 无锁定设计
• 轮询模式
到目前为止,我们着重讨论了 NVMe 协议如何加快数据存储速度。但 NVMe 同时也是一种数据传输协议,而且是最新一代高速数据网络结构的关键组成部分。
NVMe 规范在不断发展演变;随着基于网络结构的NVMe (NVMe-oF) 的问世,NVMe 的性能和延迟优势现已扩展到包括以太网、光纤通道和 InfiniBand 在内的整个网络结构中。NVMe-oF 增加了对前端存储接口的支持,数据中心的 NVMe 设备和子系统之间可以进行更远距离的通信,并且可以横向扩展到大量 NVMe 设备。
随着网络本身变得越来越快,这些增强功能将发挥至关重要的作用。例如,光纤通道的速度在不断加快,一开始,第 5 代达到了 16 Gbps,目前已发展到第 6 代 (32 Gbps),而且第 7 代也即将问世。与此同时,以太网的速度也增加到了 100 Gbps 及以上。
NVMe-oF 虽是一项相对较新的技术,但其底层组件在企业数据中心已非常成熟。一个重要因素在于它不受底层传输机制的限制。尽管许多企业 IT 供应商专注于使用光纤通道 (NVMe/FC),但是 NVMe-oF 标准也支持远程直接内存访问 (RDMA) 传输机制,例如 InfifiniBand、RoCE 和iWARP(图 3)。

对于转向 NVMe-oF 的许多 IT 架构师来说,光纤通道仍是首选网络技术,因为它不仅提供高性能和可靠性,而且支持基于网络结构的分区和名称服务。更大的优势在于,光纤通道能同时传输多个更高级别的协议,例如 NVMe/FC 和 FCP(基于光纤通道的 SCSI)。
对一些企业而言,业务优势是判断是否采用端到端NVMe 系统的主要依据。端到端 NVMe 系统一般采用将NVMe-oF 与光纤通道或 RDMA 相结合的多个 NVMe 存储设备。无论是从 IOPS 还是从延迟来看,系统都将拥有闪电般的速度。
NVMe 的多协议支持简化了您在进行如此重要的迁移时将面临的购买决策。关键在于能否利用企业的现有基础架构。对于许多企业而言,过渡到 NVMe-oF 需要几年的时间,但这不是问题。

与用一种技术代替另一种技术相比,更好的解决方案是采用双协议光纤通道网络结构,运行并发的 FCP 和 NVMe/FC 流量。这种方式提供了稳定且经济高效的升级路径,消除了关键技术过渡期间的不确定性和风险。

虽然 NVMe 是一项颠覆性技术,但不会颠覆您的持续运营,您可以无中断地将其引入到您的企业中。如图 5 所示,端到端 NVMe/FC 解决方案堆栈有三个主要组件:服务器、存储系统以及将它们连接起来的网络结构基础架构。虽然可以用 16 Gb 光纤通道交换机和控制器实施这种类型的 SAN 基础架构,但为了取得最佳效果,建议使用 32 Gb 端到端光纤通道基础架构。
正是当下对企业至关重要的工作负载造就了 NVMe 越来越高的受欢迎度。这些工作负载范围广泛,从早期建立的工作效率标准到尖端新应用程序均在其中。在这些业务关键型工作负载中,许多只在 SAN 系统上运行或优先运行:
• SAN 基于目前速度最快的协议(即,光纤通道和iSCSI)构建。
• SAN 是许多数据库工作负载的最佳选择,而这些工作负载也是关键的业务需求。
• SAN 属于块级系统,它像外部硬盘驱动器一样与主机相连,这是许多环境中的一个重要架构优势。
事实上,大多数业务关键型应用程序均基于数据库构建,特别是 Oracle 数据库、Microsoft SQL Server 和 SAP HANA。SAN 非常适合数据库工作负载,因为它们的设计标准超越了企业最严格的关键性能指标,而这些指标通常围绕以下因素设置:
• 性能
• 可用性
• 易于使用
• 适应未来需求
• 投资回报率
为了优化性能,数据库管理员会持续监控系统,以确保充分利用每个硬件组件。这对于数据库应用程序尤其重要,因为服务器无序增长或 I/O 瓶颈会大幅降低响应时间。
例如,当 I/O 请求必须等待处理时,连接到基于 SATA 的存储系统的单个数据库服务器必然会遇到性能问题。为了解决此问题,IT 架构师有时会启用另一台服务器,在两台服务器之间拆分工作负载,或者将一台服务器专用于用户交互,另一台服务器用于后端处理。但是这种替代方案成本高昂,一个企业数据库许可证每年就要花费数万美元,更不用说运营费用了。再加上电耗和散热成本,NVMe 显然能让您以更少的硬件和更低的成本完成更多任务。
NVMe 非常适合 SAP HANA、Apache Spark 以及依靠主内存进行数据存储的其他内存数据库应用程序。这些工作负载会使用海量数据集运行,其大小有可能超过组合的集群内存,这会给存储系统造成巨大压力。
在 SATA 环境中,即便使用 RAID 协议,也会存在硬件发生故障的重大风险,导致节点临时降级甚至停止运行,令情况雪上加霜。然而,如果采用 NVMe,即使是使用当前速度惊人的多核处理器,总线速度也足以跟上 CPU 的速度。
转载申明:转载本号文章请注明作者来源,本号发布文章若存在版权等问题,请留言联系处理,谢谢。
推荐阅读
更多架构相关技术知识总结请参考“架构师全店铺技术资料打包”相关电子书(37本技术资料打包汇总详情可通过“阅读原文
”获取)。

全店内容持续更新,现下单“全店铺技术资料打包(全)”,后续可享全店内容更新“免费”赠阅,价格仅收198元(原总价350元)。
温馨提示:
扫描二维码关注公众号,点击阅读原文链接获取架构师技术全店资料打包汇总(全)电子书资料详情

继续阅读
阅读原文