如何获得最大的持续顺序磁盘写入性能?

use*_*998 0 raid performance hard-drive streaming hardware-raid

我需要约 1 GB/秒的数据写入速率并持续约 1 小时。数据通过该PCIe x4 图像采集卡传入。我需要将其全部带宽传输到磁盘。

我没有 RAID 经验,但据我所知,具有尽可能多的高 RPM 磁盘的 RAID 0 就是答案。我还发现分立 RAID 控制器比任何内置于主板的控制器更快、更可靠。

为了获得具体答案的具体起点,我最初的猜测是以下硬件将是完成此任务的良好系统:

  • RAID 控制器:LSI MegaRAID 9280-16i4e
  • 硬盘:11 个 Western Digital Black Caviar 2 TB SATA III 7200 RPM 64 MB
  • 电缆:3ware CBL-SFF8087OCF-10M SFF-8087 串行 ATA 分支电缆
  • 主板:技嘉 GA-Z77X-UD3H LGA 1155 英特尔 Z77
  • 电源:Silverstone Strider Gold Evolution SST-ST1200-G 1200W v2.3 80 PLUS GOLD
  • 机箱:Rosewill RSV-L4411 4U 机箱 12 个热插拔托架

我的问题是: 如何实现最大的持续顺序磁盘写入性能?

一个好的答案将解决以下问题:

  • 为了实现最快的顺序写入,我需要在 RAID 控制器和 HDD 中寻找哪些功能/规格?
  • 写入速度与CPU无关吗?(即,我如何确保使用 DMA?)有没有办法让数据路径甚至绕过 RAM?四通道 RAM 与双通道 RAM 重要吗?
  • 主板上是否有需要注意的瓶颈,即北桥/南桥?如果是这样,我将如何检测/避免这样的问题?
  • 在持续顺序写入中,是否有任何缓存(在控制器、HDD、CPU 等上)相关?
  • 如何确保 PSU 足以满足所有这些驱动器的需求?我知道我可能需要担心导轨上的安培数?这里的不足会表现为性能问题/随机崩溃,还是会明显工作/失败?
  • 与上面相同的问题,关于冷却。
  • 使用外部驱动器外壳有优势吗?连接到它们是否会造成瓶颈?
  • 哪些 BIOS 设置对于该应用程序很重要?AHCI 等?
  • 什么文件系统最好?相机/图像采集卡驱动程序都是Windows的,所以我被困在win7中。我认为 64 位与 32 位会提高带宽吗?
  • 我应该做什么调整?

该问题的先前版本因“太宽泛”而被删除:

“可能的答案太多,或者对于这种格式来说,好的答案太长。请添加详细信息以缩小答案集或隔离可以在几段中回答的问题。”

但我的问题非常具体,具有普遍意义,而且我提供了一些细节,可以在单个段落中而不是“整本书”中提供有效的答案。我所有的详细问题只是确保对于任何人都应该关心的这个单一问题的潜在瓶颈的答案是全面的:快速持续的顺序写入。正如用户 50-3 所建议的那样,将问题分成 32 个单独的问题对任何人来说都是没有用的。这是一个示例响应,显示了我所期望的形式(我不知道实际信息是否正确,这是我的最佳猜测):

  • 具有高 RPM 磁盘的 RAID 0 确实是实现最快持续顺序写入的方法(假设您正在使用图像采集卡的“流”模式)。SSD 对此并不适用,因为由于“均衡”所需的处理(防止任何一个位置比其他位置使用更多),它们会随着使用而显着减慢写入时间。
  • 要无限期地维持 1GB/秒,您需要 >3 个 7200RPM 6Gb/秒 SATA 驱动器(6Gb/秒 * 1/8 GB/Gb = 0.75 GB/秒/驱动器,没有空间)。更多驱动器将线性提高您的带宽余量,但在总线数据宽度(32 或 64)之后就会饱和。
  • SATA 是最具成本效益的 HDD 技术,SAS 在快速顺序写入方面没有明显优势。SAS 在随机位置的寻道时间和可靠性方面表现更好。SAS 中更快的 RPM 会提高顺序写入速度,但会被较低的密度/容量所抵消。
  • 任何像样的图像采集卡/RAID 卡驱动程序都使用 DMA(您提到的驱动程序),因此 CPU 并不重要。数据路径将始终包括系统内存。写入磁盘将比 RAM 慢得多,因此您不需要任何特殊的东西(任何 DDR3 都可以)。RAM 的数量(以及控制器、HDD、CPU 上的缓存大小)并不重要,因为缓冲区在持续写入期间会很快填满。
  • 任何 PCIe 2.0 主板上的北桥/南桥都不会成为瓶颈。您所需要的只是一个独立的 RAID 控制器 >= PCIe 2.0,为您拥有的驱动器提供足够的 SATA 连接。仅当使用扩展器导致驱动器共享带宽时,到机柜的外部连接才会成为瓶颈。您需要一张具有比图像采集卡上的 4 个通道更多 PCIe 通道的卡,这样 PCIe 总线就不会成为瓶颈。9280 也不错,但对于你的目的来说有点过分了;9240 8i 的成本不到一半,而且足够了。LSI 控制器是最昂贵的控制器之一,但与更便宜的品牌 Highpoint/Areca 相比,在错误恢复过程中往往更快/更可靠/更少麻烦。
  • 您需要一个功率足够用于所有驱动器和控制器的 PSU(9280 使用 15W,每个 WD 使用 10W)。每个驱动器的峰值电流约为 1A,您需要限制 PSU 的每个电路(“轨”)上的数量。1200G 有一根 100A 的电源轨,所以你不会有问题。透支将显示为随机硬崩溃(可能损坏驱动器和其他组件),过热也是如此。
  • 由 12 个热插拔托架制成的机箱内置的冷却装置应该足以满足近乎恒定的非顺序读取负载,这种读取比顺序写入产生更多的热量。为了确保您不需要额外的冷却,请在持续写入几分钟后监视温度(google HDDTemp)。
  • AHCI 是唯一与快速顺序写入相关的 BIOS 设置(也打开 SMART)。在安装 Windows之前设置这两项。
  • Windows 的 NTFS 文件系统就可以了(无论如何也没有其他选择)。
  • 使用 win64 与 win32 相比,您将获得更好的顺序写入性能,因为 raid 控制器的 DMA 带宽将是 win64 的两倍。
  • 您不必进行任何调整;您的 raid 控制器设置的默认块大小等应该足够了。更大的块会更快,但更容易受到损坏并且不必要。

