详解I/O瓶颈:数据存储的威胁与解决之道

Henry Newman是Instrumental Inc.的首席技术官,也是企业存储论坛的常驻作者。他是一位行业咨询师,在高性能计算和存储领域拥有28年的工作经验。

数据存储已经成为企业应用中的薄弱环节。如果没有存储厂商的齐心协力,这个技术的处境将变得更加窘迫。I/O堆栈的进步落后于芯片的进步,而且I/O堆栈有可能被新的技术所取代,比如可以提供无限制数据访问的相变记忆体(PCM)。

问题很简单:记忆体的带宽和CPU的性能继续快速提高,且提高的速度远高于磁盘和总线性能以及磁带通道速度的增加。加上功能有限的I/O接口(POSIX:可移植操作系统接口),结果是I/O瓶颈的情况越来越糟糕。

看看过去五年来各种存储技术的性能提升情况,我们就清楚了:

l   记忆体带宽:英特尔已经从2004年的4.3GB/秒提升到40GB/秒,而AMD也已经从5.3增加到25.6,也就是说英特尔的记忆体带宽是原来的9.3倍,而AMD是原来的4.8倍。

l   CPU性能:在摩尔定律下,晶体管的数量每18个月增加一倍。我认为这将使性能获得超过10倍的提升。

l   PCIe总线的每通道传输速率已经从2004年底的250MB/秒提高到2008年的500MB/秒,预计明年将达到1GB/秒,也就是说已经是原来的两倍,并且很快将是原来的四倍。

l   单个磁盘通道的速率已经提高50%,从4Gb/秒光纤通道发展到Gb级SAS。

l   SATA的磁盘性能已经从68MB/秒提升至84MB/秒;光纤通道/SAS从125MB/秒提升至194MB/秒。这是比较温和的提升。在光纤通道磁盘和SAS的情况下,性能提升幅度与单个磁盘通道速率的提升相近,不过SATA只提升了24%左右。

l   光纤通道/SAS的磁盘密度增加了一倍,从300GB提升至600GB;SATA更是增加七倍,从250GB提升至2TB。

如你所见,磁盘通道速率和性能以及PCIe总线性能已经落后于CPU和记忆体带宽性能。这意味着数据的访问能力落后于数据的处理能力,而POSIX无法决定哪些是重要的或者说如何定义服务的质量。随着其他解决方案的兴起,这个问题将给网络存储带来极大的威胁。

在系统中,数据访问性能不是在所有地方都有明显增加,不是在PCIe总线,不是在存储通道,也不是在磁盘驱动器。唯一的例外是固态驱动器,特别是SLC(单层单元)SSD(固态驱动器)。这些驱动器的速度是无与伦比的,但是他们仍然受限于通道速度–目前是6Gb/秒(SAS)或768MB/秒(通道)。

POSIX:问题的一部分

我看到的一个问题是应用程序和存储之间的接口有很多限制。我们拥有的只是标准的POSIX控制,即打开、读取、写入、关闭和一些其他系统指令。我们在这里无法获知文件使用情况;例如,你可能希望知道文件是否被顺序读取,或文件是否被覆盖。虽然我们有很多办法可以获得这些情况,但是我们没有一个标准的方法来提供这些文件情况。尽管一些文件系统拥有非标准的方法,但是接口只是问题的一部分。真正的问题是存储性能进一步落后于系统的性能。我认为性能上的落后是出于很多因素。这里我们来讨论其中一些因素:

l   设计到记忆体的PCIe总线接口是很难且成本很高的,让很多PCIe接口连接到记忆体会使系统成本大幅上升。

l   鉴于PCIe总线性能的进步落后于CPU和记忆体的进步,我们还需要更快和更好的通道性能吗?

l   磁盘驱动器接口使用和通道一样的技术,因此性能上也不会有多少提升。

这个问题已经困扰我很久了。我不断问我自己为什么这种情况还没有改变,然后我总是归结于同一个原因:存储性能的提升不仅贵而且难。这里或那里的一些小变动无法改变整个数据通路性能的现实。简单的瓶颈分析:其他地方都改变了,只有一个组件没有,这意味着那里仍然有瓶颈。整个存储领域都需要做出改变以提升性能:从PCIe总线到设备以及总线和设备中间的所有组件,包括软件接口。没有任何一家公司可以包揽存储。PCIe是一个标准,SAS接口和性能是一个标准。没有人会去构建非标准的东西,因为这样做的工程成本很高而且市场很小。

有一些公司在构建基于PCIe的闪存存储设备,从而避开通道接口问题和一些性能问题。至少目前为止,这些设备的成本还是远高于消费者市场的承受能力。即便如此,性能瓶颈仍然存在于PCIe总线之中,因为PCIe总线的性能没有很大提升,而且未来也不会有很大提升。我们需要的更高的性能。

SSD所需的带宽远远超过PCIe总线的能力。目前,SSD的读取速度可以超过500MB/秒,是单个SAS通道的65%;SATA驱动器读取速度的峰值大约为105MB/秒,是通道的14%;SAS驱动器读取速度的峰值为194MB/秒,是通道的25%。结果,如今的情况下,不用多少个磁盘驱动器就能占满一条SAS通道。在光纤通道的早期岁月中,比如说1998年,一个双光纤通道的环可以支持9个磁盘驱动器的I/O。如今,带企业级驱动器的两条6Gb/秒SAS通道只能支持少数几个SAS驱动器,因此这方面没有进步。我们现在才刚刚用到6Gb/秒SAS技术,而大多数RAID(独立磁盘冗余阵列)还在使用3Gb/秒计数,这意味着你只能支持1.9个如今最快的SAS驱动器。

相变记忆体将威胁存储网络

如果厂商没有方法来解决I/O方面的问题–需要多个组织的协作,比如OpenGroup,ANSI T10,T11,T13和PCI SIG–我认为I/O堆栈的命运将和八轨磁带以及软盘一样。鉴于硬件和接口问题的解决有难度,现在已经是寻找其他解决方案的时机了。最明显的解决方案就是尽量少进行I/O操作。目前,商品CPU在记忆体通道的数量上有限制,而且从CPU到DIMM(双列直插式内存)的距离也有限制。NAND闪存不是字节寻址的,因此它作为记忆体的扩展更加有难度,但是相变记忆体(PCM)没有这种限制。为了让大家对PCM有一个直观的了解,我们这里引用一下正在与英特尔合作开发PCM的Numonyx的描述。

几年后,PCM将有能力将数据存储和存储网络从数据中心的中心迁移到周边。我们将只需要在一天的开始和结束的时候进行I/O,在应用程序运行的时候将数据放在记忆体中。简而言之,磁盘变成新的磁带。

I/O堆栈问题可以被解决,但是厂商还没有动力来即时解决它。但是如果存储厂商意识到他们整个产业在几年后会遭到新技术的威胁,比如PCM,那么他们有可能会现在就着手解决这个问题,因为I/O问题的解决也需要时间的。

科学家们很快就有能力将闪存和PCM像DIMM那样装在主板上。这可能不会在未来几年内实现,不过必将在2020年底以前实现。让我们拭目以待。