The lvm2-activation-generator is called by systemd(1) on boot to generate systemd units at runtime to activate LVM Logical Volumes (LVs) when global/event_activation=0 is set in lvm.conf(5). These units use vgchange -ay to activate LVs.
If event_activation=1, the lvm2-activation-generator exits immediately without generating any systemd units, and LVM fully relies on event-based activation to activate LVs. In this case, event-generated pvscan --cache -aay commands activate LVs.
These systemd units are generated by lvm2-activation-generator:
lvm2-activation-early.service is run before systemd's special cryptsetup.target to activate LVs that are not layered on top of encrypted devices.
lvm2-activation.service is run after systemd's special cryptsetup.target to activate LVs that are layered on top of encrypted devices.
lvm2-activation-net.service is run after systemd's special remote-fs-pre.target to activate LVs that are layered on attached remote devices.
Note that all the underlying LVM devices (Physical Volumes) need to be present when the service is run. If the there are any devices that appear to the system later, LVs using these devices need to be activated directly by lvchange(8) or vgchange(8).
The lvm2-activation-generator implements the Generators Specification as referenced in systemd(1).