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 中的设备内容。