Linux 上的软件 RAID 10

vpe*_*son 2 linux raid software-raid hardware-raid

很长一段时间以来,我一直在考虑在几台服务器上切换到 RAID 10。现在 Ubuntu 10.04 LTS 已经上线,是时候升级了。我使用的服务器是HP的Proliant ML115(非常良好的价值)。它有四个内部 3.5" 插槽。我目前为系统使用一个驱动器,其余三个磁盘使用一个 RAID5 阵列(软件)。

问题是这会在引导驱动器上产生单点故障。因此,我想切换到 RAID10 阵列,因为它可以为我提供更好的 I/O 性能和更高的可靠性。问题只是支持 RAID10 的好的控制器卡(例如 3Ware)的成本几乎与服务器本身一样多。此外,software-RAID10 似乎不能很好地与 Grub 配合使用。

你的建议是什么?我应该继续运行 RAID5 吗?有没有人能够在没有启动问题的情况下成功安装软件 RAID10?

Dav*_*ett 5

在这种情况下,我倾向于选择 RAID10,除非您需要单+RAID5 安排提供的额外空间。您获得相同的保证冗余(任何一个驱动器都可能发生故障,阵列将继续存在)和在更坏的情况下稍微好一点的冗余(RAID10 可以在 6 个“两个驱动器同时发生故障”情况中的 4 个中幸存下来),并且没有写入RAID5 经常遇到的惩罚。

您可能无法从 RAID10 启动,无论是作为传统的嵌套阵列实现(RAID0 中有两个 RAID1),还是使用 Linux 最近的一体式 RAID10 驱动程序,因为 LILO 和 GRUB 都希望拥有启动所需的所有信息一个驱动器,它可能不是 RAID0 或 10(或软件 RAID5 就这一点而言 - 它在硬件中工作,因为引导加载程序只能看到一个驱动器,而控制器处理它实际在驱动器之间传播的数据的位置)。

不过,有一个简单的方法可以解决这个问题:在每个驱动器的开头设置一个小分区(128MB 应该绰绰有余 - 您只需要为几个内核映像和相关的 initrd 文件提供空间)并将它们设置为RAID1 阵列安装为/boot. 您只需要确保引导加载程序正确安装在每个驱动器上,并且一切正常(一旦内核和 initrd 被加载,它们将找到主阵列并正确处理它)。

软件 RAID10 驱动程序有许多用于调整块布局的选项,这些选项可以根据您的 I/O 负载模式带来进一步的性能优势(请参阅此处了解一些简单的基准测试),尽管我不知道有任何发行版支持此 RAID 10 从安装尚未(只有更传统的嵌套排列)。如果您想尝试 RAID10 驱动程序,而您的发行版在安装时不支持它,您可以将整个基本系统安装到 RAID1 阵列中,如上面 /boot 所述,并使用剩余的磁盘空间构建 RAID10 阵列一旦启动到那个。