The lvmetad daemon caches LVM metadata so that LVM commands can read metadata from the cache rather than scanning disks. This can be an advantage because scanning disks is time consuming and may interfere with the normal work of the system. lvmetad can be a disadvantage when disk event notifications from the system are unreliable.
lvmetad does not read metadata from disks itself. Instead, it relies on an LVM command, like pvscan --cache, to read metadata from disks and send it to lvmetad to be cached.
New LVM disks that appear on the system must be scanned before lvmetad knows about them. If lvmetad does not know about a disk, then LVM commands using lvmetad will also not know about it. When disks are added or removed from the system, lvmetad must be updated.
lvmetad is usually combined with event-based system services that automatically run pvscan --cache on disks added or removed. This way, the cache is automatically updated with metadata from new disks when they appear. LVM udev rules and systemd services implement this automation. Automatic scanning is usually combined with automatic activation. For more information, see pvscan(8).
If lvmetad is started or restarted after disks have been added to the system, or if the global_filter has changed, the cache must be updated. This can be done by running pvscan --cache, or it will be done automatically by the next LVM command that's run.
When lvmetad is not used, LVM commands revert to scanning disks for LVM metadata.
In some cases, lvmetad will be temporarily disabled while it continues running. In this state, LVM commands will ignore the lvmetad cache and revert to scanning disks. A warning will also be printed which includes the reason why lvmetad is not being used. The most common reasons are the existence of duplicate PVs (lvmetad cannot cache data for duplicate PVs), or an 'lvconvert --repair' command has been run (the lvmetad cache may not be reliable while repairs are neeeded.) Once duplicates have been resolved, or repairs have been completed, the lvmetad cache is can be updated with pvscan --cache and commands will return to using the cache.
Use of lvmetad is enabled/disabled by:
lvm.conf(5)
global/use_lvmetad
For more information on this setting, see:
lvmconfig --withcomments global/use_lvmetad
To ignore disks from LVM at the system level, e.g. lvmetad, pvscan use:
lvm.conf(5)
devices/global_filter
For more information on this setting, see
lvmconfig --withcomments devices/global_filter
To run the daemon in a test environment both the pidfile_path and the socket_path should be changed from the defaults.