On Wed, Oct 31, 2012 at 9:05 PM, Thomas Bächler <thomas@archlinux.org> wrote:
I discovered some new awesomeness in LVM2 (okay, not THAT new, but still, so far unknown to me).
In our lvm2 package, I enabled lvmetad - this is a metadata caching daemon that reacts to events from udev. I completely reorganized our systemd and mkinitcpio lvm integration:
* lvm.service and lvm-on-crypt.service are gone. * Once you install lvm2, lvmetad.socket and dmeventd.socket are always active in systemd. * If you need LVM monitoring, you need to enable lvm-monitoring.service (recommended if you use LVM, even if you don't know if you need monitoring). I didn't enable this by default because it would always start lvmetad.service. * LVM is fully hotplugged via udev. You don't need to activate anything, LVM volumes will just work. LVM no longer requires systemd-udev-settle.service and all the race conditions should be gone. * LVM in mkinitcpio is also fully hotplugged, lvmwait= is now a no-op. However, LVM in mkinitcpio now requires the udev hook.
This requires that the use_lvmetad = 1 option is set in /etc/lvm/lvm.conf - this is now the default, but a .pacnew must be merged if it exists.
You can restrict the hotplugging of the volume groups with the auto_activation_volume_list option in lvm.conf. If you uncomment that, only the listed volumes will be enabled. This is commented out by default.
WARNING: If you have any incomplete or clustered volume groups, none of this will work yet! However, I doubt any Arch user uses that.
If you use both RAID and LVM, make sure that you use the mdadm_udev hook instead of the mdadm one. I had to do this change to make my system boot with the lvm2 package in [testing].