使用软件 RAID 与“固件”RAID(又名 FakeRAID)

使用软件 RAID 与“固件”RAID(又名 FakeRAID)

我们最近买了一台塔式服务器,我想在上面安装 Debian。我以为该设备有硬件 RAID,因为我可以看到 BIOS 屏幕。结果发现,它仍然是软件 RAID。当我通过该固件配置 RAID 驱动器时,我仍然可以在 Debian 安装程序中看到两个硬盘驱动器。当我尝试从安装程序中重新分区时,Debian 警告说软件 RAID 驱动器将丢失。

我对此有点失望,因为我一直认为硬件 RAID 会产生更好的性能。但无论如何,我现在的问题是,我是否应该使用 Debian 安装程序来配置 RAID 驱动器,并从主 BIOS 禁用此“固件”RAID?或者我应该使用此固件创建单独的驱动器,而不使用安装程序?使用固件是否有任何可靠性优势?

该固件版本为:

LSI MegaRaid Software RAID BIOS Version A.10.10211615R
LSI SATA RAID Found at PCI Bus No:00 Dev No:1F

更新 我从评论中看到,其他人也对我是否正在处理硬件 RAID 感到困惑。我的机器是联想 ThinkServer TS 440。在其数据表,它说的是

Integrated SATA SW RAID 0/1

据我了解,主板上的芯片中包含一个硬件组件(这就是它具有 PCI 地址的原因?),但不是典型的硬件 RAID。

答案1

我如何学会不再担心并爱上软件 RAID:

当我们所有的服务器存储都使用 SCSI 磁盘时,我曾经非常注重使用好的硬件 RAID——我们使用 HP/Compaq SmartArray 控制器,并且使用起来非常顺利。我长期认为软件 RAID 会导致性能下降,并且不像好的、有电池支持的硬件 RAID 控制器那样对故障具有稳定性。

然而,随着我们转向更便宜的 SAS 和 SATA 存储,我开始更加欣赏软件 RAID。意识到我可以直接在操作系统中构建 RAID 阵列,这带来了很大的灵活性和成本节省(带有电池备份缓存的真正硬件控制器仍然很昂贵),而不会对性能造成太大的影响(当然,这取决于其余硬件)。

在我们的案例中,权衡归结为稳健性和性能与低成本和灵活性之间的权衡。不幸的是,大多数“fakeraid”解决方案都是两全其美的:性能仍然低于真正的硬件 RAID,因为在大多数情况下,CPU 和系统内存而不是 fakeraid 控制器在做大部分工作,故障稳健性通常低于硬件 RAID,因为控制器更便宜,并且再次依赖于系统硬件的其余部分,灵活性较低,因为您不一定能在不同的硬件上重建阵列(就像在纯软件 RAID 中一样)。纯硬件或软件 RAID 几乎总是比 fakeraid 更好的选择。

综上所述,以下是我对在具有 fakeraid 控制器的系统上使软件 RAID 在 Debian 中运行的建议:

  • 在 BIOS 中完全禁用“RAID”固件 - 将其设置为 ACHI(如果您使用 SATA)、JBOD 或任何其他可能让您将磁盘尽可能直接传递到操作系统的设置。

  • 使用 mdraid/mdadm 而不是 dmraid。

  • 用于cat /proc/mdstat检查故障/重建状态。经常检查,并设置磁盘故障时自动发送电子邮件警报。

  • 为了获得最佳效果,请将 RAID 放在存储堆栈的底部。如果您计划使用加密和/或 LVM,请在 RAID 阵列顶部创建这些卷(请参阅此问题以了解具体细节,并注意所提到的问题似乎已在较新的 debian/ubuntu 中得到解决)。

  • 尽可能保持内核为最新版本,特别是当您使用 SSD 时 - TRIM 支持等功能正在不断添加和改进。

答案2

我一直认为硬件 RAID 会产生更好的性能

如何?

最后,MegaRaid IIRC 是一个 SAS 控制器,可以处理 100 多个硬盘,但它不会神奇地让它们更快。尤其是慢速 SATA 磁盘。在 (软件) CPU 甚至略微负担之前,您很可能已经达到驱动器的 IOPS 限制。

开始在它后面放置一些真实的东西,您可能会看到差异 - 主要是硬件突袭不会对您的带宽(emmory,pci-e插槽)造成太大的负担。

如果您有 bbu(电池备份单元),您可以在控制器中使用写回缓存 - 然后事情开始变得更好。但是使用一小组 SATA 磁盘 - 没有,没有速度差异。

我仍然会使用它;)

相关内容