本 HOWTO 已弃用;Linux RAID HOWTO 由 linux-raid 社区以 wiki 形式维护,网址为 http://raid.wiki.kernel.org/
RAID 设备不能像普通磁盘一样分区。这对于希望运行 RAID-1(例如使用两块磁盘),但又想将系统划分为多个不同文件系统的系统来说,可能非常麻烦。一个糟糕的例子可能如下所示
# df -h Filesystem Size Used Avail Use% Mounted on /dev/md2 3.8G 640M 3.0G 18% / /dev/md1 97M 11M 81M 12% /boot /dev/md5 3.8G 1.1G 2.5G 30% /usr /dev/md6 9.6G 8.5G 722M 93% /var/www /dev/md7 3.8G 951M 2.7G 26% /var/lib /dev/md8 3.8G 38M 3.6G 1% /var/spool /dev/md9 1.9G 231M 1.5G 13% /tmp /dev/md10 8.7G 329M 7.9G 4% /var/www/html
如果 RAID 设备可以分区,管理员可以简单地创建一个 /dev/md0 device
设备,像往常一样对其进行分区,并将文件系统放在那里。相反,在今天的软件 RAID 中,即使系统中只有两块磁盘,他也必须为每个文件系统创建一个 RAID-1 设备。
内核中已经有各种补丁允许 RAID 设备分区,但截至目前(撰写本文时)为止,这些补丁都没有进入内核。简而言之;目前无法对 RAID 设备进行分区 - 但幸运的是,确实有另一种解决这个问题的方法。
分区问题的解决方案是 LVM,逻辑卷管理。LVM 已经在稳定的 Linux 内核系列中存在很长时间了 - 2.6 内核系列中的 LVM2 是对 2.4 内核系列中较旧的 LVM 支持的进一步改进。虽然 LVM 传统上因其复杂性而吓退了一些人,但如果管理员希望在服务器上使用多个文件系统,那么 LVM 确实是他们应该考虑的东西。
我们不会尝试在本 HOWTO 中描述 LVM 设置,因为已经有一个很好的 HOWTO 专门用于此目的。不过,将展示一个 RAID + LVM 设置的小例子。请看下面这样一个系统的 df
输出
# df -h Filesystem Size Used Avail Use% Mounted on /dev/md0 942M 419M 475M 47% / /dev/vg0/backup 40G 1.3M 39G 1% /backup /dev/vg0/amdata 496M 237M 233M 51% /var/lib/amanda /dev/vg0/mirror 62G 56G 2.9G 96% /mnt/mirror /dev/vg0/webroot 97M 6.5M 85M 8% /var/www /dev/vg0/local 2.0G 458M 1.4G 24% /usr/local /dev/vg0/netswap 3.0G 2.1G 1019M 67% /mnt/netswap“有什么区别?”你可能会问... 嗯,这个系统只有两个 RAID-1 设备 - 一个用于根文件系统,另一个在
df
输出中看不到 - 这是因为 /dev/md1
被用作 LVM 的“物理卷”。这意味着 /dev/md1
充当名为 vg0
的“卷组”中所有“卷”的“后备存储”。
所有这些“卷”术语都在 LVM HOWTO 中解释 - 如果你没有完全理解以上内容,也不必担心 - 细节现在并不特别重要(如果你想设置 LVM,无论如何都需要阅读 LVM HOWTO)。重要的是这种设置相对于多 md 设备设置的优势。
/dev/md2
设备设为物理卷,并将其添加到你的卷组中。就这样!你现在在你的卷组中有了更多的可用空间,可以用于扩展你现有的逻辑卷,或者添加新的逻辑卷。总而言之 - 对于具有多个文件系统的服务器,LVM(和 LVM2)绝对是一个 相当简单的 解决方案,应该考虑在软件 RAID 之上使用。如果你想了解更多关于 LVM 的信息,请继续阅读 LVM HOWTO。