固态存储以闪存记忆体的形式继续进军到存储行业的每一个角落和缝隙。当它成为占主导地位的存储介质的时候,对我来说变得很清楚,未来的固态存储系统不会跟随大型单片或双控制器模块化阵列,那种一直主导着过去十年或更长时间的数据中心的模式。相反,最好地利用固态存储的系统,将采取一些向外扩展(scale-out)的架构。
许多行业观察者已经注意到,每一代英特尔处理器已经交付了比其前任更高的计算能力,通过更快的时钟频率与核心增加的结合,每一代的磁盘驱动器没有更快,但更大了。事实上,这一日益增长的性能差距经常被用来作为基于闪存的固态驱动器(SSD)的一个理由。毕竟,如果你的磁盘驱动器不能跟上服务器繁忙地处理数据,引入一些闪存可以加快您的应用程序。
由于几乎所有今天的存储系统控制器基于和你的服务器相同的处理器,处理器/硬盘的性能差距已经允许制造商增加像自动精简配置、快照和复制这样的CPU密集型功能,同时也让每一代的控制器管理更多的容量。一款PB级存储的模块化阵列在短短几年前是不可想象的,但大多数厂商的产品在今天能做到这一点。
由于厂商纷纷将SSD支持加入到他们现有的存储系统,他们已经在多年来首次发现,在这些系统中的处理器计算能力不足。问题是接近控制器需要的处理能力不是一个管理容量的功能,而是被它管理的存储可以提供的IOPS处理能力。1,000个磁盘驱动器的一个典型的模块化阵列可以管理提供总计介于10万至20万之间的IOPS,而一个单一的典型MLC SSD可以提供20,000-40,000 IOPS。把超过几个SSD放入一款针对旋转磁盘设计的阵列,瓶颈将很快从磁盘驱动器转移到控制器。
正如闪存已经迫使我们开始考虑,存储费用除了每GB成本还有每IOP成本,存储系统的设计者,在设计他们的系统时必须考虑的不是每GB的CPU周期或者每个主轴的CPU周期,而是每IOP的CPU周期。
如果你留意像Pure Storage、Nimble、NexGen、Tegile或者Tintri这些最新的全固态或混合阵列设计公司,他们不是传统从一套单一的控制器支持4个或更多驱动器架的向上扩展(scale-up)设计。相反,这些厂商具有有限的可扩展性,以确保他们有足够的CPU来管理在每一个系统中的存储。这也确保了他们具有像压缩和重复数据删除功能的CPU周期,降低了闪存和磁盘存储之间的成本/容量差距。
显然,如果我们将有全固态,甚至管理超过50个左右大量SSD的固态阵列,这些系统都将需要更多的计算马力。最简单的提供方式是一个向外扩展的架构。提供可观扩展能力的下一代供应商,像Kaminario、SolidFire、Whiptail和XtremIO使用的是一个向外扩展的架构,它们随着增加存储容量而增加计算能力。那些不依靠主机的存储管理功能,如vSphere Storage DRS和Windows Server 2012的存储空间(Storage Space),使管理多个独立的存储系统更加容易。
我已经看到了未来,并且它是向外扩展的。不只针对文件和大数据,而是全部。