SSD何时才能在服务器级应用中真正发挥作用

关于固态硬盘的问题,基于非常热的OLTP在线交易处理系统,以前主要讨论了为什么说它们将来会跟服务器有联系。有一些潜在的应用,如刀片服务器可靠的启动盘和其他小型数据应用,不过本文讨论的主要是大规模的OLTP。OLTP应用的随机I/O受限于具体任务,如电子商务系统、航空公司机票预订系统以及任何数据密集型应用程序,诸如此类有频繁的存取应用,通常是在一个数据库上进行,而现在并不能预测今后的存取模式会是什么样。

当为这些工作负载安排一台服务器时,关键标准就在于每秒的随机I/O。你需要添加内存来提高内存命中率并减少I/O次数,或者需要添加磁盘以支持应用程序所需的I/O速率。增加内存的问题在于其线性成本–最新的DIMM成本和最初的DIMM的是一样的,可价值却仅呈对数增长。由于工作量是随机的,增加内存仅能得到大约按照内存平方根比例减少的I/O。内存变的便宜了在一定程度上有所帮助,但即便如此,增加内存随之而来的能耗会更大,费用也会随之增加。除了这个办法外,也可以增加磁盘数量,但每新增一块昂贵的15000转磁盘,每秒只能带来大约200个I/O。

这一问题最近在一个图表中得以总结,它来自伯克利的Dave Patterson的一本书:《Latency Lags Bandwidth》。

在此图表中,Dave追踪了过去20多年里带宽和延迟的整体趋势。磁盘带宽增长比DRAM及CPU的增长慢。我喜欢寻找不同的发展趋势,因为它们会把我们引导到更基础的需要创新的问题。

了解到磁盘带宽增长是一个日益严重的问题,让我们再来比较一下磁盘的顺序带宽和随机I/O比率。在下面的图表中,我绘出了同一时期内,顺序带宽增长和随机带宽增长的对比图:

虽然磁盘顺序带宽增长滞后于系统其他部分的增长。不过,该图显示,随机IOPS带宽的增长更加缓慢。纵观整个行业,有一个严重问题,而且图中的趋势线清楚的表明:单靠磁盘来解决这一问题将不符合成本效益。磁盘局限性问题上升到一个更详细的层面,为什么磁盘速度没有提升?

磁盘显然无法完全解决问题,那么扩大内存容量如何呢? 如果我们把它作为唯一的方案,线性增加的成本和对数(或更糟)增加的收益以及更高的功耗使得增加内存也不具成本效益。许多人过去几年一直主张固态硬盘是解决内存和磁盘随机IOPS率的好方法。Jim Gray第一个提出这个观点,他认为:磁带已经死了,磁盘成为磁带,闪存盘成为磁盘,而随机存取内存是国王。

第一代服务器级SSD随机写性能较慢,但我们现在看到市场上增添了更多更好的产品–100,000 IOPS 和1,000,000 IOPS。不过这些具有卓越性能的产品的定价距离市场的接受度还很遥远。英特尔公司一直在SSD领域做出不懈努力,我个人很喜欢英特尔 X25-E Extreme SATA SSD,但它的定价还是高。总的来说SSD的性能相当不错,其性价比也在迅速改善,因为它是一种半导体元件,而不是机械的。

我们什么时候能看到性能价格的交叉点?在什么价位SSD才能打败传统磁盘?这要看具体应用了。它取决于负载的I/O密度,每GB数据的I/O数量。Bob Fitzgerald分析了不同的负载,了解不同应用用来证明SSD所需的I/O heat(每GB的IOPS )水平是什么 。基于Fitz的工作,我进行了一个快速测试,你可以通过该测试发现,SSD将有多便宜。

我的看法是这样的,磁盘有较大容量而缺乏IOPS,因此,随机IOPS密集型的工作负载中,随机IOPS就成为了采用传统磁盘的制约因素。而SSD擅长IOPS,但容量却较小,因此使用SSD的短板就在容量。当支持你的IOPS需求所需的磁盘成本大于能够支持该应用需求的SSD的费用时,固态硬盘更具成本效益。见下面的公式:

目前硬盘×硬盘价格 > 所需容量×SSD价格/ SSD容量

下面我们来看个例子,几百台数据库服务器运行着高速运转的交易处理系统。每个系统有53块磁盘,其中40块用来存储数据,八块用来记录日志,还有少数是做管理的。之所以用磁介质来记录日志,是因为磁盘顺序带宽比SSD连续带宽更便宜。每台服务器上数据库大小是572GB 。此应用采用15000转3.5英寸磁盘,每块价格在333美元左右。每台服务器的磁盘预算申请应该是是40 × 333=13320美元。如果换成SSD,我们需要几块盘呢?我们知道我们需要572GB,假设我们使用64 GB的SSD硬盘,572÷64=8.9,所以我们约需要9块SSD硬盘来支持该应用。

磁盘预算13320美元除以固态盘数量9,得出我们最高可以支付的每块固态盘价格高达1480美元。如果64GB固态盘的成本低于1480美元,那么选择固态盘就更划算。该模型还忽略了固态盘可以省下的电能,通常SSD运行仅需要传统磁盘所需电能的五分之一。另外其他因素如服务费也忽略了。不过这只是一个看看是否值得考虑采用SSD的快速检验模型。

我们还需要更多数据,如在高写入应用中SSD的寿命有多长。由于缺乏历史数据,再考虑购买前,请确保您的供应商可以完全担保他们的产品在您的应用中的使用寿命。