具有NV缓存的RAID控制器是否可以提高SSD阵列的性能或完整性?


20

我打算购买RAID 10中带有SSD的服务器(Dell PowerEdge R740),我的首要任务是写性能和数据完整性。它将运行Linux。SSD具有带断电保护功能的写缓存。

看来这些是我的RAID选项:

  • PERC H330(无高速缓存),软件RAID(直通)
  • PERC H330(无高速缓存),硬件RAID(直写)
  • PERC H730P(2 Gb NV缓存),硬件RAID(直写)
  • PERC H740P(8 Gb NV缓存),硬件RAID(直写)

我的问题:

  • 这些配置中是否有数据丢失或掉电损坏的风险?
  • 我应该期望哪种配置具有最佳写入性能?
  • 我没有考虑过的NV缓存还有其他好处吗?

相关问题:


1
与直觉相反,当启用回写缓存时,由SSD支持的硬件RAID控制器设置的性能可能会低于预期的最大吞吐量。但是我看到您只是在考虑直写,因此您似乎已经意识到这一点。
the-wabbit

Answers:


16

如果与没有电源损耗保护的写缓存的SSD 一起使用,则RAID控制器的NVCACHE对于获得良好的性能至关重要。

但是,当您使用具有受功耗保护的写缓存的SSD时各种选项之间的性能应该不会有太大差异。另一方面,还需要考虑其他因素:

  • 使用硬件RAID通常更容易识别和更换故障磁盘:控制器清楚地标记出受影响的驱动器(例如,呈琥珀色的指示灯),更换它通常就像拉出旧驱动器/插入新驱动器一样简单。对于软件RAID解决方案,您需要输入适当的命令来识别和更换发生故障的驱动器。
  • 硬件RAID为BIOS提供了一个用于引导的卷,而软件RAID为BIOS提供了各种组件。
  • 使用正确的控制器(即:H730或H740)和磁盘(SAS 4Kn),您可以非常轻松地启用扩展数据完整性字段(T10 / T13);
  • 硬件RAID运行一个不透明的二进制blob,您无法对其进行控制;
  • Linux软件RAID比我曾经使用的任何硬件RAID都灵活得多。

就是说,在这种设置下,我强烈建议您考虑在Linux上使用ZFS:受功耗保护的写缓存意味着您可以在没有专用ZIL设备的情况下继续工作,并且ZFS添加的功能(压缩,校验和等)可能非常有用。 。

要直接回答您的问题:

  1. 这些配置中是否有数据丢失或掉电损坏的风险?否:由于任何高速缓存均受保护,因此不应因断电而损坏任何数据。
  2. 我应该期望哪种配置具有最佳写入性能?回写式缓存模式配置的H740P 应该为您提供绝对最大的写入性能。但是,在某些情况下,根据您的特定工作负载,直写可能会更快。DELL(和LSI)控制器甚至具有一些特定的SSD功能(即CTIO和FastPath),这些功能建立在直写的基础上,可以提高随机写性能。
  3. 我没有考虑过的NV缓存还有其他好处吗?是的:具有适当NVCACHE的控制器绝不会让两个RAID1 / 10支路拥有不同的数据。在某些情况下,Linux软件RAID容易(无害)RAID1不匹配。ZFS不会遇到该问题。

2
ZFS实际上不仅仅是一个RAID:它具有可变的奇偶校验条,因此没有ready-modify-write或“ write hole”。此外,它还具有高级ARC,而不是页面缓存。它错过了一件事:NV RAM ...可以通过NV DIMM集成来解决:)
BaronSamedi1958

13

Q1:这些配置中是否有数据丢失或断电损坏的风险?

解答1:您应该没有任何问题,除非您将缓存配置为写回模式,并且没有NV RAM。

Q2:我应该期望哪种配置具有最佳写入性能?

A2:一个显然拥有最大的缓存!...并且没有奇偶校验RAID,但当然是RAID10。

Q3:我没有考虑过的NV缓存还有其他好处吗?

A3:编写合并,欺骗等。但是这些确实很小。


我不确定缓存是否会有所帮助,因为我读到写重新排序对SSD的影响不大,并且因为SSD具有自己的写缓存。
M. Dudley

@ M.Dudley是的,它们具有缓存,但是您不能拥有太多的缓存。缓存是好的,缓存越多越好。
ThoriumBR

7
@M。达德利(Dudley):RAID控制器具有千兆字节的缓存,位于相对较快的低延迟PCIe x4-x8通道总线后面,而固态硬盘缓存以兆字节为单位,并且位于6-12 Gbps SATA / SAS链接之后。
BaronSamedi1958

@ BaronSamedi1958看起来似乎并不重要。“千兆字节的缓存”分布在您定义的整个逻辑卷上,因此细分为单个磁盘,则每个磁盘可能只有几兆字节。此外,即使是过时的三星850 Pro都带有1 GB的DRAM缓存,仅占H730P整个缓存的一半。最后但并非最不重要的一点是:SAS3接口在单个链路上提供12GB / s的性能,优于RAID控制器通常插入的x8 PCIe 3通道。
the-wabbit

2
@ the-wabbit,虽然我通常同意您的意见,但是您的带宽计算是错误的:SAS3的每个方向的最大值为12 Gb / s或1.5 GB / s。PCI-E 8x每个方向的最大带宽为128 Gb / s或16 GB / s。此外,SAS控制器本身通常像RAID控制器一样从上游PCI-E链路挂起。
shodanshok

0

您可能要使用Bonnie ++在服务器RAID卡/ Perc与SSD上进行测试。HDD速度为5k / 10 / 16k rpm或混合驱动器会改变统计信息和缓存使用情况。

ZFS的另一位拥护者。我在90年代中期开始使用SGI的服务器,ZFS打破了UFS / ext2 / 3相关的所有内容。


0

除了上面的好答案之外:经常清理但对于任何 RAID 的扩展完整性而言必不可少的一项是数据清理,也称为媒体巡逻读取巡逻。这样可确保在延长的时间内可读所有磁盘上的所有数据。

如果不进行清理,则有可能-并且在较长的时间段和甚至可能的大量扇区之后-长时间不使用的数据扇区不再可读。在正常操作模式下,这不是问题,因为可以使用冗余数据来重建坏扇区。但是,如果磁盘发生故障,则您已经失去了冗余(RAID 6或嵌套RAID级别除外),并且在重建过程中出现坏扇区时,您将死在水里。

因此,除非您不喜欢令人惊讶的惊喜,否则请始终启用数据清理

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.