Autoactivate VG/LV on coldplug of DM-based PVs at boot.
This commit is contained in:
parent
40c9afff51
commit
19cc44730e
73
lvm2-2_02_99-also-autoactivate-on-coldplug.patch
Normal file
73
lvm2-2_02_99-also-autoactivate-on-coldplug.patch
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
commit 764195207d4773cf6f1674a2fb16e9a0acda304a
|
||||||
|
Author: Peter Rajnoha <prajnoha@redhat.com>
|
||||||
|
Date: Fri Apr 19 12:17:53 2013 +0200
|
||||||
|
|
||||||
|
udev: also autoactivate on coldplug
|
||||||
|
|
||||||
|
Commit 756bcabbfe297688ba240a880bc2b55265ad33f0 fixed autoactivation
|
||||||
|
to not trigger on each uevent for a PV that appeared in the system
|
||||||
|
most notably the events that are triggered artificially (udevadm
|
||||||
|
trigger or as the result of the WATCH udev rule being applied that
|
||||||
|
consequently generates CHANGE uevents). This fixed a situation in
|
||||||
|
which VGs/LVs were activated when they should not.
|
||||||
|
|
||||||
|
BUT we still need to care about the coldplug used at boot to
|
||||||
|
retrigger the ADD events - the "udevadm trigger --action=add"!
|
||||||
|
|
||||||
|
For non-DM-based PVs, this is already covered as for these we
|
||||||
|
run the autoactivation on ADD event only.
|
||||||
|
|
||||||
|
However, for DM-based PVs, we still need to run the
|
||||||
|
autoactivation even for the artificial ADD event, reusing
|
||||||
|
the udev DB content from previous proper CHANGE event that
|
||||||
|
came with the DM device activation.
|
||||||
|
|
||||||
|
Simply, this patch fixes a situation in which we run extra
|
||||||
|
"udevadm trigger --action=add" (or echo add > /sys/block/<dev>/uevent)
|
||||||
|
for DM-based PVs (cryptsetup devices, multipath devices, any
|
||||||
|
other DM devices...).
|
||||||
|
|
||||||
|
Without this patch, while using lvmetad + autoactivation,
|
||||||
|
any VG/LV that has a DM-based PV and for which we do not
|
||||||
|
call the activation directly, the VG/LV is not activated.
|
||||||
|
|
||||||
|
For example a VG with an LV with root FS on it which is directly
|
||||||
|
activated in initrd and then missing activation of the rest
|
||||||
|
of the LVs in the VG because of unhandled uevent retrigger on
|
||||||
|
boot after switching to root FS (the "coldplug").
|
||||||
|
|
||||||
|
(No WHATS_NEW here as this fixes the commit mentioned
|
||||||
|
above and which was not released yet.)
|
||||||
|
---
|
||||||
|
udev/10-dm.rules.in | 5 ++++-
|
||||||
|
udev/69-dm-lvm-metad.rules.in | 1 +
|
||||||
|
2 files changed, 5 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/udev/10-dm.rules.in b/udev/10-dm.rules.in
|
||||||
|
index cfee145..512d156 100644
|
||||||
|
--- a/udev/10-dm.rules.in
|
||||||
|
+++ b/udev/10-dm.rules.in
|
||||||
|
@@ -77,7 +77,10 @@ LABEL="dm_flags_done"
|
||||||
|
# before (e.g. in initrd). If udev is used in initrd, we require the udev init
|
||||||
|
# script to not remove the existing udev database so we can reuse the information
|
||||||
|
# stored at the time of device activation in the initrd.
|
||||||
|
-ACTION=="add", ENV{DM_UDEV_RULES_VSN}!="1", ENV{DM_UDEV_PRIMARY_SOURCE_FLAG}!="1", GOTO="dm_disable"
|
||||||
|
+ACTION!="add", GOTO="dm_no_coldplug"
|
||||||
|
+ENV{DM_UDEV_RULES_VSN}!="1", ENV{DM_UDEV_PRIMARY_SOURCE_FLAG}!="1", GOTO="dm_disable"
|
||||||
|
+ENV{DM_ACTIVATION}="1"
|
||||||
|
+LABEL="dm_no_coldplug"
|
||||||
|
|
||||||
|
# "dm" sysfs subdirectory is available in newer versions of DM
|
||||||
|
# only (kernels >= 2.6.29). We have to check for its existence
|
||||||
|
diff --git a/udev/69-dm-lvm-metad.rules.in b/udev/69-dm-lvm-metad.rules.in
|
||||||
|
index b16a27a..66c58b3 100644
|
||||||
|
--- a/udev/69-dm-lvm-metad.rules.in
|
||||||
|
+++ b/udev/69-dm-lvm-metad.rules.in
|
||||||
|
@@ -26,6 +26,7 @@ ACTION=="remove", GOTO="lvm_scan"
|
||||||
|
KERNEL!="dm-[0-9]*", ACTION!="add", GOTO="lvm_end"
|
||||||
|
|
||||||
|
# If the PV is a dm device, scan only after proper mapping activation (CHANGE event + DM_ACTIVATION=1)
|
||||||
|
+# or after a coldplug (event retrigger) with "add" event (ADD event + DM_ACTIVATION=1)
|
||||||
|
KERNEL=="dm-[0-9]*", ENV{DM_ACTIVATION}!="1", GOTO="lvm_end"
|
||||||
|
|
||||||
|
LABEL="lvm_scan"
|
@ -37,7 +37,7 @@
|
|||||||
Summary: Userland logical volume management tools
|
Summary: Userland logical volume management tools
|
||||||
Name: lvm2
|
Name: lvm2
|
||||||
Version: 2.02.98
|
Version: 2.02.98
|
||||||
Release: 6%{?dist}
|
Release: 7%{?dist}
|
||||||
License: GPLv2
|
License: GPLv2
|
||||||
Group: System Environment/Base
|
Group: System Environment/Base
|
||||||
URL: http://sources.redhat.com/lvm2
|
URL: http://sources.redhat.com/lvm2
|
||||||
@ -56,6 +56,7 @@ Patch10: lvm2-2_02_99-exit-pvscan-cache-immediately-if-cluster-locking-used-or-l
|
|||||||
Patch11: lvm2-2_02_99-skip-mlocking-verctors-on-arm-arch.patch
|
Patch11: lvm2-2_02_99-skip-mlocking-verctors-on-arm-arch.patch
|
||||||
Patch12: lvm2-2_02_99-fix-autoactivation-to-not-autoactivate-vg-lv-on-each-pv-change.patch
|
Patch12: lvm2-2_02_99-fix-autoactivation-to-not-autoactivate-vg-lv-on-each-pv-change.patch
|
||||||
Patch13: lvm2-2_02_99-synchronize-with-udev-in-pvscan-cache-and-fix-dangling-udev_sync-cookies.patch
|
Patch13: lvm2-2_02_99-synchronize-with-udev-in-pvscan-cache-and-fix-dangling-udev_sync-cookies.patch
|
||||||
|
Patch14: lvm2-2_02_99-also-autoactivate-on-coldplug.patch
|
||||||
|
|
||||||
BuildRequires: libselinux-devel >= %{libselinux_version}, libsepol-devel
|
BuildRequires: libselinux-devel >= %{libselinux_version}, libsepol-devel
|
||||||
BuildRequires: ncurses-devel
|
BuildRequires: ncurses-devel
|
||||||
@ -104,6 +105,7 @@ or more physical volumes and creating one or more logical volumes
|
|||||||
%patch11 -p1 -b .arm_vectors
|
%patch11 -p1 -b .arm_vectors
|
||||||
%patch12 -p1 -b .autoactivation
|
%patch12 -p1 -b .autoactivation
|
||||||
%patch13 -p1 -b .dangling_cookies
|
%patch13 -p1 -b .dangling_cookies
|
||||||
|
%patch14 -p1 -b .coldplug
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%define _default_pid_dir /run
|
%define _default_pid_dir /run
|
||||||
@ -600,6 +602,9 @@ the device-mapper event library.
|
|||||||
%{_libdir}/pkgconfig/devmapper-event.pc
|
%{_libdir}/pkgconfig/devmapper-event.pc
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Apr 19 2013 Peter Rajnoha <prajnoha@redhat.com> - 2.02.98-7
|
||||||
|
- Autoactivate VG/LV on coldplug of DM-based PVs at boot.
|
||||||
|
|
||||||
* Tue Apr 09 2013 Peter Rajnoha <prajnoha@redhat.com> - 2.02.98-6
|
* Tue Apr 09 2013 Peter Rajnoha <prajnoha@redhat.com> - 2.02.98-6
|
||||||
- Synchronize with udev in pvscan --cache and fix dangling udev_sync cookies.
|
- Synchronize with udev in pvscan --cache and fix dangling udev_sync cookies.
|
||||||
- Fix autoactivation to not autoactivate VG/LV on each change of the PVs used.
|
- Fix autoactivation to not autoactivate VG/LV on each change of the PVs used.
|
||||||
|
Loading…
Reference in New Issue
Block a user