www.hj8828.com 4

【www.hj8828.com】NVMe:未来数据中心存储变革的代理

固态存储不仅仅改变着存储工业,这种技术正在影响着整个计算机领域。我们已经看到闪存已经完全改变了消费电子领域,在几乎每一个类别的消费电子设备取代旋转磁盘驱动器。

非易失性快速存储器协议(NVMe)定义了一种通过PCIe总线访问固态硬盘驱动器(SSD)的新方法,并且预计在未来几年内将会呈指数级增长,与传统协议(如SATA协议)相比,其更高的性能和较低的延迟具有一定的优势。

原标题:OCS引发闪存格局新变

这种热情同样正在向数据中心延伸。数据库管理员、系统管理员和应用系统的所有者已经开始意识到固态存储和它所带来的好处。他们看到了固态存储在性能和能耗方面的优势,但在支持企业级应用的耐久性上仍抱有疑虑。然而,存储工业正在提出新的闪存控制器,这种控制器能够提升廉价闪存介质的使用寿命和性能,以便在企业级应用环境中替代昂贵的企业级闪存介质。

NVMe支持的存储基础设施不仅能够得到广泛的部署,而且目前正在进入数据中心领域,通常这些数据中心仍在采用传统的机械硬盘(HDD)和固态硬盘(SSD)。而NVMe协议已经成为下一代数据中心存储的代理人。为了理解这种演变,回顾存储技术的发展过程,并检查在由该协议转换的一些新的应用工作负载是十分重要的。

闪存领域的技术与产品变化,一直都揪着存储人的心。

SSD的最佳应用方式
固态硬盘SSD)提供了一种替代传统硬盘HDD)的可行的、更快的解决方案。选择合适存储的第一步,就是要明确应用程序的存储性能需求。这个需求将会决定是固态存储还是传统的硬盘存储是更加适合、更加的划算的解决方案。

在过去的几十年中,数据存储遵循了一种类似于数据计算的模式,这种模式从中央主机体系结构中发展出来,演变成分布式的客户机/服务器体系结构。然后,又返回到由虚拟化驱动的中央架构,然后返回由基于Web和云计算的应用程序驱动的分布式架构。存储技术又在直接连接的介质和分布式存储区域网络(SAN)之间摇摆不定,通过并行和串行接口使用SCSI命令集和SATA/SAS协议在CPU和存储介质之间物理移动数据。

——题记

我们从相对简单的例子入手,逐步延伸到复杂的情况。SSD已经涉足的一块领域是数据中心的笔记本电脑。笔记本电脑的SSD可以提供快速的启动和全面的性能,并且能够显著增加电池待机时间,因为内置的SSD所消耗的电能非常小。一些应用程序,像字处理、大图像文档、宏表格、数据库以及视频等,在使用了SSD的情况下,其响应速度非常快。笔记本之间的文件复制速度也非常快。所以,使用固态硬盘的效果不仅仅体现在应用程序的性能提升上。

www.hj8828.com 1

www.hj8828.com 2

用在台式PC机上也可以获得同样的好处。例如,使用固态存储启动计算机,是一种相当容易且廉价的提升性能的方式。在台式计算机上用SSD作为启动盘,通过I/O的加速,可以扩展一台旧机器的使用寿命。这对旧的笔记本电脑也适用,只要你有合适的SSD接口。

随着基于闪存技术的固态硬盘(SSD)的出现,传统的SATA/SAS标准协议似乎有些落伍,但其当初的兴起是因为它们经过了实践验证,兼容且无缝集成到现有系统中。随着时间的推移,尽管与数据访问请求和收据相关的长时间的性能延迟,SATA协议仍然是最常见且成本效益最高的接口标准。硬盘驱动器这些延迟是有情可原的,因为磁格式需要磁盘旋转和寻道导致延迟,但对于使用内存单元(相对于磁盘旋转和寻道)的基于闪存的SSD,SATA协议的延迟是不可接受的。最终,因为SATA标准协议更新太慢,无法在基于闪存的存储系统的应用中实现固态硬盘(SSD)的全部优势。

用户在闪存应用方面越来越广泛,之前对于闪存的软件与硬件的协同优化还是存在一定的挑战但是,随着开放通道SSD的出现,一切都得到新的改观。

