SSD这种最昂贵的存储介质为什么能帮助充分利用资金呢?这是因为它可以提高你每GB存储空间所能传输的IOPS数量。这就降低了每次IO操作所需的空间和能耗。
正如在我们的白皮书“Visualizing SSD Readiness”中所讨论过的那样,现在许多程序都可以进行充足的IO请求还可以支持有许多轴数(spindle counts)的硬盘阵列。阵列中的轴数越多,性能也就越好。大量的驱动器数量带来的问题就是驱动器上数量的增加。所有这些驱动器需要排列,排放,安置,管理以及供能。这都要花钱。你的程序或许可以支持300个驱动器,但是你有那么多的预算吗?
还有一个问题就是空间利用率。如果你有一个能支持300个驱动器的程序,那么按照当今的驱动器水平,它会导致上TB的未使用空间。现在确实也可以通过SAN来让其它应用程序也使用那些驱动器,但是这会影响你的关键业务的性能,而且其它应用也往往并不需要你最初那项业务那么高的存储性能。
更有意义的就是好钢用在刀刃上,增加一个针对应用程序的存储层。在块IO(block IO)中,最典型的做法就是向现有的存储系统中增加SSD,或者更直接一点使用Texas Memory或Violin Memory这些公司的SSD系统。实际上,借助他们的PCI-E卡,让IOPS在应用程序服务器内进行,Fusion-io和Texas Memory可以更进一步提升应用程序专一性。
面临的挑战之一就是确定如何以及何时从SSD中获取正确的数据集。通常这是一个特定的应用程序或数据集,比如像一张Oracle表,把这张表移动到SSD中去就是一个非常简单的过程。要更广泛地运用SSD,尤其是在NAS存储领域,挑战就更大了。一种解决办法是使用NetApp和DataCore这些公司的存储虚拟化设备来统一管理SSD。
像Storspeed这公司已经开始提出在NAS IO中的可行替代办法。这些公司正在开发一种改进型的缓存技术以智能地在分层存储中存入取出数据。这使得SSD能尽可能地利用空间并且始终让最活跃的数据保存在这一高速的存储层上。同时还可以让用户控制具体哪一个程序或哪一份数据使用这一层。
不管使用哪种方案,采用SSD,特别是再加上它日益增长的负载能力,是减少开支,立竿见影的好办法。