专家支招:如何克服存储性能的新瓶颈

在我以前的文章中,我曾考察过是否应考虑服务器分层结构的一些理由。我探讨了一个服务器层或固态硬盘(SSD)的缓存如何应对存储网络的性能问题。现在,我们将考察服务器中的SSD层如何克服存储性能瓶颈的问题,尽管该共享存储已经使用了固态硬盘技术。

就像我们在“虚拟化固态硬盘性能”白皮书中讨论的那样,假设你有对固态存储系统的需求,那么要解决的存储系统问题包含两个部分:第一,如何将固态存储集成到存储系统中。第二,如何确保存储系统对于固态存储性能的最大化不存在瓶颈。

目前,把固态存储集成到存储系统中,主要是以硬盘方式使用固态存储。这使SSD厂商只须将固态存储安装到它们现有的硬盘中,就可以迅速地把固态存储解决方案推向市场。其他厂商则要么在存储系统内部直接使用PCIe SSD,或者开发出单独的设备或者仅使用固态存储的存储系统。

多数情况下,存储系统所使用的固态硬盘的类型都不会像预计的那样对存储层的性能产生严重影响。唯一的问题是固态硬盘的形状尺寸和能耗与其他专门设计的更类似于内存模块的设备相比没有什么优势。例如,闪存就比一般硬盘需要的空间小,耗电量也少。SSD迅速推向市场的代价,就是空间和电源效率的损失。

对于希望把SSD集成到存储系统中的厂商来说,真正的性能挑战是如何保证存储系统不会成为瓶颈。一个存储系统是一个包含了服务器、网络和数据存储设备的复杂系统。服务器一般被称作存储控制器。网络是从服务器到存储设备的连接,以及从服务器到附加主机的连接。存储设备是硬盘或者SSD。其他两个部分的性能(控制器和网络)对于实现最大限度的存储性能是非常重要的。

从主机回流到控制器的数据流以及从存储设备提取数据的能力直接影响到性能。过去使用机械硬盘,这样的结构都有相当长的延迟,所以控制器和网络的性能基本上是感觉不到的。出了问题一般都认为是硬盘的性能不够。

固态硬盘改变了这种情况。数据存储设备很少出错,基本上无延迟或低延迟。因此性能问题就变成了从控制器到设备之间的网络,以及连接到到附加主机的网络的问题。即使升级到速度最快的网络,计划访问共享存储的几十台主机在存储控制器的连接点上都可能成为瓶颈。因此关键问题就在于存储控制器是否能够处理这些存储I/O(输入/输出)请求,以及在存储介质上读写这些数据。我们曾多次看到存储控制器被这些数据操作所淹没。这种情况导致企业需要购买多个存储系统,并限制每个存储架上的SSD的数量。

有没有绕开这个问题的方法呢?我们要么建立一个能够处理固态存储性能的存储系统,这意味着需要设计一个新的存储后台基础设施;要么就使用一个服务器层尽可能多地分流I/O数据,利用一个基于服务器的SSD层,或许可以多少减轻存储控制器潜在的瓶颈。

基于服务器的分层结构本身是没错的。在你寻求改善现有存储系统性能的时候,有些事情肯定要考虑。然而,在考虑新的系统时,如果要想指望固态存储的性能,你也许还得考虑能够提供SSD和高速网络所承诺的性能,又不需要基于服务器的设备作为变通方案。