1
0
mirror of git://sourceware.org/git/lvm2.git synced 2025-01-10 05:18:36 +03:00
lvm2/tools
David Teigland 74e404ce11 hints: new pvs_online type
Use a new form of hints to reduce device scanning in
vgchange -aay run by the udev rule for event based
autoactivation.

Standard hints allow a command with a named VG arg to scan
only the PVs in the named VG, rather than scanning all
available PVs.  Standard hints are useful with a stable set
of system devices.  When new devices are arriving, as occurs
during system startup, the hints are repeatedly invalidated,
which makes standard hints unhelpful while devices are
regularly appearing.  This is the situation in which
vgchange -aay is used, so standard hints are not generally
helpful for autoactivation.

In the context of system startup, pvscan --cache is keeping
track of available PVs using the pvs_online files, similar
to what the hints file does for a running system.  Given this,
a new hint mode, hints = "pvs_online", is added which derives
an equivalent to standard hints, based on pvs_online files
that are being created by udev-run pvscans.  This hint mode
is useful while devices are appearing, e.g. during system
startup, and vgchange -aay can benefit from it.

pvscan --cache -aay autoactivation already has a similar
optimization (the "quick" activation case) that is based
on the pvs_online file, but it is not implemented as a
form of hints.

This new form of hints is mainly useful in the context of
event based autoactivation, during which standard hints are
not useful.  Once the system is in a steady state after startup
(devices are not regularly appearing), the standard hints are
most useful.  The pvs_online hint method could be used on a
running system, but would be no better than standard hints,
and may be inferior because pvs_online files are not rigidly
updated after system startup.
2021-07-19 13:29:54 -05:00
..
.exported_symbols generate liblvm2cmd exported symbols too 2010-06-25 18:23:10 +00:00
.gitignore tools: add generated headers to .gitignore 2017-03-10 13:13:41 +00:00
args.h logging: to the systemd journal 2021-07-14 12:52:22 -05:00
cmdnames.h doc: change fsf address 2016-01-21 12:11:37 +01:00
command-lines.in logging: to the systemd journal 2021-07-14 12:52:22 -05:00
command.c skip indexing devices used by LVs in more commands 2021-07-09 13:59:31 -05:00
command.h commands: use AUTOTYPE in definitions 2021-04-21 08:41:37 -05:00
commands.h skip indexing devices used by LVs in more commands 2021-07-09 13:59:31 -05:00
dumpconfig.c lvmconfig: Add options to produce file preamble 2017-08-05 16:23:34 +01:00
errors.h tools: Introduce exit code EINIT_FAILED. 2017-07-26 23:18:03 +01:00
formats.c doc: change fsf address 2016-01-21 12:11:37 +01:00
license.inc pre-release 2017-03-28 16:11:35 +01:00
lv_props.h Allow dm-integrity to be used for raid images 2020-04-15 12:10:32 -05:00
lv_types.h Allow dm-integrity to be used for raid images 2020-04-15 12:10:32 -05:00
lvchange.c Add metadata-based autoactivation property for VG and LV 2021-04-07 15:32:49 -05:00
lvconvert_poll.c thin: ignore parallel merge while polling 2021-03-18 18:34:57 +01:00
lvconvert_poll.h build: Don't generate symlinks in include/ dir 2018-05-14 10:30:20 +01:00
lvconvert.c vdo: support vdo_pool_header_size 2021-06-28 20:41:07 +02:00
lvcreate.c vdo: support vdo_pool_header_size 2021-06-28 20:41:07 +02:00
lvdisplay.c process_each_lv: add check_single_lv function 2017-02-13 08:20:10 -06:00
lvextend.c doc: change fsf address 2016-01-21 12:11:37 +01:00
lvm2cmd-static.c lvmcmdlib: lvm2_init_threaded 2020-10-20 22:22:52 +02:00
lvm2cmd.c lvmcmdlib: lvm2_init_threaded 2020-10-20 22:22:52 +02:00
lvm2cmd.h lvmcmdlib: lvm2_init_threaded 2020-10-20 22:22:52 +02:00
lvm2cmdline.h lvmcmdlib: lvm2_init_threaded 2020-10-20 22:22:52 +02:00
lvm-static.c doc: change fsf address 2016-01-21 12:11:37 +01:00
lvm.c lvm: Fix editline compilation 2021-03-22 11:37:19 +01:00
lvmcmdlib.c lvmcmdlib: lvm2_init_threaded 2020-10-20 22:22:52 +02:00
lvmcmdline.c hints: new pvs_online type 2021-07-19 13:29:54 -05:00
lvmdevices.c skip indexing devices used by LVs in more commands 2021-07-09 13:59:31 -05:00
lvmdiskscan.c remove unused full filter 2018-12-04 14:06:46 -06:00
lvpoll.c build: Don't generate symlinks in include/ dir 2018-05-14 10:30:20 +01:00
lvreduce.c doc: change fsf address 2016-01-21 12:11:37 +01:00
lvremove.c process_each_lv: add check_single_lv function 2017-02-13 08:20:10 -06:00
lvrename.c toollib: make it possible to also process internal VGs, add 'include_internal' switch to process_each_vg fn 2016-06-20 11:33:42 +02:00
lvresize.c lvresize: allow mixing striped with errors or zero 2021-03-18 18:56:49 +01:00
lvscan.c Remove lvmetad 2018-07-11 11:26:42 -05:00
Makefile.in makefiles: static linking enhancements 2021-04-12 09:54:15 +02:00
polldaemon.c polldaemon: improve support for interruptions 2021-04-06 22:02:31 +02:00
pvchange.c archiving: take archive automatically 2021-06-09 14:56:13 +02:00
pvck.c coverity cleanups 2021-06-16 13:42:51 -05:00
pvcreate.c device usage based on devices file 2021-02-23 16:43:32 -06:00
pvdisplay.c add device hints to reduce scanning 2019-01-15 10:23:47 -06:00
pvmove_poll.c backup: automatically store data on vg_unlock 2021-06-09 14:56:13 +02:00
pvmove_poll.h doc: change fsf address 2016-01-21 12:11:37 +01:00
pvmove.c archiving: take archive automatically 2021-06-09 14:56:13 +02:00
pvremove.c pvcreate: call label scan prior to pvcreate_each_device 2019-04-30 14:10:27 -05:00
pvresize.c exported vg handling 2019-06-25 15:39:08 -05:00
pvscan.c hints: new pvs_online type 2021-07-19 13:29:54 -05:00
reporter.c cleanup: matching declaration order 2020-09-01 17:57:50 +02:00
segtypes.c doc: change fsf address 2016-01-21 12:11:37 +01:00
stub.h Remove vgconvert 2018-06-13 14:14:03 -05:00
tags.c doc: change fsf address 2016-01-21 12:11:37 +01:00
tool.h configure: avoid repeative inclusion of configure.h 2018-12-21 19:19:50 +01:00
toollib.c pvscan: add options listlvs listvg checkcomplete 2021-07-14 12:51:59 -05:00
toollib.h writecache: cachesettings in lvchange and lvs 2020-06-10 12:14:00 -05:00
tools.h pvscan: add options listlvs listvg checkcomplete 2021-07-14 12:51:59 -05:00
vals.h tools: correct units description 2021-04-19 14:40:14 +02:00
vgcfgbackup.c improve reading and repairing vg metadata 2019-06-07 15:54:04 -05:00
vgcfgrestore.c locking: unify global lock for flock and lockd 2019-04-29 13:01:05 -05:00
vgchange.c archive: avoid abuse of internal flag 2021-06-09 16:18:20 +02:00
vgck.c vgck: fix updatemetadata writing different descriptions 2019-10-11 12:57:32 -05:00
vgcreate.c backup: automatically store data on vg_unlock 2021-06-09 14:56:13 +02:00
vgdisplay.c tidy: Add missing underscores to statics. 2017-10-18 15:58:13 +01:00
vgexport.c backup: automatically store data on vg_unlock 2021-06-09 14:56:13 +02:00
vgextend.c backup: automatically store data on vg_unlock 2021-06-09 14:56:13 +02:00
vgimport.c backup: automatically store data on vg_unlock 2021-06-09 14:56:13 +02:00
vgimportclone.c skip indexing devices used by LVs in more commands 2021-07-09 13:59:31 -05:00
vgimportdevices.c backup: automatically store data on vg_unlock 2021-06-09 14:56:13 +02:00
vgmerge.c remove vg_read_error 2020-04-24 11:14:29 -05:00
vgmknodes.c process_each_lv: add check_single_lv function 2017-02-13 08:20:10 -06:00
vgreduce.c backup: automatically store data on vg_unlock 2021-06-09 14:56:13 +02:00
vgremove.c exported vg handling 2019-06-25 15:39:08 -05:00
vgrename.c backup: automatically store data on vg_unlock 2021-06-09 14:56:13 +02:00
vgscan.c locking: unify global lock for flock and lockd 2019-04-29 13:01:05 -05:00
vgsplit.c cleanup: indent 2021-04-23 23:00:55 +02:00