加速数据库的操作
任何需要提升性能或降低存储访问延时的应用程序,都是一个使用固态存储技术的好场合。例如,许多数据库操作事实上都是一组由许多小的请求组成的组合,像表扫描和查询操作,这些请求会按顺序执行,一个请求的输出结果是另一个请求的输入。最终结果会在所有的请求都完成后返回给应用程序。在这种情况下,固态存储的使用会显著减少延时更快的周转),给应用程序带来巨大的不同的整体性能和用户感受。

SATA协议的这些限制使PCI
Express(PCIe)成为存储介质未来的逻辑接口,同时也基于为SATA/SAS标准设计的传统SCSI软件栈。PCIe插槽直接连接到CPU(提供类似内存的访问),并在一个较小的软件堆栈运行(参见图1),PCIe接口可以减少数据传输延迟,同时增加传统SATA/SAS的带宽。虽然PCIe接口是朝着正确方向迈出的一步,但每个SSD硬盘都需要自己的专有驱动程序,由于缺乏标准化,这增加了复杂性和不兼容性,因此为SSD厂商开展了更多的开发工作。因此,NVMe协议应运而生。

开放通道SSD即Open Channel
SSD,简称OCS
,这是一种特殊的固态硬盘,它不在驱动器的固件中实现闪存翻译层(FTL),而是将物理固态存储的管理任务转交到计算机的操作系统。

最好的企业级硬盘驱动器对于每个请求的平均寻道时间约为2毫秒,而且由于数据保护的原因,并不是每个存储系统都会使用高速缓存的。所以,即使可以获得和硬盘驱动器相同的性能,使用SSD会提供更好的整体延时,因为它们根本没有寻道时间。设想在运行大批量数据库交易的情况下,每个I/O都遇到企业级硬盘的寻道延迟;再想象一下,同样大批量复杂的数据库操作,没有寻道延迟,更快的存储设备,你会发现这就是为什么SSD在用于数据库应用时是如此之好。

www.hj8828.com 3

OCS如此设计,在用户具体应用上更能发挥出SSD性能,实现更多场景的高效部署。不过,本质上OCS还是基于Host-Based架构,只是OCS实现了一些管理控制与性能上的新进步。只是这样的进步,正好适用现在的用户应对公有云与大数据的发展需要。

SSD分层
由固体存储技术获得的性能,并不局限于数据库应用。这就是为什么我们看到了缓存和分层解决方案需求的增加。大多数服务器——无论是单独的还是集群的——都因为有大量的应用作业而压力很大,每台服务器都有不同的繁忙时间和空闲时间。如果你把所有数据都放在固态存储上,那你就不需要考虑缓存和分层技术了;但如果你的数据中心,就像大多数数据中心一样,大部分当前应用的数据都保存在传统的旋转硬盘驱动器上,就应该考虑这种技术。

图1 SATA和SAS SSD与PCIe SSD的软件堆栈的比较

进一步分析OCS的实际设计思路与实现的价值,针对应用程序的工作负载优化,在共享设备上有了切实可行的提高。采用新一代NAND芯片也提供了更快、更简便的验证,对于NAND启动也同样提供了更高效的简化设计,用户的闪存应用性能自然更为受益。

利用SSD分层技术,用户可以决定什么时候什么数据放置在固态硬盘上。分层可以手工执行,也可以借助主机或存储控制器上的自动分层软件执行。分层技术会在合适的时间把特定的热点数据迁移到SSD层,同时,在合适的时间再把它们迁移回低速的磁盘层。如果分层是手工执行的,那么管理员必须不停地观察I/O活动,以决定何时迁移哪几个文件或数据。你不得不人工跟踪你系统中每个文件的访问频率,从而根据这些访问确定何时把这些数据迁入迁出SSD层。对于各种不同规模的系统,手工执行几乎是不可能完成的任务,这就需要自动分层软件了。利用自动分层软件,文件和数据的访问情况会被自动地跟踪,数据迁移按照用户定义的策略,在预定的时间执行。分层技术的采用,使那些数据已经迁移到较快层级的应用受益,且性能的提升是立即而显著的。如果你有多个应用,需要提升性能,而却无法抉择或者没有时间去检验,哪些应用需要提升性能),自动分层解决方案是一个好的选择。如果你只有一个应用希望从分层技术中受益,你就不需要自动分层软件了。而大部分拥有几十、上百甚至是上千应用系统的数据中心都可利用这种技术获得更高的性能。

非易失性存储器(NVME)是基于NAND闪存的固态硬盘(SSD)的标准协议和驱动程序。NVMe的接口由行业领先的存储,网络和服务器供应商(NVMexpress.org)的开放行业联盟开发,提高了基于PCIe的服务器和SSD的非易失性的存储性能,并消除SCSI命令栈和直接连接存储(DAS)与传统HDD接口相关的瓶颈。它是固态介质特有的独特调整的I/O架构,可以去除传统的HDD接口障碍。在概念上,只需要一个驱动程序可以让每个SSD符合标准。

