3.5. 元数据守护进程(lvmetad)
LVM 可以选择使用中央元数据缓存,通过守护进程(lvmetad)和
udev
规则实现。元数据守护进程有两个主要目的:它提高了 LVM 命令的性能,并允许 udev
在逻辑卷或整个卷组系统可用时自动激活它们。
当
lvm.conf
配置文件中的 global/use_lvmetad
变量被设置为 1 时,LVM 被配置为使用守护进程。这是默认值。有关 lvm.conf
配置文件的详情,请参考 附录 B, LVM 配置文件。
注意
目前跨集群节点不支持 lvmetad 守护进程,需要锁定类型是基于文件的本地锁定。当您使用 lvmconf --enable-cluster/-disable-cluster 命令时,
lvm.conf
文件会被正确配置,包括 use_lvmetad
设置(对于 locking_type=3
,它应该是 0)。但请注意,在 Pacemaker 集群中,oc f:heartbeat:clvm
资源代理本身将这些参数设置为启动过程的一部分。
如果将
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 守护进程运行时,
/etc/lvm/lvm.conf
文件中的 filter =
设置不会在执行 pvscan --cache device 命令时应用。要过滤设备,您需要使用 global_filter =
设置。未通过全局筛选,且不会被 LVM 打开的设备,永远不会被扫描。例如,您可能需要使用全局过滤器,例如,当在虚拟机中使用 LVM 设备,且您不希望虚拟机中设备的内容被物理主机扫描时。