Next Previous Contents

2. 为什么使用 RAID?

本 HOWTO 已弃用;Linux RAID HOWTO 由 linux-raid 社区维护,网址为 http://raid.wiki.kernel.org/

使用 RAID 有许多充分的理由。其中一些是:将多个物理磁盘组合成一个更大的“虚拟”设备的能力,性能提升以及冗余。

然而,非常重要的是要理解 RAID 不能替代良好的备份。某些 RAID 级别将使您的系统免受单磁盘故障导致的数据丢失的影响,但 RAID 不会让您从意外的 "rm -rf /" 中恢复。如果持有 RAID 本身的服务器因某种原因丢失(盗窃、洪水、地震、火星入侵等),RAID 也不会帮助您保存数据。

RAID 通常允许您在遇到常见的硬件问题(单磁盘故障)时保持系统正常运行。但它本身不是完整的数据安全解决方案。认识到这一点非常重要。

2.1 设备和文件系统支持

Linux RAID 可以在大多数块设备上工作。无论您使用 IDE 或 SCSI 设备,还是两者的混合,都无关紧要。有些人也使用网络块设备 (NBD),并取得了一定程度的成功。

由于 Linux 软件 RAID 设备本身就是一个块设备,因此以上意味着您实际上可以创建由其他 RAID 设备组成的 RAID。这反过来使得支持 RAID-10(多个 RAID-1 设备的 RAID-0)成为可能,只需一起使用 RAID-0 和 RAID-1 功能即可。其他更奇特的配置,例如 RAID-5 over RAID-5 “矩阵”配置也同样得到支持。

RAID 层与文件系统层完全无关。您可以像在任何其他块设备上一样,在 RAID 设备上放置任何文件系统。

2.2 性能

通常,RAID 被用作解决性能问题的方案。虽然 RAID 确实常常是您正在寻找的解决方案,但它并非万能灵药。性能问题可能有很多原因,而 RAID 只是其中一些问题的解决方案。

请参阅第一章,了解每个级别的性能特征。

2.3 在 RAID 上使用交换空间

没有理由为了交换性能而使用 RAID。内核本身可以在多个设备上条带化交换,如果您只是在 /etc/fstab 文件中为它们赋予相同的优先级。

一个不错的 /etc/fstab 看起来像

/dev/sda2       swap           swap    defaults,pri=1   0 0
/dev/sdb2       swap           swap    defaults,pri=1   0 0
/dev/sdc2       swap           swap    defaults,pri=1   0 0
/dev/sdd2       swap           swap    defaults,pri=1   0 0
/dev/sde2       swap           swap    defaults,pri=1   0 0
/dev/sdf2       swap           swap    defaults,pri=1   0 0
/dev/sdg2       swap           swap    defaults,pri=1   0 0
这种设置让机器可以在七个 SCSI 设备上并行交换。不需要 RAID,因为这早已是内核的一项功能。

使用 RAID 进行交换的另一个原因是高可用性。如果您设置一个系统以在例如 RAID-1 设备上启动,则该系统应该能够承受磁盘崩溃。但是,如果系统一直在有故障的设备上进行交换,那么您肯定会宕机。在 RAID-1 设备上进行交换将解决这个问题。

关于在 RAID 设备上交换是否稳定的问题,已经有很多讨论。这是一个持续的辩论,因为它在很大程度上还取决于内核的其他方面。截至撰写本文时,似乎在 RAID 上交换应该是完全稳定的,但是您应该自己对系统进行压力测试,直到您对稳定性感到满意为止。

您可以在 RAID 设备上的文件系统中的交换文件中设置 RAID,或者您可以根据自己的需要将 RAID 设备设置为交换分区。与往常一样,RAID 设备只是一个块设备。

2.4 为什么使用 mdadm?

经典的 raidtools 是 Linux 的标准软件 RAID 管理工具,因此使用 mdadm 并非必须。

但是,如果您发现 raidtools 繁琐或功能有限,mdadm(多设备管理)是运行 RAID 系统的一个非常有用的工具。它可以作为 raidtools 的替代品或补充。

mdadm 工具由新南威尔士大学的软件工程师和内核开发人员 Neil Brown 编写,目前版本为 1.4.0,已被证明非常稳定。Linux-raid 邮件列表对此有许多积极的响应,并且 mdadm 很可能在未来得到广泛应用。

mdadm 和 raidtools 之间的主要区别是


Next Previous Contents