[arch-general] Automatic LVM assembly - call for testers
Traditionally, LVM is assembled by running "vgchange -ay" manually. That has several problems, especially if one of the physical volumes is missing when the VG was supposed to be assembled. This has been experienced by people who use LVM on USB storage for their root device. I came up with a way of assembling LVM automatically through udev: A udev rule combined with a short shell script waits until all required physical volumes have been detected, then assembles the volume group in the background. This also works when adding a removable device to the system at any time. I'm asking anyone with LVM and a bit of spare time to test this. I'm especially interested in results from people who have a volume group on more than one hard drive. This is how it works: Get the package from: http://dev.archlinux.org/~thomas/lvm_autoassemble/ If you want to use this for detection of your boot device: Replace the "lvm2" hook with the "lvm_autoassemble" hook in mkinitcpio.conf and recreate the initramfs (make sure to keep a copy of the working one, as always). Possible side-effects: There may be some trouble when dealing with removable devices that contain LVM physical volumes: The volume groups are automatically activated, but have to be deactivated manually before removing the drive. Furthermore, when you remove a device and add it again later, the mechanism that detects whether all PVs have been found might fail and "vgchange -ay" may be run too often. Another side-effect is that I didn't add --ignoremonitoring to the script, so dmeventd may be started in initramfs (for mirror or snapshot volumes), which may not be desired. Any feedback is welcome.
On Sat, 06 Mar 2010 15:08:43 +0100 Thomas Bächler <thomas@archlinux.org> wrote:
Traditionally, LVM is assembled by running "vgchange -ay" manually. That has several problems, especially if one of the physical volumes is missing when the VG was supposed to be assembled. This has been experienced by people who use LVM on USB storage for their root device.
I came up with a way of assembling LVM automatically through udev: A udev rule combined with a short shell script waits until all required physical volumes have been detected, then assembles the volume group in the background. This also works when adding a removable device to the system at any time.
If the new system has to "wait until all needed PV's are there and then do foo", why can't we do "wait until all needed PV's are there and then do vgchange -ay" ? or is that what this approach does? i'm not sure what you mean with "assemble volume group in the background" Dieter
participants (2)
-
Dieter Plaetinck
-
Thomas Bächler