使用逻辑卷管理
逻辑卷管理 (LVM) 是硬盘驱动器上的一个抽象层,它允许 Linux 内核正常访问文件系统,但每个文件系统可能由多个硬盘驱动器组成。您可能看到的 LVM 的主要好处是,当您在文件系统(例如 /home)中空间不足时,您可以动态调整文件系统的大小,或者添加另一个硬盘驱动器并将 /home 扩展到两个驱动器上。如果您有两个文件系统都快用完空间,则可以使用新的驱动器来扩充这两个文件系统。
请注意我是如何避免使用“分区”这个词的吗?分区在 LVM 下不存在。在大多数 Linux 系统下,分区用于创建文件系统(格式化为 ext2、ext3 或 reiserfs),然后将文件系统挂载到挂载点。LVM 可以使用您的分区,并将它们组合到一个大的存储池(称为卷组)中。从该卷组 (VG) 中,您创建逻辑卷 (LV),这就像一个分区,您可以从中创建文件系统。LVM 白皮书(PDF)的第 3 页详细描述了这个概念。
去年十二月,我设置了我的 Linux 工作站。由于我不太清楚在接下来的几个月里我将如何使用这台机器,所以我决定安装 LVM - 我接受过 IBM AIX LVM 的培训,所以我知道它可以做什么。我还选择使用 ReiserFS 创建我的文件系统,结果证明这是一个巨大的好处。四个月后,我填满了 /home 文件系统。传统上,我将被迫移动东西,并创建一堆符号链接以使用另一个文件系统上的空间,或者重新分区、重新格式化并重新加载我的数据。在这种情况下,/home 已 100% 满,但我的 /share 和 /tmp 文件系统上有几个 GB 的未使用空间。LVM HOWTO 描述了一个像这样的经典场景,它恰恰说明了为什么 LVM 是一个出色的工具。
显然,解决方案是调整 LV 的大小。但是,我有一个旧的未使用的 4GB 硬盘驱动器(稍后会详细介绍),我想将其添加到组合中。我安装了新的硬盘驱动器,将其分区类型设置为 LVM(白皮书说 LVM 不需要这样做,但旧习惯难以改掉,我在阅读白皮书之前就做了),并将其添加到 VG。完成后,我调整了 LV 的大小以使用 4GB 驱动器,并从 /share 和 /tmp 中取出一些空间,并将其给了 /home。
这一切听起来如此简单,但当然,事实并非如此。我的第一个障碍是尝试调整 /home 上的 reiserfs 的大小。由于我使用的是 SuSE 7.3,所以我使用了 YaST2。它向我显示我的文件系统已调整大小,但 df 向我显示了真相 - 我的文件系统仍然是相同的大小。毫不气馁,我又尝试了几次。我启动了 YaST1,它毫无问题地调整了 ReiserFS 的大小。
第二个障碍是旧的 4GB 驱动器本身。我的其他驱动器是 7200 RPM 快速 IDE 驱动器。4GB 驱动器是 5400 RPM [慢速] IDE 驱动器。由于 LVM 将其很好地融入到 VG 中,我现在遭受了数据吞吐量性能下降的打击。在使用 4GB 驱动器之前,我可以以大约 8 - 10MB/秒的持续数据传输速率在文件系统之间移动数据。使用旧驱动器后,我的持续数据传输速率为 1 - 1.5MB/秒。看起来您受到文件系统上最慢驱动器速度的限制,这很有道理。
由于 LVM 是内核设备驱动程序,因此它可以与所有 Linux 发行版一起使用,但是,只有一些发行版在安装期间支持 LVM。截至撰写本文时,只有 Mandrake(见图 1)和 SuSE(见图 2)支持在 Linux 安装期间实施 LVM。

图 1:在 Mandrake 安装程序中选择 LVM

图 1:在 SuSE 安装程序中选择 LVM
SuSE 的 YaST 管理工具提供了一个基于 GUI 的逻辑卷管理界面。如前所述,我注意到 YaST2 无法正确调整 ReiserFS VG 的大小。YaST1 工作正常。
这使我想起了我之前提到的使用 ReiserFS 的好处 - 动态调整文件系统大小的能力。ext3 文件系统具有调整大小的能力,但是,该文件系统必须在调整大小期间卸载,而 ReiserFS 可以在挂载和使用时调整大小。
无论您使用哪个 Linux 发行版,您始终可以使用命令行来管理您的 LVM 安装。《LVM 白皮书》提供了关于使用这些工具的精彩讨论。
George Toft 已经深入参与 Linux 系统管理五年了。他喜欢帮助新手,目前在当地社区学院教授 Unix/Linux 入门课程。他还维护一个致力于 Linux 和 Linux 安全的网站,网址为 www.georgetoft.com/linux。
电子邮件: george@georgetoft.com