第 3 章 LVM 管理概述
本章提供了用来配置 LVM 逻辑卷的管理流程概述,旨在提供对其所包含步骤的一般了解。有关常用 LVM 配置流程的具体步骤示例,请参考 第 5 章 LVM 配置示例。
有关用来执行 LVM 管理的 CLI 命令,请参考 第 4 章 使用 CLI 命令管理 LVM。
3.1. 在集群中创建 LVM 卷
可使用一组 LVM 集群扩展,即集群的逻辑卷管理器(CLVM)在集群环境中创建逻辑卷。这些扩展允许计算机集群使用 LVM 管理共享存储(例如:在 SAN 中)。
在 Red Hat Enterprise Linux 7 中使用 Pacermaker 管理集群。只有与 Pacemaker 集群联合使用方可支持集群的 LVM 逻辑卷,且必须将其配置为集群资源。
以下为您提供将集群 LVM 卷配置为集群资源时所需步骤概述。
安装集群软件和 LVM 软件包,启动集群软件,并创建集群。必须为该集群配置 fencing。文档《高可用附加组件管理》中提供了创建集群,并为该集群中的每个节点配置 fencing 的示例步骤。文档《高可用附加组件管理》提供了有关集群组件配置的详情。
CLVM 要求为每个节点的 /etc/lvm/lvm.conf 文件启用集群锁定。可以作为 root 用户使用 lvmconf --enable-cluster 命令启用集群锁定。执行这个命令更改锁定类型并禁用 lvmetad 守护进程。有关 lvmetad 守护进程的详情,请查看 第 3.6 节 “元数据守护进程(lvmetad)”。
有关手动配置 lvm.conf 文件支持集群锁定的详情,请查看 lvm.conf 文件本身的内容。有关 lvm.conf 文件的详情,请查看 附录 B, LVM 配置文件。
为集群设定 dlm 资源。可将该资源作为克隆资源创建,以便其可以在该集群的每个节点中运行。
# pcs resource create dlm ocf:pacemaker:controld op monitor interval=30s on-fail=fence clone interleave=true ordered=true
将 clvmd 配置为集群资源。与 dlm 资源一样,可将其配置为克隆的资源,以便在集群的所有节点中运行。
# pcs resource create clvmd ocf:heartbeat:clvm op monitor interval=30s on-fail=fence clone interleave=true ordered=true
设定 clvmd 和 dlm 的相依性及启动顺序。clvmd 必须在 dlm 之后启动,且必须与 dlm 在同一节点中运行。
# pcs constraint order start dlm-clone then clvmd-clone
# pcs constraint colocation add clvmd-clone with dlm-clone
创建集群的逻辑卷。在集群环境中创建 LVM 逻辑卷和在单一节点创建 LVM 逻辑卷是一样的。LVM 命令本身没有什么不同。要启用您在集群中创建的 LVM 卷,集群构架必须正在运行且集群必须可以仲裁。
默认情况下,在所有可访问共享存储的计算机中都可看到在共享存储中使用 CLVM 创建的逻辑卷。但也可能只有从集群中的某一个节点才可看到存储设备中创建逻辑卷。还可将逻辑卷状态从本地卷改为集群卷。有关详情请参考 第 4.3.3 节 “在集群中创建卷组” 以及 第 4.3.8 节 “更改卷组参数”。
警告
使用 CLVM 在共享存储中创建卷组时,必须确定该集群中的所有节点都可访问组成该卷组的物理卷。不对称的集群配置可导致有些节点可访问该存储而有些则不能。
在集群中创建镜像逻辑卷的示例请参考 第 5.5 节 “在集群中创建镜像 LVM 逻辑卷”。
3.2. 创建逻辑卷概述
以下总结了创建 LVM 逻辑卷的步骤。
将要用作 LVM 卷的分区初始化为物理卷(这样可标记它们)。
创建卷组。
创建逻辑卷。
创建逻辑卷后,可以生成并挂载该文件系统。本文档示例使用的是 GFS2 文件系统。
在逻辑卷中用 gfs_mkfs2 创建 GFS2 文件系统。
使用 mkdir 命令创建一个新的挂载点。在集群的系统中,在集群的所有节点中创建挂载点。
挂载文件系统。需要在 fstab 为系统中的每个节点添加一行。
另外,可以使用 LVM GUI 创建并挂载 GFS2 文件系统。
注意
虽然可在独立系统中部署 GFS2 文件系统,也可将其作为集群配置的一部分,但在 Red Hat Enterprise Linux 7 中不支持将 GFS2 作为独立文件系统使用。Red Hat 将继续为集群文件系统挂载快照支持单一节点 GFS2 文件系统(例如:用于备份)。
创建 LVM 卷在每台机器上都是不同的,因为保存 LVM 设置信息的区域是在物理卷中,而不是在创建该卷的机器中。使用存储的服务器有本地副本,但可使用物理卷中的内容重新生成。如果 LVM 版本兼容,则可以将物理卷附加到不同服务器中。
3.3. 在逻辑卷中增大文件系统
要在逻辑卷中增大文件系统,请按以下步骤执行:
创建新物理卷。
扩展带有您想要增大的文件系统逻辑卷的卷组,使其包含新的物理卷。
扩展逻辑卷使其包含新的物理卷。
增大文件系统。
如果卷组中有足够的未分配空间,则可以使用那些空间来扩展逻辑卷,而不是执行步骤 1 和 2。
3.4. 逻辑卷备份
元数据备份和归档会在每次修改卷组和逻辑卷配置时自动进行,除非在 lvm.conf 文件中禁用了此功能。默认情况下,元数据备份保存在 /etc/lvm/backup 文件中,元数据归档保存在 /etc/lvm/archive 文件中。元数据归档在 /etc/lvm/archive 文件中保存的时间和多少取决于您在 lvm.conf 文件中设定的参数。日常系统备份应该在备份中包含 /etc/lvm 目录的内容。
注意:元数据备份并不包含逻辑卷中的用户和系统数据。
可以手动使用 vgcfgbackup 命令将元数据备份到 /etc/lvm/backup 文件中。可以使用 vgcfgrestore 恢复元数据。有关 vgcfgbackup 和 vgcfgrestore 命令的论述请参考 第 4.3.13 节 “备份卷组元数据”。
3.5. 日志
所有信息输出都是通过日志模块传递,日志模式根据日志级别有不同的选择:
标准输出/错误
系统日志
日志文件
外部日志功能
在 /etc/lvm/lvm.conf 中设定日志级别,有关详情请参考 附录 B, LVM 配置文件。
3.6. 元数据守护进程(lvmetad)
LVM 可选择性使用中央元数据缓存,通过守护进程(lvmetad)和 udev 规则实施。该元数据守护进程有两个主要目的:提高 LVM 命令性能,同时允许 udev 自动激活逻辑卷或整个卷组使其在该系统中可用。
将 LVM 配置为通过在 lvm.conf 配置文件中将 global/use_lvmetad 变量设定为 1 使用该守护进程。这是默认值。有关 lvm.conf 配置文件的详情请参考 附录 B, LVM 配置文件。
注意
目前还不跨集群节点支持 lvmetad 守护进程,同时要求锁定类型为本地基于文件的锁定。使用 lvmconf --enable-cluster/--disable-cluster 命令时,会正确配置 lvm.conf 文件,包括 use_lvmetad 设置(locking_type=3 应为 0)。
如果将 use_lvmetad 的值从 1 改为 0,则必须重启或使用以下命令手动停止 lvmetad 服务:
# systemctl stop lvm2-lvmetad.service
通常每个 LVM 命令执行一次磁盘扫描查找所有相关物理卷,并读取卷组元数据。但如果元数据守护进程正在运行且已启动,则可跳过这个耗时的扫描。同时 lvmetad 守护进程在其可用时,会根据 udev 规则对每个设备只扫描一次。这样可节省大量 I/O,同时减少完成 LVM 操作所需时间,尤其是对有很多磁盘的系统。
当在运行时有新卷组可用时(例如通过热插拔或者 iSCSI),则不必须激活其逻辑卷方可使用。启用 lvmetad 守护进程后,可使用 lvm.conf 配置文件中的 activation/auto_activation_volume_list 选项配置一系列可自动激活的卷组和(/或者)逻辑卷。如果没有lvmetad 守护进程,则需要手动进行该操作。
注意
运行 lvmetad 守护进程时,如果执行 pvscan --cache device 命令,则不会应用 /etc/lvm/lvm.conf 文件中的 filter = 设置。要过滤设备,则需要使用 global_filter = 设置。LVM 不会打开无法通过全局过滤的设备,也永远不会对其进行扫描。您可能需要使用全局过滤器,例如:当中 VM 中使用 LVM 设备,但不想要物理主机扫描 VM 中的设备内容。
3.7. 使用 lvm 命令显示 LVM 信息
lvm 命令提供几个可用来显示 LVM 支持和配置的内置选项。
lvm dumpconfig
显示载入 /etc/lvm/lvm.conf 文件及其他任何配置文件后的 LVM 配置信息。有关 LVM 配置文件的详情,请查看 附录 B, LVM 配置文件。
lvm devtypes
显示可识别的内建块设备类型(Red Hat Enterprise Linux 发行本 6.6及之后的产品)。
lvm formats
显示可识别元数据格式。
lvm help
显示 LVM 帮助信息。
lvm segtypes
显示可识别逻辑卷片段类型。
lvm tags
显示这个主机中定义的标签。有关 LVM 对象标签的详情,请查看 附录 C, LVM 对象标签。
lvm version
显示当前版本信息。