1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00
LVM2 mirror repository https://sourceware.org/lvm2/
Go to file
David Teigland 74a388cca1 pvscan: autoactivate a VG once
When a VG has multiple PVs, and all those PVs come online
at the same time, concurrent pvscans for each PV will all
create the individual pvid files, and all will often see
the VG is now complete.  This causes each of the pvscan
commands to think it should activate the VG, so there
are multiple activations of the same VG.  The vg lock
serializes them, and only the first pvscan actually does
the activation, but there is still a lot of extra overhead
and time used by the other pvscans that attempt to
activate the already active VG.  This can lead to a backlog
of pvscans and timeouts.

To fix this, this adds a new /run/lvm/vgs_online/ dir that
works like the existing /run/lvm/pvs_online/ dir.  Each pvscan
that wants to activate a VG will first try to exlusively create
the file vgs_online/<vgname>.  Only the first pvscan will
succeed, and that one will do the VG activation. The other
pvscans will find the vgname file exists and will not do the
activation step.

When a PV goes offline, the vgs_online file for the corresponding
VG is removed.  This allows the VG to be autoactivated again
when the PV comes online again.  This requires that the vgname be
stored in the pvid files.
2019-02-21 15:17:41 -06:00
autoconf autoconf: Fix py-compile permissions 2016-02-18 01:05:05 +00:00
base configure: avoid repeative inclusion of configure.h 2018-12-21 19:19:50 +01:00
conf vdo: update vdo profile 2019-01-21 12:38:00 +01:00
coverity coverity: model few more functions 2017-06-27 12:17:16 +02:00
daemons vdo: enable dmeventd resize 2019-01-21 12:53:16 +01:00
device_mapper dm: ensure migration_threshold is big enough 2019-01-21 12:48:50 +01:00
doc Merge branch 'master' into 2018-05-11-fork-libdm 2018-06-01 13:04:12 +01:00
include headers: use configure.h as 1st. header 2018-12-14 15:09:13 +01:00
lib config: change scan_lvs default to 0 2019-02-20 13:30:46 -06:00
libdaemon build: Remove reference to undefined @BUILD_LVMETAD@ 2018-12-18 09:54:45 +01:00
libdm dm: migration_threshold for old linked tools 2019-01-21 12:52:16 +01:00
man man: lvmvdo component activation description 2019-01-28 22:39:10 +01:00
nix lockd: Clean up spec 2015-07-04 14:36:57 +02:00
po doc: change fsf address 2016-01-21 12:11:37 +01:00
scripts generators: avoid contacting syslog with generators 2019-01-08 13:13:54 +01:00
spec rpm: package lvmvdo man page 2019-01-22 14:35:47 +01:00
test pvscan: autoactivate a VG once 2019-02-21 15:17:41 -06:00
tools pvscan: autoactivate a VG once 2019-02-21 15:17:41 -06:00
udev udev: 69-dm-lvm-metad.rules is still needed 2018-12-06 10:50:42 +01:00
.gitignore gitignore 2018-05-23 16:53:18 +02:00
acinclude.m4 [build] uncomment 'serial 3' in an m4 file. 2018-04-30 09:44:27 +01:00
aclocal.m4 liblvm: remove lvmapi 2018-06-08 09:38:05 +01:00
configure headers: use configure.h as 1st. header 2018-12-14 15:09:13 +01:00
configure.ac headers: use configure.h as 1st. header 2018-12-14 15:09:13 +01:00
COPYING doc: change fsf address 2016-01-21 12:11:37 +01:00
COPYING.BSD Add BSD 2-Clause License 2018-07-27 17:09:46 +02:00
COPYING.LIB Fix inconsistent licence notices: executables are GPLv2; libraries LGPLv2.1. 2007-08-20 20:55:30 +00:00
INSTALL quick review of docs 2008-11-04 17:49:22 +00:00
make.tmpl.in configure: avoid repeative inclusion of configure.h 2018-12-21 19:19:50 +01:00
Makefile.in makefiles: correcting login of makefile 2018-12-17 10:55:20 +01:00
README pre-release 2018-10-10 11:26:53 +02:00
TESTING docs: Add TESTING file 2017-12-14 16:45:47 +01:00
VERSION post-release 2018-10-31 15:56:41 +01:00
VERSION_DM post-release 2018-10-31 15:56:41 +01:00
WHATS_NEW WHATS_NEW: scan_lvs default change 2019-02-20 14:04:49 -06:00
WHATS_NEW_DM dm: migration_threshold for old linked tools 2019-01-21 12:52:16 +01:00

This tree contains the LVM2 and device-mapper tools and libraries.

This is development branch, for stable 2.02 release see 2018-06-01-stable
branch.

For more information about LVM2 read the changelog in the WHATS_NEW file.
Installation instructions are in INSTALL.

There is no warranty - see COPYING and COPYING.LIB.

Tarballs are available from:
  ftp://sourceware.org/pub/lvm2/
  ftp://sources.redhat.com/pub/lvm2/
  https://github.com/lvmteam/lvm2/releases

The source code is stored in git:
  https://sourceware.org/git/?p=lvm2.git
  git clone git://sourceware.org/git/lvm2.git
mirrored to:
  https://github.com/lvmteam/lvm2
  git clone https://github.com/lvmteam/lvm2.git
  git clone git@github.com:lvmteam/lvm2.git

Mailing list for general discussion related to LVM2:
  linux-lvm@redhat.com
  Subscribe from https://www.redhat.com/mailman/listinfo/linux-lvm

Mailing lists for LVM2 development, patches and commits:
  lvm-devel@redhat.com
  Subscribe from https://www.redhat.com/mailman/listinfo/lvm-devel

  lvm2-commits@lists.fedorahosted.org (Read-only archive of commits)
  Subscribe from https://fedorahosted.org/mailman/listinfo/lvm2-commits

Mailing list for device-mapper development, including kernel patches
and multipath-tools:
  dm-devel@redhat.com
  Subscribe from https://www.redhat.com/mailman/listinfo/dm-devel

Website:
  https://sourceware.org/lvm2/

Report upstream bugs at:
  https://bugzilla.redhat.com/enter_bug.cgi?product=LVM%20and%20device-mapper
or open issues at:
  https://github.com/lvmteam/lvm2/issues

The source code repository used until 7th June 2012 is accessible here:
  http://sources.redhat.com/cgi-bin/cvsweb.cgi/LVM2/?cvsroot=lvm2.