【IT168 技术】数据存储已经成为企业应用中的一个薄弱环节,如果厂商不重视这方面的话,这项技术将面临着脱节的危险。I/O栈没有与硅芯片的升级更新保持一直步伐,最终它将有可能被像相变内存(承诺提供对数据的自由访问)这样的新技术所取代。
问题很简单:内存带宽和CPU性能的增长速度远远高于磁盘和总线性能以及磁盘通道速度的增长,再加上I/O接口(POSIX)的限制,结果只能是随着时间推移I/O瓶颈越来越严重。
回顾过去五年存储领域不同板块的性能增长,我们可以看到一些明显的趋势:
◆ 内存带宽:Intel提供的内存带宽从2004年的4.3 GB/s增长了9.3倍到现在的40 GB/s,AMD提供的内存带宽也从5.3 GB/s增长了4.8倍到25.6 GB/s。
◆ CPU性能:根据摩尔定律,晶体管数量每18个月就会翻一番,那么这就意味着性能至少要增加10倍多(而事实并非如此)。
◆ PCIe总线:PCI总线的性能从2004年每个通道的250 MB/s增长到2008年每通道500 MB/s,明年有望超过1 GB/s,增长2倍(很快将达到4倍)。
◆ 每磁盘通道速度:从4Gb光纤通道到6Gb SAS增长了50%。
◆ SATA磁盘性能从68 MB/s增长到84 MB/s,而光纤通道/SAS从125 MB/s增长到194 MB/s,光纤通道/SAS的增长速度近似于每磁盘通道速度,而SATA只增长了大约24%。
◆ 磁盘密度:光纤通道/SAS的磁盘密度翻了一番,从300GB增长到600GB,而SATA则从250GB增长到2TB,增长了8倍。
正如你所看到的,磁盘通道速度和性能以及PCIe总线落后于CPU和内存带宽性能。这意味着,访问数据的速度远远跟不上处理数据的速度,POSIX无法判断什么是重要的,或者无法定义服务质量,随着其他选择的出现,可能影响存储网络性能的问题也涌现出来。
数据访问速度在系统中的任何位置都没有提高,不管是PCIe、存储通道还是磁盘驱动器。唯一的例外就是固态盘,尤其是SLC固态盘。五年前没有哪项技术能够与这些驱动器匹敌,但是它仍然受到通道速度(目前为6Gb SAS或者每通道768 MB/s)的限制。
POSIX:问题的一方面
我看到的一个问题是,在应用和存储之间我们有一个最小界面。我们所拥有的是标准POSIX控制,打开、读取、写入和关闭以及其他一些系统调用命令。没有方法提供关于文件使用情况的信息;例如,你可能希望得到一个表明文件将被连续读取的提示,或者关于一个文件可能被复写的提示
可能会有很多潜在的提示,但却没有一个提供这些文件提示的标准方式,尽管有些文件系统使用非标准的方法,但是接口只是问题的一个方面。真正的问题是,存储性能远远落后于系统性能,这使得存储更难以使用,从而让它不再适用于实际使用。我认为性能落后是有很多原因的,不过其中有几个比较主要的:
◆ 设计内存的PCIe总线接口是很困难并耗费成本的一件事,而且将很多PCIe与内存连接会大幅度提高系统的成本
◆ 因为PCIe总线性能与CPU和内存升级更新是不同步的,那么为什么我们需要更高的通道性能呢?
◆ 磁盘驱动器接口使用的技术和通道是一样的,因此通道的性能不会提高太多
这个问题困扰了我很长时间。我总是不断问自己,为什么这个情况没有改变,最后我总是得出相同的原因:在存储方面提高性能是很难又耗费成本的。在这里或者那里作出一个变动并不能改变整个数据路径的性能。简单的瓶颈分析就可以证明这一点,因为即使改变了所有,但如果漏掉一个组件意味着仍然存在瓶颈。从PCIe总线到设备,再到这之间的一切(包括软件界面)都需要通过改变来提升性能。没有哪家厂商可以做到这一切。没有人会搭建一个非标准的环境,因为设计成本太高,而市场规模太小。
现在有很多厂商开发基于PCIe闪存的存储设备,这种设备解决了通道接口问题和一些性能问题。至少从目前来看,这种设备的成本对于消费级市场来说过高了,而消费市场是否青睐这种技术决定着是否向存储市场扩展。即使是这种设备,PCIe总线仍然是一个性能瓶颈,这方面现在以及未来都不太可能有太大的改善。
有一项技术所要求的带宽远远超过了PCIe,那就是固态盘。目前固态盘的读取速度超过500MB/s,大约是一个SAS通道的65%;对于SATA驱动器来说,它的峰值性能可以达到105MB/s,大约是SATA通道的14%,对于SAS驱动器来说,它的峰值性能可以达到194MB/s,大约是SAS通道的25%。现在最底线是,它不会占用太多的磁盘驱动器用于一个SAS驱动器。
在光纤通道问世早期,也就是1998年,一个双光纤通道环可以支持9个磁盘驱动器的I/O。现在,企业驱动器的2个6Gb SAS通道可以支持少量SAS驱动器,所以一直没有太大改善。现在我们刚刚达到6Gb SAS技术水平,大多数RAID系统仍然使用的是3Gb技术,这意味着使用目前最快的SAS驱动器可以支持大约1.9个驱动器。
相变内存或将终结存储网络
如果厂商无法找到解决I/O(设计很多组织,例如OpenGroup、ANSI T10、T11、T13和PCI SIG)的方法,那么我想I/O领域可能会重蹈8道磁带和软盘的覆辙。考虑到解决硬件和接口问题存在的困难,这一情况对于某些人来说已经成熟,可以找到一个解决办法。最显著的解决方案就是,尽可能处理更少的I/O。目前,通用CPU中可用的内存通道数量是有限的,而且从CPU到DIMM的距离以及性能也是有限制的。因为NAND闪存并不是字节可读取的,这使得内存扩展变得更加困难,但是相变内存却没有这方面的局限性。
随着时间的推移,相变内存潜在地将数据存储和存储网络从数据中心的核心位置迁移到外围。你只能在一天开始和结束的时候管理I/O,当应用运行的时候在内存中保存数据。简而言之,磁盘变成了新式磁带。
I/O栈问题可以解决,但是就现在来说并没有解决这个问题的经济动力。但是如果存储厂商足够精明,可以看到整个行业多年来一直面临相变内存等新技术带来的威胁,那么他们也许会从现在开始着手解决这一问题,因为这可能需要花费很长的时间。
像DIMM这样能够将闪存和相变内存融合到主板上的技术即将问世。这在未来几年的短期内不会发生,但是我们可以期待在新一个十年即将结束的时候发生。