如果您仍然认为这个问题“太宽泛”,请具体说明原因并建议如何缩小范围,同时仍然为有兴趣实现最大持续顺序写入性能的人们提供全面的答案。这个问题更适合超级用户而不是服务器故障,因为它不是特定于企业 IT 的。

Hen*_*nes 5

你列了一个很长的清单,我不会一一回答。但我想把这些事情说得很清楚:

1) PCI 无法维持这些速度。PCI Express 可以,它是一种完全不同的技术,采用点对点链路(称为通道)而不是共享总线。您链接到的卡是“ PCIe x4”。额外的内容e非常相关。

2) 条带化(RAID 0、RAID10 等)是很有可能的。要么有十几个高性能磁盘。或者您可以使用普通磁盘。在办公室角落商店中,沼泽标准 7200 RPM SATA 驱动器的速度约为 100MB/秒。所以你至少需要十几个这样的东西(因为事情永远不会完美地扩展)。

3) HW RAID、软件RAID 和Fake RAID(支持BIOS 的软件RAID,例如Intel IRSST)都可以工作。

如果您不需要进行大量计算(例如 RAID6)并且需要高性能或 CPU 速度较慢,则不建议使用软件 RAID。

硬件 RAID 会有所不同。一块好的硬件 RAID 卡非常棒。与良好的 SW RAID 解决方案相比,糟糕的解决方案可能表现很差。良好的硬件 RAID 通常需要电池支持的缓存或闪存来启用快速模式。

4) SATA II 或 III(3.0 或 6.0 GB/秒)或 SAS 3GBIT/秒、SAS 6GBIT SEC,...无关紧要。并且单个旋转磁盘不会使这些链接中的任何一个饱和。目前的消费类 SATA 驱动器最大速度约为 100MB/秒。高端企业 SAS 驱动器的速度可达 200MB/秒。两种速度均低于 3.0GB/秒。

5)RAID0不太安全。如果其中一个磁盘出现故障,则所有磁盘都会丢失。如果您只需要测试事物并保存数据,这可能是可以接受的。他们立即将其保存在安全的地方进行处理。但是,使用的磁盘越多,出现故障的磁盘就越多。

RAID 通常涉及冗余。 RAID0则不然,它只关心性能

6) 最后,为了完整起见:SSD 本身并不是坏事。对于如此多的数据,它们会很昂贵,而且可能不需要,但 SSD 不需要减慢速度。在将 SSD 添加到记录阵列之前,只需完全擦除 SSD(例如删除所有分区,或安全擦除它)。一旦满了,速度可能会变慢。但正确准备它并运行一次会话应该没问题。

7)

AHCI 是唯一与快速顺序写入相关的 BIOS 设置(也打开 SMART)。

您无法打开或关闭 SMART。它在驱动器上始终处于打开状态。BIOS 中的选项仅意味着“在 POST 时读取驱动器 SMART 数据,如果出现任何问题,则警告用户”。通常只有一行,例如“SMART:DISK FAILURE IMMINENT”。按F1继续!”。对性能没有影响。

在安装 Windows 之前设置这两项。

为了获得一致的性能:将操作系统安装在其自己的驱动器上。为操作系统和数据保留单独的卷。

8)

要无限期地维持 1GB/秒,您需要 >3 个 7200RPM 6Gb/秒 SATA 驱动器(6Gb/秒 * 1/8 GB/Gb = 0.75 GB/秒/驱动器,没有空间)。

不。

6GBit/秒数据链路 SATA 驱动器将能够在磁盘和控制器/RAID 卡之间传输大约 300MiB/秒。(6.0除以8表示位到字节,但也有一些开销,a/10更现实)。

其次,驱动器能够非常快地接收数据,但将其写入磁盘会较慢。现代 7200 RPM SATA 驱动器的实际价值是 100MiB/秒的持续写入。

这意味着您至少需要 10 个此类驱动器。而且只有当一切都完美地扩展时。

更多驱动器将线性提高您的带宽余量,但在总线数据宽度(32 或 64)之后就会饱和。

对于 PCI 来说是这样。尽管写的是 PCI,但 OP 的意思是 PCI-e,它的速度要快得多。4 通道 PCI-e v2 高达 10Gbit/秒。这应该足够了(尽管没有太多的空间)。