如何使用 System Storage Manager 管理 CentOS/RHEL 7 上的 LVM 卷
逻辑卷管理器 (LVM) 是一种极其灵活的磁盘管理方案,允许您在多个物理硬盘驱动器上创建逻辑磁盘卷并调整其大小,而无需停机。然而,与管理传统的磁盘分区相比,其强大的功能的代价是学习曲线有些陡峭,使用多个命令行工具设置 LVM 需要更多复杂的步骤。
对于 CentOS/RHEL 用户来说这是个好消息。最新的 CentOS/RHEL 7 现在附带了 System Storage Manager(又名 ssm),它是 Red Hat 开发的用于管理各种存储设备的统一命令行界面。目前,ssm 可以使用三种卷管理后端:LVM、Btrfs 和 Crypt。
在本教程中,我将演示如何使用 ssm 管理 LVM 卷。您将会惊讶地发现,现在创建和管理 LVM 卷是多么简单。 🙂
准备SSM
在新的 CentOS/RHEL 7 上,您需要首先安装 System Storage Manager。
$ sudo yum install system-storage-manager
首先,让我们检查有关可用硬盘驱动器和 LVM 卷的信息。以下命令将显示有关现有磁盘存储设备、存储池、LVM 卷和存储快照的信息。输出来自全新的 CentOS 7 安装,默认情况下使用 LVM 和 XFS 文件系统。
$ sudo ssm list

在此示例中,有两个物理设备(/dev/sda
和 /dev/sdb
)、一个存储池 (centos
) 以及在池中创建的两个 LVM 卷(/dev/centos/root
和 /dev/centos/swap
)。
将物理磁盘添加到 LVM 池
让我们将新的物理磁盘(例如,/dev/sdb
)添加到现有存储池(例如,centos
)。将新物理存储设备添加到现有池的命令如下。
$ sudo ssm add -p <pool-name> <device>

将新设备添加到池中后,池将自动扩大设备的大小。检查名为centos
的存储池的大小,如下所示。

如您所见,centos
池已成功从 7.5GB 扩展到 8.5GB。然而,此时,池中存在的磁盘卷(例如,/dev/centos/root
和 /dev/centos/swap
)尚未利用增加的空间。为此,我们需要扩展现有的 LVM 卷。
扩展LVM卷
如果存储池中有额外空间,您可以扩大池中的现有磁盘卷。为此,请使用 resize
选项和 ssm
命令。
$ sudo ssm resize -s [size] [volume]
让我们将 /dev/centos/root 卷的大小增加 500MB。
$ sudo ssm resize -s+500M /dev/centos/root

验证现有卷的更新大小。
$ sudo ssm list volumes

我们可以确认 /dev/centos/root
卷的大小已从 6.7GB 增加到 7.2GB。但是,这并不意味着您可以立即利用在卷内创建的文件系统中的额外空间。您可以看到文件系统大小(FS size
)仍然为 6.7GB。
为了让文件系统识别增加的卷大小,您需要“扩展”现有文件系统本身。根据您使用的文件系统,有不同的工具来扩展现有文件系统。例如,对于 EXT2/EXT3/EXT4 使用 resize2fs
,对于 XFS 使用 xfs_growfs
,对于 Btrfs 使用 btrfs
等。
在本例中,我们使用 CentOS 7,其中默认创建 XFS 文件系统。因此,我们使用 xfs_growfs 来扩展现有的 XFS 文件系统。
扩展XFS文件系统后,验证文件系统是否完全占用整个磁盘卷7.2GB。


创建新的 LVM 池/卷
在本实验中,让我们看看如何在物理磁盘驱动器上创建新的存储池和新的 LVM 卷。使用传统的LVM工具,整个过程比较复杂;准备分区,创建物理卷、卷组和逻辑卷,最后构建文件系统。然而,使用ssm
,整个过程可以一次性完成!
以下命令的作用是创建一个名为 mypool
的存储池,在池中创建一个名为 disk0
的 500MB LVM 卷,使用 XFS 文件系统格式化该卷,并将其挂载到 /mnt/test
下。您可以立即看到 ssm
的强大功能。
$ sudo ssm create -s 500M -n disk0 --fstype xfs -p mypool /dev/sdc /mnt/test

让我们验证创建的磁盘卷。


拍摄 LVM 卷的快照
使用ssm
工具,您还可以拍摄现有磁盘卷的快照。请注意,仅当卷所属的后端支持快照时,快照才有效。 LVM后端支持在线快照,这意味着我们不必使正在快照的卷离线。此外,由于 ssm 的 LVM 后端支持 LVM2,因此快照支持读/写。
让我们拍摄现有 LVM 卷的快照(例如,/dev/mypool/disk0
)。
$ sudo ssm snapshot /dev/mypool/disk0
拍摄快照后,它会存储为一个特殊的快照卷,该卷存储快照时原始卷中的所有数据。

存储快照后,您可以移除原始卷,并挂载快照卷来访问快照中的数据。

请注意,当您尝试在装载原始卷的情况下装载快照卷时,您将收到以下错误消息。
kernel: XFS (dm-3): Filesystem has duplicate UUID 27564026-faf7-46b2-9c2c-0eee80045b5b - can't mount
删除 LVM 卷
删除现有磁盘卷或存储池与创建磁盘卷或存储池一样简单。如果您尝试删除已安装的卷,ssm
将首先自动卸载它。那里没有麻烦。
要删除 LVM 卷:
$ sudo ssm remove <volume>
删除存储池:
$ sudo ssm remove <pool-name>

结论
希望现在您已经看到了 ssm 的强大功能。在企业存储环境中,处理各种存储设备、磁盘卷和文件系统是很常见的。您无需费力使用多种不同的工具来管理复杂的存储配置组合,而是可以掌握单个命令行工具 ssm
,并让它的后端为您完成工作。 ssm
绝对是任何在复杂存储管理环境中工作的系统管理员的必备工具。