在控制器或LVM分割RAIDarrays?

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

我知道我将使用RAID 1创build5TB的可用空间。 但就性能,可靠性和pipe理而言,更好的方法是在控制器上创build一个5TBarrays,或创build5个1TBarrays,并使用LVM将其重新组合为一个(或多个)VG。

我特别想知道为什么你会select一种方法或另一种方法。

谢谢!

如果控制器允许你configuration一个10磁盘的RAID 10(而不是2个剩下2个磁盘的8个磁盘单元),这可能是最好的select。 pipe理起来非常简单,使用电池备份caching可以获得良好的写入性能,并且RAID卡完成所有繁重的工作,监控和pipe理。 只需要在操作系统中安装RAID卡的代理程序,以便您可以在操作系统内重新configuration和监视状态,并且应该进行设置。

把一切都放在RAID卡的护理上,使卡上软件的质量成为最重要的因素。 我有RAID卡已经崩溃,导致整个IO子系统“走开”,并需要重新启动服务器,我甚至有一个卡的实例完全失去arraysconfiguration,要么要从控制台仔细重新configuration或整个事情从备份恢复。 你在一台服务器上看到的任何问题的可能性都很低,但是如果你有成千上万的服务器,你可能会定期看到这些问题。 也许更新的硬件更好,我一段时间没有遇到这种问题。

另一方面,Linux中的IO调度可能甚至可能比RAID卡上的IO调度要好,因此要么单独提供每个磁盘,要么提供5个RAID 1单元,并且使用LVM来跨越它们可以给出最佳的读取性能。 电池支持的写入caching对于良好的写入性能是至关重要的,所以我不会build议任何没有这个function的configuration。 即使您可以将磁盘作为JBOD提供,并且同时启用了电池供电的写caching,但使用Linux软件突袭和智能硬件监控还会带来额外的pipe理开销和复杂性。 设置起来很容易,但是您需要通过该过程来处理驱动器故障,包括启动驱动器。 这不像用闪烁的黄色光盘popup光盘那么简单,而是更换。 额外的复杂性可能产生错误的空间。

所以如果你的控制器能够做到的话,我推荐10个磁盘的RAID 10,如果不能的话,我推荐5个RAID 1的LVM条带。 如果你testing了你的硬件,并发现JBOD和Linux RAID比使用更好,但你应该使用类似sysbench的东西,而不是仅仅使用dd的顺序读取来testing大部分磁盘的随机写入性能。

这实际上是R10,而不是R1 – 这是R10我会使用,即让操作系统看到所有十个原始磁盘,并用软件100%pipe理它,其他任何东西都是不必要的复杂。

如果由于某处存在32位错误而导致2TB LUN被困住了,我会倾向于在RAID卡上制作5x 1TB的RAID1 LUN,并将它们投入到一个卷组中,以创build一个大的5TB块空间。 这样卡处理隐含在RAID1关系中的写乘法,你得到5TB的空间。

如果你能使LUN大于2TB,我就倾向于在RAID卡上制作一个大arrays。 我的精益的力量取决于RAID卡的function。 我不知道这是什么,所以我不能告诉你。 如果我不信任它,我会坚持使用5x 1TB RAID1安排。

我build议使用昂贵的RAID控制器做大部分的RAID工作。 LSI卡及其附带的软件工作得非常好。 如果configuration正确,当数组发生干扰时,他们会向您发送电子邮件。 就像磁盘失败时一样。 两个linux软件raid选项都没有错,但是你已经出去购买了一个有点花哨的raid卡。 让它做的工作。

configuration磁盘arrays,将一个大的设备暴露给Linux。 如果你想把最后的设备分解成小块,使用lvm。 一个大的物理卷,一个大的卷组,并将卷组切割成任何您需要的逻辑卷。