闪存阵列彻底改变了企业的存储环境。在迁移至全闪存阵列后,以往困扰存储已久的性能问题几乎完全得以解决。不过,最终用户期望的提升以及应用程序的复杂性很快带来了更大的挑战,换句话说,改进性能的需求永远不会停止。所幸的是,存储供应商并未坐享其成、停滞不前,业内正在产生的一些创新技术正促使全闪存系统领跑于用户的需求。
存储媒介无法决定闪存阵列是否有更大的提速空间,事实上,这更多地取决于周围的基础架构。大多数情况下,随着闪存颗粒密度的提升,系统实际只会变得笨拙而迟缓,尤其是针对写入的I/O操作。总之,闪存的性能已经远远大于硬盘驱动器,比起周边系统其它组件的延迟也更低。
目前,闪存供应商所面临的挑战在于,存储介质发展如此之迅猛,而延迟主要源自闪存封装以及其它相关组件。无论对于闪存驱动器还是全闪存阵列,供应商下一阶段从整体角度来提升性能。
处理器首当其冲
当今的闪存存储系统的核心在于软件,大多数情况下,其运行在相对标准化的英特尔服务器硬件上。处理器构成了硬件的核心。处理器速度越快,软件执行的速度亦得以提升,从而使得全闪存阵列运行越快。事实上,在过去三到四年中,全闪存阵列中大部分的性能升级得益于处理器的提速,而非存储媒介的改善。
目前,存储软件供应商所面临的难题在于,推动处理器变得日益强大的动力并非是处理内核原始速度的提升,而更多来自于增加处理内核数量。但是仅有少数软件供应商能够在存储的软硬件上充分利用多线程技术。那些具备多线程应用能力的供应商现在已经实现了业界保持了性能领先的地位,他们减少处理器数量(因为可以利用所有可用的处理内核),在成本方面赢得竞争力。
更高效的存储服务
各家存储系统都有不同的功能特性——全闪存存储系统尤其如此。除了标准的软件功能(例如快照与复制技术),大多数全闪存阵列亦包含有重复数据删除和压缩等技术以降低成本。混合闪存存储系统能够在闪存与硬盘之间实现数据的自动迁移。未来这种数据迁移或许还将发生在不同类型与性能的闪存层之间。
而这些功能同样也带来了额外的系统开销,在多数情况下都会增加I/O负担。软件供应商正致力于使其应用程序变得更为高效,以减少其软件方案在整合到闪存存储系统过程中带来的延迟量。显然,解决问题的方式之一是利用上文所提及的多核处理器技术。此外,供应商还需要进一步改进复制与压缩技术的效率。这种改善主要通过阵列改变管理这些功能在元数据方面的开销得以实现。
NVMe:更快速的闪存连接
另一项有待探索的领域是如何实现闪存阵列内部的连接。今天,大多数全闪存阵列本质上是运行着存储软件的服务器。这些服务器通常使用SAS连接处理器和闪存驱动器。虽然SAS在设计之初拥有强大的初始带宽,但我们不要忘记这项技术诞生在硬盘驱动器时代,而非为闪存时代设计。换句话说,系统使用标准SCSI协议来连接SAS接口的闪存驱动器。
SCSI协议增加了延迟,因此供应商不停地寻找更好的替代方案,甚至创建自己的专用协议。虽然这些专用协议确实提高了性能,但如果继续以这种情况发展,每家闪存供应商的产品都需要自己的驱动程序。在企业中,这意味着每台服务器都将需要在存储数据的每个闪存设备上分别安装驱动。供应商则必须为各种操作系统和环境开发相应的驱动程序。
供应商和IT专家所需要的是特定的用于访问闪存存储系统的标准协议。于是NVMe(非易失性快速存储协议),一种基于内存存储技术设计的专用标准化协议,应运而生。
NVMe减少了SCSI堆栈中不必要的开销,从而简化软件I/O堆栈。其同时还支持比标准SCSI更多的队列,相较于传统的AHCI(高级主机控制器接口)所支持的单个队列,NVMe可以支持高达64,000个队列。而每个NVMe队列可以支持64,000条命令(AHCI单个队列支持32条命令),这意味着NVMe驱动器连接速度会比SAS或SATA快出2至3倍。此外,由于基于相同的行业标准,某家供应商的NVMe驱动器完全可以和另一家的相互协作。
目前,闪存驱动器厂商正快速在其产品中部署NVMe协议;另一方面,大部分的闪存阵列供应商亦已发布了或即将发布基于NVMe协议的相应产品。我们可以预见到,存储系统内部的数据迁移速度应该会在明年得到显著提升。不过,访问共享存储系统时仍然要遍历整个存储网络。
Brocade与Cisco在内的一线网络供应商都已宣布支持NVMe over Fabrics,这种协议可以同时适用于以太网和光纤通道网络。而对数据中心而言,该标准的渗透则需要更长的时间。或许不少数据中心会在未来数年之内进行转型。值得庆幸的是,最近市场上发布的产品既支持传统的SCSI连接,亦可用NVMe进行访问。
从今往后,连接方面的改善空间将更多来自于带宽的持续增加,以及带宽更为智能的利用。
闪存DIMM
大部分的NVMe产品经由PCIe接口安装。不过现在,内存供应商有了更快速的通道:系统自身的内存总线。PCIe总线是实现各种设备间连接的共享总线,而在内存总线则是内存所专用的。显然,内存总线主要运用于动态RAM(DRAM)领域,但是现在,闪存制造商也希望藉此实现通往处理器的高速路径。虽然闪存DIMM比DRAM慢,但它为每个DIMM提供了更大,且成本更低的存储容量。
供应商提供两种不同形式的闪存DIMM技术。一种形式是将闪存DIMM封装成为闪存驱动器,用作高速存储设备。DIMM即存储是存储那些热点文件(如虚拟内存分页文件)的理想场所。
闪存DIMM技术的另一种形式是将闪存DIMM作为内存而不是存储外设。这种做法的优点同样是提升存储密度,降低成本;当然亦有缺陷,延缓了整体内存的性能。不过这种性能的延缓或许不会有你想象的那么大。在大多数设计中,闪存DIMM完全可以充当DRAM DIMM。写入操作先会在DRAM 上执行,当再次需要被读取前降级到容量更大的闪存区域。
将闪存作为系统内存所带来的关键好处在于单台服务器有机会以大约一半的成本部署一倍的内存容量,是当前横向扩展应用程序的理想选择。通常在这类环境中都面临着管理横向扩展节点的难题,其解决之道在于更多的内存,而非处理器性能。
闪存DIMM的另一用途在于防止服务器在系统崩溃时丢失数据。设想服务器会像笔记本那样:当发生断电时,它只是进入休眠状态;在电源恢复时又会自动从停下的地方重新启动。
总结
今天的企业第一次可以为应用程序与最终用户提供超出其所需的内存容量。但这并不能满足所有的应用程序。此外,伴随着虚拟化技术在系统环境中日益渗透,应用程序的持续扩展,这部分富裕的性能迟早会被消耗殆尽。
设备供应商仍将持续专注于改善和提高性能,但比起今天单纯将闪存添加入传统的系统会困难许多。保持性能的领先需要的是更高效的软件,以及本文中所提到的内外部连接的改善。
作者:George Crump
来源:51CTO