闪存由于加快应用性能而炙手可热,那么我们就来谈谈闪存目前的状况和它未来的方向吧。
数据中心以各种形式部署了闪存,来支持高IO需求的应用。这种高性能低延迟的技术正带来更高的虚拟机密度和高扩展度的数据库。当企业闪存存储技术从孩提步入成年;IT规划者们现在能期待什么,在不久的未来又能展望什么。
闪存存储可以为几乎所有的存储架构带来巨大的提升,而且它还具有各种各样的配置。有为独立服务器使用的闪存,也有跨服务器聚合闪存的方案,还有共享式存储系统应用的闪存。根据不同的使用场景和预算,所有这些方案都很有价值。
单服务器闪存
单服务器通常把一个SSD(solid-state drive固态硬盘)或者PCIE闪存卡与缓存软件结合起来,以自动加速应用的读操作。在SSD和PCIe之间的选择通常会取决于性价比。SSD价格比较低,而PCIE性能更好。缓存软件通常也有好多种。这些软件通常是直接对SSD或者PCIe闪存硬件进行操作的,而且通常设计为可以支持多种操作系统或环境。例如,面向VMware环境的缓存软件可以为服务器上的每个虚拟机提供同等的闪存资源访问能力,而一个文件级的缓存方案则会对关键的数据库应用文件提供特殊的加速。
这些方案对那些只有一个服务器或者一个应用需要加速的环境很合适,就像是对性能问题的低代价“手术式” 解决方案。
聚合服务器闪存
服务器端闪存的另一个例子是一个集合的闪存池。在这个例子中,软件会把一系列集群服务器里的内置闪存存储聚合起来,然后形成一个该集群内的服务器都可以访问的逻辑存储池。这也叫做软件定义存储或者融合存储,这些方案试图将计算、网络和存储捆绑到单一的操作层中来扁平化IT堆栈。
这些方案正在虚拟化环境中变得越来越流行,他们提供价格十分合理的方案支持一个服务器集群的共享存储池。不过也存在不足,由于这些系统基本都是DIY的,需要IT人士来测试、选择和维护存储软件、存储服务器和存储介质。
为了应对这个DIY的挑战,有一些供应商能提供交钥匙工程融合架构,但是仍然依靠通用硬件。尽管DIY的方案听起来不错,交钥匙工程方案也可能有更好的市场接受度,但多数机构却没有时间来做一个完整的软件定义存储方案。
聚合闪存方案要面对的最后挑战是一定程度的不可预测性。VM计算需求的一个尖峰有可能会影响IO性能,存储IO需求的猛增也可能会影响虚拟机性能。
共享存储闪存
除了单服务器存储外,共享存储方案是最常见的闪存存储部署方式。通常它有两种形式:全闪存阵列和闪存辅助的阵列(也叫混合阵列)。在这两者之间选择要点是可预测性和每GB价格。尽管全闪存阵列加上了去重复和压缩的能力,但它们和混合阵列相比还是价格高昂。全闪存阵列能给任何使用它们的应用提供持续的性能,因为没有缓存或者层级脱靶的风险。不过,全闪存阵列对所有的数据一视同仁,并非所有数据都会因此受益,特别是当数据变老的时候。
混合阵列具有一个比较小的闪存层,通常是系统总容量的5%或者更少,后面则是一个由硬盘驱动器组成的容量层级。数据会在创建、修改和访问的时候,自动地在层间被来回移动。由于有一个闪存层级来帮助性能,混合系统倾向于使用市面上最大容量的硬盘。尽管这使得它的每GB价格很诱人,但同时也使得系统对应没有缓存的IO请求的硬盘数量受到了限制,这可能导致应用性能的不确定性。
这两种共享闪存方案都有向上扩展和向外扩展的配置,这点和共享的硬盘驱动器存储系统很类似。对向上扩展系统常见的诟病是一旦系统达到了它的容量或者性能限制,就需要一个新的系统了。向外扩展方案的价值在于它的性能和容量可以通过增加存储节点来持续提高。在硬盘驱动器的时代,向外扩展方案就成为了最佳的长期决策。
闪存时代给向上扩展方案带来了新生。闪存可以提供的性能如此之高以至于许多数据中心所需的原始性能一套系统就可以完全提供了。闪存也带来了数据效率技术,例如压缩和去重复,它们能让向上扩展系统提供比类似的无去重复技术的硬盘系统多得多的容量。当然硬盘系统也可以加入去重复技术。不过它们没有基于闪存的系统那么多的富余性能,所以这个技术在基于硬盘的主存储系统中并不常见。最后,多数的基于闪存的向上扩展系统都不会像基于硬盘的系统一样在接近容量极限的时候出现性能下降的趋势。如果设计正确的话,它们可以在容量达到90%的时候提供和20%容量的时候相同的性能。
梦想并不遥远
在闪存出现之前,提升应用性能的主要方式是给应用运行的服务器购买更多的DRAM。还有和今天的闪存设备类似的共享式DRAM设备。尽管不如闪存那么经济,DRAM还是随着时间的推移变得越来越便宜了。今天,前面提到的一些缓存和闪存聚合方案都开始使用DRAM来作为一个存储层级了。
DRAM的缺点是它是易失性的。如果服务器重启,或者掉电,所有在DRAM中的信息都会丢掉。结果多数系统都使用DRAM来作为读缓存层来服务最常访问的数据。这通常比直接允许操作环境或操作系统直接访问DRAM资源效率更高。
有些软件方案使用DRAM作为临时的写层,类似于数据库中的写日志。在这种方案中,写操作先堆叠在DRAM中然后再写到闪存中。这使得日志能够迅速进入非易失层级而且使用闪存的效率也更高。
DRAM写缓存安全吗?
这是一个IT规划师经常面对的风险与回报之权衡的典型例子。如果环境很稳定而且有大量的备份电力,也许值得冒险。写性能的提升会十分显著,因为DRAM仍然比闪存具有明显的性能优势。
NVMe(Non-volatile memory express快速非易失性内存)也快要实现了。NVMe具有DRAM的性能,还有闪存一样的非易失性。它的价格会比闪存存储高许多,不过这个性能提升在小型环境中是值得的。NVMe的实际应用可能会在未来的3-5年间。
下一代闪存:3D VISION
从存储的角度来讲,下一代闪存可能会使用3D分层技术。3D NAND把闪存单元上下堆叠起来。这样做可以提升每个NAND设备的容量,同时也能让NAND的性能更高,因为单元之间的距离更近了。更低的成本和更高的性能都对企业有吸引力。3D NAND比NVMe更加现实,用户可能在明年左右就可以见到这个技术了。有理由相信一旦3D NAND大量上市,现有的闪存存储价格将会再现大降价。
FLASHDIMM:比较慢的DRAM,而不是快速的存储
将更早出现的技术是Flash-DIMM。这些闪存设备看起来就像是一个DRAM DIMM(dual-inline memory modules)内存条,也插在内存槽上使用,但是内部采用的是闪存而不是DRAM。这意味着FlashDIMM可以通过内存总线来访问,而不是通过PCIe或者SCSI总线。内存总线基本上是一个专为内存设计的私有总线,其延迟非常之低。
FlashDIMM有如下两种用法:
作为具有超低延迟的传统存储,通过合适的软件,它可以作为DRAM使用,不过稍慢。
作为一个DARM的大容量替代品,适用于内存中计算或者高密度虚拟服务器。
FalshDIMM技术现在就有了,不过服务器供应商要修改他们的BIOS来支持它。实现以后,FlashDIMM技术可能会给DRAM技术带来巨大的挑战。
缓存聚合:服务器和共享
接下去的几年我们会看到软件定义闪存聚合存储方案的持续成熟。对性能可预测性的担忧可能随着CPU性能的持续增长以及网络速度的提升而逐渐消退。我们可能会看到一个由共享存储系统供应商领导的服务器和共享存储的融合。这些产品能够利用服务器中的PCIe闪存或者SSD来作为他们自己的缓存或者分层软件的延伸。有些存储厂商现在就有这个技术了,不过它的实现还有诸多限制。在未来,我们可以期待所有共享存储系统供应商都会有这个能力。
闪存应用的最大挑战是理解诸多选择中何种更适合你的数据中心。多数的数据中心先使用闪存来解决一个特有的难题,然后再寻求其他途径来使用这个技术。就是说,IT规划师们应该找到合适的闪存方案来经济地满足数据中心目前的需求,而且能在未来的应用场景中提供扩展能力。