LVM 管理磁盘驱动器。它可以将多个驱动器和分区组合成更大的卷组,通过快照辅助备份,并支持动态调整卷的大小。它还可以提供类似于 RAID 1 阵列的镜像功能。
对 LVM 的完整讨论超出了本简介的范围,但以下介绍基本概念。
要运行此处介绍的任何命令,必须安装 LVM2-2.03.41 软件包。所有命令都必须以 root 用户身份执行。
使用 lvm 管理磁盘通过以下概念实现:
即物理磁盘或分区,例如 /dev/sda3 或 /dev/sdb。
这是由管理员操作的、命名的物理卷组。构成卷组的物理卷数量任意。物理卷可以动态地添加到卷组中或从中移除。
卷组可以细分为逻辑卷。每个逻辑卷随后可以像普通 Linux 分区一样单独格式化。管理员可以根据需要动态调整逻辑卷的大小。
举一个具体例子,假设您有两个 2 TB 的磁盘。再假设一个非常大的数据库需要非常大量的空间,挂载在 /srv/mysql 下。初始分区设置如下所示:
分区 用途 大小 分区类型
/dev/sda1 /boot 100 MB 83(Linux)
/dev/sda2 / 10 GB 83(Linux)
/dev/sda3 swap 2 GB 82(Swap)
/dev/sda4 LVM 剩余 8e(LVM)
/dev/sdb1 swap 2 GB 82(Swap)
/dev/sdb2 LVM 剩余 8e(LVM)
首先初始化物理卷:
pvcreate /dev/sda4 /dev/sdb2
整个磁盘可以用作物理卷的一部分,但请注意,pvcreate 命令会销毁该磁盘上的任何分区信息。
接下来创建一个名为 lfs-lvm 的卷组:
vgcreate lfs-lvm /dev/sda4 /dev/sdb2
可以通过运行 vgscan 命令检查卷组的状态。现在创建逻辑卷。由于大约有 3900 GB 可用空间,保留约 900 GB 用于扩展。请注意,名为 mysql 的逻辑卷大于任何单个物理磁盘。
lvcreate --name mysql --size 2500G lfs-lvm lvcreate --name home --size 500G lfs-lvm
最后,可以格式化并挂载逻辑卷。在此示例中,使用 jfs 文件系统(jfsutils-1.1.15)进行演示。
mkfs -t ext4 /dev/lfs-lvm/home mkfs -t jfs /dev/lfs-lvm/mysql mount /dev/lfs-lvm/home /home mkdir -p /srv/mysql mount /dev/lfs-lvm/mysql /srv/mysql
可能需要激活这些逻辑卷,以便它们出现在 /dev 中。以
root 用户身份执行以下命令,可以同时激活所有逻辑卷:
vgchange -a y
LFS 启动脚本在 udev
脚本中自动将这些逻辑卷提供给系统。根据需要编辑 /etc/fstab
文件以自动挂载它们。
LVM 逻辑卷可以承载根文件系统,但需要使用 initramfs(初始 RAM 文件系统)。“关于 initramfs”一节 中提供的
initramfs 允许在内核命令行中通过 root=
参数传递 lvm 卷。
有关 LVM 的更多信息,请参见 LVM HOWTO 和 lvm 手册页。RedHat® 提供了一份详尽的 指南,尽管其中有时会引用专有工具。