mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
a7de7a7bc0
New systemd services for startup: lvm-devices-wait.service Used in place of systemd-udev-settle, this service waits for udev+pvscan to process PVs listed in system.devices. It runs the command "lvmdevices --wait pvsonline". This only waits for PVs that can be matched to a device in sysfs, so it only waits for devices attached to the system. It waits specifically for the /run/lvm/pvs_online/<pvid> files to be created by pvscan. It quits waiting after a configurable number of seconds. This service gives the first activation service a chance to activate VGs from PVs that are available immediately at startup. If this service quits waiting before all the expected pvid files appear, then the VG associated with those PVs will most likely be activated by the -last service rather than the initial -main service. If those PVs are even slower to complete processing than the -last service, then the VG will be activated by event activation whenever they are finally complete. lvm-activate-vgs-main.service Calls "vgchange -aay", after lvm-devices-wait, to activate complete VGs. It only considers PVs that have been processed by udev+pvscan and have pvs_online files. This is expected to activate VGs from basic devices (not virtual device types) that are present at startup. lvm-activate-vgs-last.service Calls "vgchange -aay", after multipathd has started, to activate VGs that became available after virtual device services were started, e.g. VGs on multipath devices. Like -main, it only looks at PVs that have been processed by pvscan. This vgchange in the -last service enables event activation by creating the /run/lvm/event-activation-on file. Event activation will activate any further VGs that appear on the system (or complete udev processing) after the -last service. In the case of event activation, the udev rule will run vgchange -aay <vgname> via a transient service lvm-activate-<vgname>.service. This vgchange only scans PVs in the VG being activated, also based on the pvs_online files from pvscan. When there are many VGs that need activation during system startup, the two fixed services can activate them all much faster than activating each VG individually via events. lvm.conf auto_activation_settings can be used to configure the behavior (default ["service_and_event", "pvscan_hints"]). "service_and_event" - the behavior described above, where activation services are used first, and event activation is used afterward. "service_only" - only lvm-activate-vgs-* are used, and no event-based activation occurs after the services finish. (Equivalent to setting lvm.conf event_activation=0.) "event_only" - the lvm-activate-vgs* services are skipped, and all VGs are activated individually with event-based activation. "pvscan_hints" - the vgchange autoactivation commands use pvs_online files created by pvscan. This optimization limits the devices scanned by the vgchange command to only PVs that have been processed by pvscan. |
||
---|---|---|
.. | ||
cache_manip.c | ||
integrity_manip.c | ||
lv_alloc.h | ||
lv_manip.c | ||
lv.c | ||
lv.h | ||
merge.c | ||
metadata-exported.h | ||
metadata.c | ||
metadata.h | ||
mirror.c | ||
pool_manip.c | ||
pv_alloc.h | ||
pv_list.c | ||
pv_manip.c | ||
pv_map.c | ||
pv_map.h | ||
pv.c | ||
pv.h | ||
raid_manip.c | ||
segtype.c | ||
segtype.h | ||
snapshot_manip.c | ||
takeover_matrix.h | ||
thin_manip.c | ||
vdo_manip.c | ||
vg.c | ||
vg.h | ||
writecache_manip.c |