为什么 RAID 10 比 RAID 1 慢?

为什么 RAID 10 比 RAID 1 慢?

我们有一台新的 Dell 2950,配备 PERC 6/e 和 14 个外部 SAS 15K 73GB 驱动器。Oracle 11g 数据库作业需要 3 小时才能运行,驱动器设置为硬件 RAID 10(跨 7 个镜像对进行条带化)。数据库大小约为 26GB。在 RAID 1 中仅在两个驱动器上运行相同的作业仅需 1 小时。操作系统是 Win 2008 R2。

在我们更改生产设备上的 RAID 级别(停机时间相当长)之前,是否有人知道为什么我们会看到这个奇怪的结果,以及是否有更好的方法来解决它?

附加信息

PERC 6/e 应该运行最新的固件并且缓存电池正常。

最后,真实的故事

与 DBA 交谈后,我的脸红了。原来 RAID 1 是七个 RAID 1 卷,每个卷有两个驱动器。数据表和索引被分配给每个卷以尽量减少争用。显然,一个好的 DBA 可以从 14 个驱动器中获得比 RAID 10 控制器在它们之间盲目地进行条带化而不考虑文件访问模式更高的性能。一些 SAN 声称可以智能地迁移文件以提高性能,但如果很快就出现竞争,我会把钱押在我们的 DBA 身上!

答案1

我认为 user71281 暗示您的 RAID 控制器(或驱动程序)出了问题。当您检查控制器(或驱动程序)的 RAID 设置时,RAID10 设置绝不会比简单的 RAID1 慢。

您的 RAID 解决方案要么允许您设置极其低效的 RAID10 阵列,要么您发现了一个错误。也许使用第 8 对可以提高性能?或者也许当您将设置减少到 4 对时?最后一个选项可能意味着您必须升级到 146GB 磁盘。

但我会先检查固件更新,并检查 RAID 卡上有多少 RAM。它不会因为 BBU(电池备份单元)坏了而关闭缓存功能吧?

答案2

实际上,RAID1 比 RAID10 更快,当然 RAID 0 也比它们两个都快。原因是 RAID10 的奇偶校验和计算开销比 7-RAID1 卷更高。正如您的 DBA 所说,磁盘争用更少,主轴隔离更多。

缺点是每个 RAID1 对的磁盘空间耗尽的可能性更大。运行许多不同的事务时,这种分离效果很好,但是,在 RAID1 中对多个驱动器进行条带化会带来性能优势,因为现在许多主轴可以并行工作。

需要考虑的一件事是,创建较小磁盘时,集群大小会更小。您可能希望使用 DISKPART 并将日志的集群大小设置为 8K,将数据的集群大小设置为 64K,并且不要在同一个 raid1o 上混合日志和数据。这很可能是您的 DBA 的设置方式,现在您将两者结合在同一个 RAID10 上,从而导致更多的磁盘争用。

答案3

记录:迁移可以通过在迁移期间执行临时软件 raid1 在线完成。这意味着您需要再设置一个存储。如今,人们可以借用一堆 SSD 并将它们作为大型 iSCSI 卷连接起来,从而完成整个迁移而无需停机。通常,在迁移存储时,正确的方法是通过添加冗余,然后删除旧部分来完成。因此,迁移过程中风险最高的时​​间是开始之前和完成后。因为您只是在预期的冗余上运行。

相关内容