本文作者Henry Newman是Instrumental Inc.的首席技术官。Henry是一位资深的行业咨询师,在高性能计算和存储领域拥有28年的经验。
为您的存储网络环境选择合适的固态驱动器(SSD)是重要的抉择--同样重要的是,确保您拥有合适的控制器来发挥这种昂贵的驱动器的最大潜力。
本系列的头两个部分讨论了固态驱动器应用程序和软件问题以及可靠性和性能问题。
在这个最后部分,我们将讨论SSD的内部设计以及SSD在SAS和RAID(独立磁盘冗余阵列)控制器的使用--对于大部分固态驱动器来说,这也是重要的选择。如果你的应用程序需要像SSD那样的性能,你需要确保你已经做好足够准备来最大化你的投资价值。
在这些领域中,你的决策将决定在你的数据存储环境中选用SSD是否成功,或者说它们是否只是一个昂贵的附加品并只带来微小的性能提升。鉴于这些驱动器的价格很昂贵,你最不希望的就是性能只有微小提升。
SSD内部设计
毫无疑问,这将是你要做出的最重要的抉择:你需要寻找一款可以匹配你所需要的性能和可靠性的固态驱动器。
首先以及最重要的决策流程就是理解你需要写入多少数据以及这些写入是突发性的还是持续性的。对于许多SSD来说,这很重要,由于损耗平衡优化功能的存在,突发写入会影响性能,而SSD内部的带宽可能不足以处理来自通道的写入以及满足固件的损耗平衡要求。
损耗平衡:SSD厂商的损耗平衡固件设计对写入性能来说非常重要。损耗平衡设计将决定算法是否匹配损耗前水平以便使你有额外的块来提前写入,或者在考虑到内部带宽的情况下,使损耗平衡和写入不会影响SSD。
内部带宽:内部带宽问题可能是最少被讨论的一个问题,然而在选择SSD的时候,这也是最重要的考虑。业内正迅速地从3Gb/秒SAS过渡到针对SSD的6Gb/秒SAS。多家SSD厂商宣称已经有超过300MB/秒的写入性能。在3Gb/秒SAS的情况下,最大性能是384MB/秒,而6Gb/秒SAS可以达到786MB/秒的性能。如果说写入是300MB/秒,而SSD的内部带宽只有300MB/秒,那么在写入中,损耗平衡算法将很可能拥有更大的优先级,从而使写入性能大幅下滑。在许多情况下,损耗平衡写入的数量大于写入数据流,在我曾经看到过的糟糕的设置中,这种比例甚至达到将近4:1。这意味着写入性能可能下滑到60MB/秒,而损耗平衡将占用另外的240MB/秒。很明显,对于流写入性能来说,60MB/秒低于大多数的磁盘驱动器的性能,尤其是企业级驱动器。你会惊讶于我看到过多少个这种糟糕设置的驱动器,即使它们的厂商声称他们的驱动器是企业级水准的。
在考虑SSD的内部带宽的时候,必须结合考虑外部带宽(通道),SSD最高的全双工读取和写入性能,以及根据算法和写入数量,损耗平衡将占用的最高带宽。SSD内部带宽在我看来是SSD规划和设计中最容易忽视的领域,但是对于写入密集型工作负荷来说,它的内部带宽又是最重要的设计因素。
在SSD的RAID中使用RAID控制器
现在,即使是最高性能的RAID控制器也不能支持3块最快的SSD的IOPS(每秒输入输出)。我说的不是磁盘托架,我说的是整个RAID控制器。如果你希望发挥昂贵的SSD的全部性能,你需要购置5万美元或10万美元的RAID控制器,而且还不能给它配置太多的驱动器。实际上,现在大多数厂商的一个磁盘托架可以装16个到60个驱动器,也就是说,你甚至不能装满一个托架。更糟的是,一些RAID厂商的磁盘托架在设计上只是针对磁盘驱动器水平的性能,你会发现你的每个SSD驱动器所摊到的磁盘托架成本也很昂贵。你可能会说,这不是显而易见的吗,不要在RAID中使用SSD就好了。但实际上没这么简单。在RAID中,从配置、RAID级别、备援和故障管理上来说,SSD有明显的管理优势。
配置:许多站点并不会将整个SSD只用于一个文件系统或应用程序,因此你需要能够分配空间。RAID控制器在这一点上做得很好。它们支持LUN(逻辑单元号)创建、LUN屏蔽以及其他各种配置功能,并且可以在一个拥有一致性的框架下执行这些功能以便你在文件系统中使用。
RAID级别:我们中很少有人会使用针对SSD使用RAID-5或RAID-6,因为许多RAID控制器无法保持在相当于3个高端SSD的性能水平,在拥有5块或6块驱动器的RAID-5 4+1或RAID-6 4+2中就更是如此了。因此,大部分情况下你会采用RAID-1。许多RAID控制器可以胜任RAID-1,而你可以再次拥有一个可以和其他文件系统保持一致的框架。一个重要的提示:如果你准备使用RAID-1以外的RAID级别,那么RAID控制器必须拥有高速处理器,而且必须从SSD资源中产生尽可能多的硬件校验码和进行RAID上的校验码检验。
备援:如果RAID-1 LUN中一块驱动器发生故障,RAID控制器将很快解决这个问题。自从RAID控制器诞生以来,RAID控制器就有热备援功能。RAID另一个可以大幅减少人工操作负荷的优势就是它可以一致地进行备援管理。
故障管理:这也是最大的问题。我曾经在两年前写过一篇文章称SSD的SMART(自监测、分析和报告技术)统计数据是一个很大的问题。由于没有标准的SMART SSD框架,如果SSD是在RAID阵列中,你就知道RAID厂商已经同SSD协同工作来理解SSD所提供的非标准的SMART信息。考虑到SSD在存储层级中的重要性,如果你知道SSD的潜在故障已经被管理,那么你会比较放心。
在SAS控制器下使用SSD
鉴于SSD在RAID控制器使用情境中的潜在问题,另一个方案就是将SSD连接到使用SAS控制器卡的系统。这种SAS控制器卡是插在PCIe槽中。最新的SAS控制器卡可以支持和RAID控制器差不多同样水平的IOPS,而且其成本低得多。但是事物总是有两面性,没有十全十美。这些新的SAS卡可能可以支持同样水平的IOPS,但是它也缺少RAID高端控制器中的大部分功能。
- 配置:SAS控制器卡有这个功能,但是它的软件没有RAID控制器那么全面和灵活。
- RAID级别:SAS卡可以进行RAID-1,但是在使用带SSD的RAID-5或RAID-6的时候,其板载处理器的校验码产生能力可能跟不上。
- 备援:SAS卡通常可以进行这项工作,但是其软件不像RAID控制器那么好。
- 故障管理:这是最重要和最关键的问题。许多RAID厂商通常会花费数月时间来认证系统中使用的驱动器,SSD或磁盘。作为认证过程的一部分,SMART信息搜集、疑似故障磁盘的主动热备援都在厂商的考虑之中。
许多组织会在今年底前开始使用SSD。问题是从文件系统到设备的存储架构并不是为SSD而设计的,这意味着你可能需要在实施SSD战略的过程中进行一些艰难的权衡。