lvm2-activation-generator man page
lvm2-activation-generator — generator for systemd units to activate LVM2 volumes on boot
The lvm2-activation-generator is called by systemd(1) on boot to generate systemd units at runtime to activate LVM2 volumes if lvmetad(8) is disabled (global/use_lvmetad=0 lvm.conf(5) option is used). Otherwise, if lvmetad(8) is enabled, the lvm2-activation-generator exits immediately without generating any systemd units and LVM2 fully relies on event-based activation to activate the LVM2 volumes instead using the pvscan(8) (pvscan --cache -aay) call that is a part of udev(8) rules.
These systemd units are generated by lvm2-activation-generator:
lvm2-activation-early.service used for activation of LVM2 volumes that is ordered before systemd's special cryptsetup.target to support LVM2 volumes which are not layered on top of encrypted devices.
lvm2-activation.service used for activation of LVM2 volumes that is ordered after systemd's special cryptsetup.target to support LVM2 volumes which are layered on top of encrypted devices.
lvm2-activation-net.service used for activation of LVM2 volumes that is ordered after systemd's special remote-fs-pre.target to support LVM2 volumes which are layered on attached remote devices.
Note that all the underlying devices (Physical Volumes) need to be present when the service is run. If the there are any devices presented in the system anytime later, any LVM2 volumes on top of such devices need to be activated directly by lvchange(8) or vgchange(8). This limitation does not exist when using lvmetad(8) and accompanying event-based activation since such LVM volumes are activated automatically as soon as the Volume Group is ready (all the Physical Volumes making up the Volume Group are present in the system).
The lvm2-activation-generator implements the Generators Specification as referenced in systemd(1).
lvm.conf(5) vgchange(8) lvchange(8) lvmetad(8) pvscan(8) udev(7) systemd(1) systemd.target(5) systemd.special(7)
lvchange(8), lvconvert(8), lvcreate(8), lvdisplay(8), lvextend(8), lvm(8), lvmconfig(8), lvmdiskscan(8), lvm-fullreport(8), lvm-lvpoll(8), lvreduce(8), lvremove(8), lvrename(8), lvresize(8), lvs(8), lvscan(8), pvchange(8), pvck(8), pvcreate(8), pvdisplay(8), pvmove(8), pvremove(8), pvresize(8), pvs(8), pvscan(8), vgcfgbackup(8), vgcfgrestore(8), vgchange(8), vgck(8), vgconvert(8), vgcreate(8), vgdisplay(8), vgexport(8), vgextend(8), vgimport(8), vgimportclone(8), vgmerge(8), vgmknodes(8), vgreduce(8), vgremove(8), vgrename(8), vgs(8), vgscan(8), vgsplit(8).