本 HOWTO 已弃用;Linux RAID HOWTO 由 linux-raid 社区维护,网址为 http://raid.wiki.kernel.org/
使用 RAID 有许多充分的理由。其中一些是:将多个物理磁盘组合成一个更大的“虚拟”设备的能力,性能提升以及冗余。
然而,非常重要的是要理解 RAID 不能替代良好的备份。某些 RAID 级别将使您的系统免受单磁盘故障导致的数据丢失的影响,但 RAID 不会让您从意外的 "rm -rf /"
中恢复。如果持有 RAID 本身的服务器因某种原因丢失(盗窃、洪水、地震、火星入侵等),RAID 也不会帮助您保存数据。
RAID 通常允许您在遇到常见的硬件问题(单磁盘故障)时保持系统正常运行。但它本身不是完整的数据安全解决方案。认识到这一点非常重要。
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 设备上放置任何文件系统。
通常,RAID 被用作解决性能问题的方案。虽然 RAID 确实常常是您正在寻找的解决方案,但它并非万能灵药。性能问题可能有很多原因,而 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 设备只是一个块设备。
经典的 raidtools 是 Linux 的标准软件 RAID 管理工具,因此使用 mdadm 并非必须。
但是,如果您发现 raidtools 繁琐或功能有限,mdadm(多设备管理)是运行 RAID 系统的一个非常有用的工具。它可以作为 raidtools 的替代品或补充。
mdadm 工具由新南威尔士大学的软件工程师和内核开发人员 Neil Brown 编写,目前版本为 1.4.0,已被证明非常稳定。Linux-raid 邮件列表对此有许多积极的响应,并且 mdadm 很可能在未来得到广泛应用。
mdadm 和 raidtools 之间的主要区别是