存储 频道

剖析RAID控制器学习笔记

  【IT168 技术】RAID有很多值得学习的地方,这里我们主要介绍RAID控制器,包括介绍RAID厂商等方面。针对硬盘而与IOPS(每秒输入/输出)问题而设计的RAID(独立磁盘冗余阵列)控制器与有可能不能适应固态驱动器(SSD)和pNFS(并行网络文件系统)的时代。SSD与pNFS可以输入输出大量的数据,因此流带宽将成为RAID厂商必须面对的问题。

  当我这么说的时候,我面前的RAID厂商并不赞同。他们说,数据存储是IOPS的世界,因此我为什么要关心数据流的性能?这里介绍一下,IOPS是每秒I/O请求数量,而流带宽是控制器每秒钟可以将多少GB的数据传输到一个或多个服务器。

  磁盘驱动器可以支持有限数量的随机IOPS,而对于闪存驱动器来说,这个数字实际上是无限的。如果再结合并行NFS(网络文件系统),如果控制器的数据流I/O相对不高,则每秒I/O请求数量并不重要。

  目前为止,许多人都认为I/O是随机的。对于过去的许多应用程序和文件系统分配方式来说,这可能是正确的,但是对于一些新的文件系统分配方式,pNFS以及SSD来说,情况则发生了很大的变化。对于那些声称控制器最重要的是IOPS的RAID存储厂商来说,如果他们还没做好准备的话,在未来18个月内,他们就会知道自己错了。基于闪存的SSD,文件系统设计的变化以及NFSv4.1(pNFS)将带来广泛的影响:从高端阵列一直到低端的SAS和SATA驱动器。

  SSD下的IOPS

  让我们先来看看闪存SSD会给RAID控制器带来什么影响。就像Bitmicro所说的那样,闪存SSD拥有极低的延迟性,而且每秒可以处理至多5.5万个随机读取。由于Bitmicro没有提供关于请求大小的任何信息,我们暂时假设每个请求的大小是比较小的。由于一个磁盘扇面是512字节,因此如果 5.5万个IOPS都是这个大小,那么总的请求将是26.9MB/秒。

  在另一个针对小型随机块的测试中,I/O 请求大小是8192字节,这是小型块I/O最大的请求大小了,这样在使用400MB/秒性能的4GB/秒光线通道接口的时候,5.5万个请求就是 429.7MB/秒。(旁注:一些厂商虽然提供了数据,但是不告诉你如何才能达到这些数字,这点我很不喜欢。)我怀疑这些厂商使用的是随机的512字节I /O,更有可能的是像1024字节或4096字节大小的请求,但是谁知道呢。

  我之所以挑出PCIe 2.9总线的8条通道是因为这是我在控制器设计中所看到的最高性能了。我还看到一些SSD的性能低于或相若于英特尔SSD的性能范围。多数RAID控制器使用PCIe总线来作为高速缓存之间或通信之间的接口。实际上,一些RAID控制器甚至不使用PCIe 2.0(每条通道500MB/秒),而是仍然使用PCIe 1.1(每条通道250MB/秒)。就像你所见的那样,即使在SSD上进行纯粹随机的I/O,鉴于SSD的高性能,这些I/O也很快变成带宽问题。29个 SSD可能看起来很多,但是如果其中一些以300MB/秒的速度执行大型块操作和顺序I/O,那么只要4个驱动器就可以使8通道PCIe 1.1总线达到满负荷。

  我的想法是SSD会将随机问题变成数据流问题,而当前的RAID设计无法解决这种带宽问题。当前的RAID设计甚至没有重视支持大量IOPS所需的命令队列。SSD将会使人们重新思考IOPS与数据流。

0
相关文章