在控制器还是 LVM 处拆分 RAID 阵列?

在控制器还是 LVM 处拆分 RAID 阵列?

我有一个 CentOS 盒子,带有 10 个 2TB 驱动器和一个 LSI RAID 控制器,用作 NFS 服务器。

我知道我将使用 RAID 1 来创建 5TB 的可用空间。但就性能、可靠性和管理而言,在控制器上创建一个 5TB 阵列或创建 5 个 1TB 阵列并使用 LVM 将它们重新分组为一个(或多个)VG 哪个更好。

我特别想知道您为什么选择一种方法或另一种方法。

谢谢!

答案1

如果控制器允许您配置 10 磁盘 raid 10(而不是 2 个 8 磁盘单元,剩下 2 个磁盘),这可能是最好的选择。它易于管理,使用电池支持的缓存可以获得良好的写入性能,并且 RAID 卡可以完成所有繁重的工作、监控和管理。只需在操作系统中安装 RAID 卡的代理,您就可以在操作系统内重新配置和监控状态,一切就绪了。

将所有东西都放在 RAID 卡上,使得卡上的软件质量成为最重要的因素。我曾遇到过 RAID 卡崩溃的情况,导致整个 IO 子系统“消失”,需要重新启动服务器,我甚至遇到过卡完全丢失阵列配置的情况,需要从控制台仔细重新配置它,或者从备份中恢复整个配置。对于一台服务器,出现任何特定问题的可能性很低,但如果您有数百或数千台服务器,您可能会定期看到此类问题。也许较新的硬件更好,我已经有一段时间没有遇到过此类问题了。

另一方面,Linux 中的 IO 调度有可能甚至很可能比 RAID 卡上的更好,因此单独呈现每个磁盘或将其作为 5 个 RAID 1 单元并使用 LVM 对它们进行条带化可能会提供最佳的读取性能。但是,电池支持的写入缓存对于良好的写入性能至关重要,因此我不会建议任何没有该功能的配置。即使您可以将磁盘作为 JBOD 呈现并同时启用电池支持的写入缓存,使用 Linux 软件 raid 和 smartd 硬件监控也会增加管理开销和复杂性。设置起来很容易,但您需要完成处理驱动器故障(包括启动驱动器)的过程。它并不像弹出黄色闪烁的磁盘并更换那么简单。额外的复杂性可能会产生错误的空间。

因此,如果您的控制器可以做到,我建议使用 10 磁盘 RAID 10;如果控制器做不到,我建议使用 5 个 RAID 1 和 LVM 条带化。如果您测试硬件并发现 JBOD 和 Linux RAID 效果更好,那么最好使用它们,但您应该使用 sysbench 之类的工具专门测试大部分磁盘的良好随机写入性能,而不仅仅是使用 dd 进行顺序读取。

答案2

那实际上是 R10,而不是 R1 - 我会使用 R10,即让操作系统看到所有十个原始磁盘并通过软件对其进行 100% 管理,其他任何事情都没有必要过于复杂。

答案3

如果您因为 32 位而无法使用 2TB LUN,我强烈倾向于在 RAID 卡上创建 5 个 1TB RAID1 LUN,并将它们放入卷组中以创建一个 5TB 的大块空间。这样,该卡就可以处理 RAID1 关系中隐含的写入乘法,并且您将获得 5TB 的空间。

如果您可以创建大于 2TB 的 LUN,我倾向于在 RAID 卡上创建一个大阵列。我倾向于的强度很大程度上取决于相关 RAID 卡的功能。我不知道它是什么,所以我不能给你建议。如果我不信任它,我会坚持使用 5x 1TB RAID1 安排。

答案4

我建议使用昂贵的 raid 控制器来完成大部分 raid 工作。LSI 卡及其附带的软件运行良好。如果配置正确,当阵列发生有趣的事情时,它们会向您发送电子邮件。例如当磁盘发生故障时。这两种 Linux 软件 raid 选项都没有问题,但您已经出去购买了有点花哨的 raid 卡。让它完成工作。

配置磁盘阵列以向 Linux 公开一个大设备。如果您想要将最终设备拆分成小卷,请使用 lvm。一个大物理卷,一个大卷组,并将卷组拆分成您需要的任意数量的逻辑卷。

相关内容