【WatchStor独家译文】固态硬盘(SSD)是一项需要谨慎规划和对存储架构深入了解的投资。当打算投资固态硬盘的时候,IT经理如何了解这些情况?IT经理如何信心饱满地确定这项投资一定有回报?随着最近几年固态硬盘成本不断降低,考虑这些问题也变得越来越有必要。固态硬盘成本的降低使得适合采用固态硬盘的应用工作流程数量也在不断增加。
有一个流程可以帮助你确保在合适的时间投资固态硬盘、为你的企业机构带来最大利益、在部署之前都就知道能够快速获得投资回报:
第一步,收集关于环境的数据。你不仅需要关于存储I/O的信息,还需要关于应用服务器的信息。对于大多数环境来说,有很多可以使用的免费工具。大多数UNIX环境可以使用IOstat,大多数Windows环境可以使用Perfmon。
第二步,查看CPU利用率。有这么一项黄金定律,如果你的CPU利用率超过33%,那么你可能在应用栈的其他某个地方遇到瓶颈。达到33%或者低于33%意味着服务器CPU处于等待状态。
为了确定存储I/O性能是否是问题根源所在,下一个步骤就是找出一台磁盘持续工作的应用服务器上的一个任务。我们希望从这个任务中查看磁盘队列或者硬盘队列的深度。队列深度是一台设备上承载命令队列中的命令数量。当我们讨论你是否适合采用固态硬盘的时候,关键问题就在不能填满队列和锁定服务器。反过来,我们的目标是确保存储阵列能够高效地处理队列深度。Perfmon工具将队列深度作为一项单独数据提供给用户;IOstate则是以利用率的形式——也就是队列深度×100%——提供给用户。
如果你的队列深度经常高于1的话,这就意味着你经常有一个在存储中等待回应的命令。为了提升性能,你要么提高每个驱动器的响应时间,要么增加驱动器的数量——因为驱动器可以并行处理命令。而增加驱动器存在一个挑战,那就是每个驱动器的磁盘操作低于1的话,你就不会获得性能方面的提升。例如,如果你有一个5+1驱动器RAID组,队列深度为10,那么向这个阵列中添加更多驱动器可以提高性能。但是,如果在这个阵列组的队列深度为4,那么增加额外驱动器几乎不会有性能上的提升。
从对队列深度的研究中我们得出两个结论。第一,一旦队列深度低于阵列中驱动器的数量,你就可以看到添加驱动器是否可以提升性能,或者降低驱动器响应时间是否是提升性能的唯一方法。第二,你可以看到是否需要投入大量资金来增加阵列中驱动器数量以满足队列深度。
在这两种情况下,投资固态硬盘可能是很理想的选择,很多情况下可能会是一个成本较低的解决方案。如果你决定了需要针对小型数据集提供大量驱动器以支持应用I/O需求的话,固态硬盘就会是一个更加经济的选择。提升驱动器性能的另一个选择就是短击驱动器。短击是只在盘片外边缘——也就是驱动器转速最快的区域——进行格式化的方法。这样做可以提高驱动器响应时间。不过这需要额外的驱动器支持,也就是说,需要购买高速、高成本的驱动器。
如果你不能并行处理队列命令,那么你可以通过固态硬盘执行更多命令来缩短响应时间,因为固态硬盘在原始速度方面具有一定优势,因此还可以用来减少队列深度。在测量当前响应时间方面,IOstate和Perfmon都是不错的工具。为了提高机械驱动器的响应时间,你要么需要购买转速更高的驱动器,短击这些驱动器,要么提高缓存容量。在解决驱动器响应时间方面我们将面临着1.5万转驱动器这个瓶颈。对于机械驱动器来说,5到10毫秒的时间是一个理想的响应时间,相比之下,固态硬盘在响应时间方面则有大幅的提升。目前基于闪存的系统一般都能够提供0.2毫秒的响应时间,基于DRAM的系统则可以轻松提供0.015毫秒的响应时间。
提高机械驱动器响应时间的最后一个选择就是提高缓存容量。不过问题是大多数系统的缓存容量是有限的,而且缓存的成本也非常高。虽然像连续日志和大多数写入任务都不是那么耗费缓存,但是存储系统缓存仍然需要解决存储软件管理快照、复制和其他常用存储功能带来的开销,所以存储系统的响应时间一般都在0.5毫秒左右。基于DRAMN的固态硬盘可以提供更高的内存容量,利用更多通用内存,更快速地处理操作而延迟更低。
你是可以提前了解自己是否适合采用固态硬盘,目前市场中已经有很多这方面的分析功能,而且已经实现了标准化。查看CPU利用率、队列深度以及响应时间都可以帮助你决定是否适合于采用固态硬盘。即使你认为不存在性能方面的问题,那些你也有必要进行上述分析,最终结果可能让你倍感意外。目前固态硬盘的价格非常诱人,这大大扩展了它可能惠及的范围。【WatchStor独家译稿,未经许可禁止转载。合作伙伴请注明原作者及出处为WatchStor.com】
来源:51CTO