DoSTOR存储分析:对SSD投资进行评估

本文作者George Crump是存储瑞士的创始人,该公司为存储用户、供应商和整合商提供战略咨询和分析。在创立存储瑞士之前,他在瑞士大型系统整合商中担任首席技术官。

在固态磁盘(SSD)的投资上,用户要深思熟虑,并要有对存储架构的深刻理解。一名IT经理怎样才能知道何时投资SSD,如何评估并确保SSD投资的投资回报?随着过去几年来,SSD成本的持续下滑,这些问题越来越重要。随着SSD成本的下滑,SSD适合的应用情境也在增加。

投资于SSD并不是许多人所想的像掷骰子那么简单。遵守一系列步骤可以帮助你确保在合适的时机投资于SSD,确保SSD为你的组织带来最大的收益,让你在投资前就知道SSD实施的投资回报期有多长。

第一步就是搜集有关用户环境的统计数字。用户不仅需要存储I/O的信息,而且还需要应用程序服务器的信息。对于多数环境来说,这些执行分析的工具是免费且现成的。多数UNIX环境可以使用IOstat,Windows环境可以使用Perfmon。

下一步就是观察CPU使用。根据经验,如果平均CPU利用率超过33%,那么很可能是在应用程序堆栈的其他地方有一个瓶颈。达到或低于33%表明服务器CPU在等待其他东西–而这种东西通常是存储。

为了确认存储I/O性能是否有问题,下一步就是观察应用程序服务器任务,找到那个持续对磁盘进行操作的任务。在这个任务中,我们要检查磁盘排队情况和队列深度。队列深度是一个设备命令队列中命令的数量。当我们讨论SSD是否适合的时候,关键的问题不是锁定服务器或装满队列。我们的目的是确保存储阵列能有效地处理队列深度。Perfmon将队列深度作为单独的统计数字予以列出;IOstat以百分比的形式列出这个数字,基本形式是队列深度乘以百分之一百。

如果你的队列深度总是大于1,那么你总是有一个命令在等待存储做出响应。为了提高性能,你应该提高每个驱动器的响应速度;由于驱动器可以并行地处理命令,你也可以增加驱动器数量。增加驱动器数量所带来的问题是,如果每个驱动器的磁盘操作的队列深度低于1,那么这种做法就不能带来性能上的提升。例如,如果你有一个5+1驱动器RAID(独立磁盘冗余阵列)组,而且你的队列深度是10,那么你在阵列中增加更多的驱动器应该可以提高性能。但是,如果该阵列组的队列深度是4,那么增加新的驱动器只能带来很少的性能提升。

对队列深度的研究可以得出两个结果。第一,你可以看到增加驱动器是否可以提高性能,提高驱动器响应速度是否是提高性能的唯一解决方案,当然,如果你的队列深度低于阵列中驱动器的数量,那么就只有提高驱动器响应速度;第二,根据队列深度,你可以决定你所需要增加的驱动器数量,然后可以看到驱动器增加是否需要大笔投资。

在两种情况下,SSD有可能是理想的解决方案。如果你判断需要大量的驱动器来满足应用程序的I/O要求,那么固态磁盘有可能是更加经济的解决方案。另一个提高驱动器性能的方法是驱动器短击(Short stroke)。驱动器短击是只格式化驱动器外缘部分,也就驱动器最快的部分。这么做可以提高驱动器的响应速度。这种做法的问题是它要求增加新的驱动器,而且还需要购买非常快的比较昂贵的驱动器–而且只格式化其中的三分之一。

如果你并无法并行地处理队列命令,那么你可以通过SSD来提高响应速度,SSD本身具有的速度优势可以减少队列深度。此外,IOstat和Perfmon还可以用来观察当前响应时间。为了提高机械式驱动器的响应速度,你可以购买更快的驱动器,短击这些驱动器,或者扩大存储高速缓存的规模。不过这种方式的问题是,在近期内,我们还只能得到RPM(每分钟转速)最高15000的驱动器。机械式驱动器的响应时间如果达到5-10毫秒就已经算非常好的了,而固态磁盘可以得到更好的响应速度。如今,基于闪存的系统可以提供0.2毫秒的响应时间,而基于DRAM(动态随机存取记忆体)的系统可以很轻松地提供0.015毫秒的响应时间。

为了提高机械式驱动器的响应速度,还可以增加高速缓存的大小。问题是,多数系统中高速缓存的大小是有限制的,而且高速缓存记忆体的成本通常很高。虽然高速缓存可以胜任像顺序日志这样的工作负荷以及大多数的写入任务,但是存储系统的高速缓存还需要处理各种存储软件任务,包括快照、复制以及其他常见的存储功能,因此它所需要的响应时间通常要低至0.5毫秒。基于DRAM的固态磁盘可以提供强大的高速缓存功能,对于这些操作来说,这种固态磁盘可以带来更低的延迟性和更高的速度。

如何决定SSD的投资必要与投资价值是一门学问。SSD投资的评估有现成的标准的工具。观察CPU利用,队列深度以及响应速度就可以让你了解固态磁盘是否适合你。即使你没有性能上的问题,这种分析也是有价值的。你可能对结果感到吃惊。SSD的价格比以往更具有吸引力,因此它可以为更多的工作带来好处。