有着诸多好处,OCS自然会吸引存储业界的关注。在这之前,2018年初,采用自身定制的高性能控制器AliFSC,阿里巴巴推出的OCS,即Alibaba
Open Channel SSD(AOC SSD)
就已在阿里数据中心开始测试了。

固态缓存技术
另外一种技术叫做SSD缓存技术。数据缓存到SSD中是由主机软件或存储控制器决定的,这种技术会把数据复制一份到SSD缓存中,无需从用户和应用软件所确定的原始位置迁移数据。缓存技术非常容易管理,因为所有的决定都是由缓存软件或控制器做出的。缓存技术把热点数据调入缓存进行访问以加速应用程序的访问,性能随着更多的数据进入缓存而逐渐得以提升。我们把这种逐步的性能提升叫做“热身”或者“爬升”,其发生会持续几分钟或数小时,这依赖于设备和I/O操作的数量。根据设备的不同,缓存的数据可以使只读的或读写均可的。SSD缓存技术沿用了很多与内存缓存技术,甚至是处理器内部缓存技术相同的缓存算法。某些SSD缓存解决方案不仅仅缓存那些明显的热点数据,而且还会预先获取其临近数据,缓存软件认为按照其I/O模式,这部分数据也会变成热点。大部分缓存解决方案让管理员决定哪些文件或卷能够进入缓存使性能提升,所以你可以排除某些特定的数据以防止其阻塞缓存。如果你认为大部分或者所有的应用程序都能得到性能的提升,你就应该考虑使用SSD缓存技术了。

NVMe兼容的固态硬盘(SSD)可以提供高达10倍的基于SATA协议的SSD的读取性能,从而在更少的设备上运行更严格的应用程序工作负载,并使物理硬件的体积更小。最初用于高性能和大容量负荷(溢价成本)的基于NVMe的固态硬盘(SSD)现在可以在之前为基于SATA标准的SSD预留的数据中心的其他领域服务,并且还创建了被广泛采用的计算和存储的融合。

此外,在基于NVMe的OCS产品创新队伍中,闪存专业厂商也特别重视。比如2011年成立的宝存科技在2018年8月美国加州Santa
Clara(圣克拉拉)的Flash Memory
Summit全球闪存峰会上正式发布了自己的Open-Channel
SSD产品,外型为2.5寸物理盘,支持标准化U.2接口,同时也支持半高半长AIC形态,单盘/卡最高容量目前可达7.68TB

利用分层和缓存技术,SSD能够使更多容量得到性能的提升。对于这两种方案,你必须计算出需要多少的SSD容量。在多数情况下,认为只需要总磁盘存储空间的3%或至多10%的SSD容量既可获得性能的显著提升。

NVMe和固态硬盘

www.hj8828.com 4

SSD的数据压缩
压缩技术是另外一个因为固态存储技术获得新面貌的话题。因为SSD技术通常比传统硬盘技术更加昂贵,在只关注每GB的价格的情况下,提升SSD技术所带来的效益的一种方式就是在把数据存放到SSD之前进行数据压缩,因此而消耗更少的SSD宝贵的空间资源。目前,随着处理器性能的提升,花费一些额外的CPU处理能力进行数据压缩,然后再存储在较快速的存储设备,从而使得整个性能的提升。这就需要考虑压缩是发生在主机上还是发生在存储系统上。某些存储已经能够进行压缩了,数据在进入存储系统的时候立刻进行压缩处理,所有的缓存、SSD或磁盘设备只能看到压缩后的数据,这样就可以占用更少的容量了。

NVMe协议将PCIe闪存存储扩展到新的级别。它是专门针对非易失性固态存储架构优化的。它具有精简的内存接口,命令集和队列设计,非常适合当今的虚拟操作系统。此外,它直接连接到CPU(通过PCIe总线,)可简化存储设备堆栈,并提供比传统SATA/SAS协议更快的性能。因此,所有主要的服务器制造商都实现了对基于NVMe的U.2固态硬盘(2.5英寸格式)的支持,这使其出货量增长,并将很快超过SATA固态硬盘。

随着阿里巴巴等互联网巨头与专业存储厂商的推波助澜,让OCS开放通道固态盘的创新应用获得了前所未有的推进。