Comment 10 for bug 833891

Revision history for this message
Alex Lyakas (alyakas) wrote : Re: [Bug 833891] Re: lvscan often times out during boot

Hi Serge,
the main thing that lvchange -ay does is activating the LVs within VGs.

After uninstalling the ubuntu LVM package, and installing an official one
(without ubuntu's udev rule), we had to add a call to lvm_lv_activate() for
each LV. So when an existing VG comes up, it is required to go over its LVs
and activate them. But in our case, we don't have LVM on boot drives; and I
am not sure how to trigger LVM LV activation in this case.

Activating the LVs (that ubuntu's rule does) is perhaps not a bad thing. But
the problem is that this is done within the context of udev event
processing, which may cause the udev event processing to get stuck.

BTW, if what I am saying doesn't make sense, that's fine. I am just
reporting the issues that we have experienced.

Thanks,
  Alex.

On Fri, Sep 23, 2011 at 6:00 PM, Serge Hallyn <email address hidden>wrote:

> I took a look a the newest LVM package. It has a udev rules file, 11
> -dm-lvm.rules, which looks like it should do fine to create the symlinks
> for valid lvs. Does vgchange -ay do more than that? Here is the file:
>
> # Copyright (C) 2009 Red Hat, Inc. All rights reserved.
> #
> # This file is part of LVM2.
>
> # Udev rules for LVM.
> #
> # These rules create symlinks for LVM logical volumes in
> # /dev/VG directory (VG is an actual VG name). Some udev
> # environment variables are set (they can be used in later
> # rules as well):
> # DM_LV_NAME - logical volume name
> # DM_VG_NAME - volume group name
> # DM_LV_LAYER - logical volume layer (blank if not set)
>
> # "add" event is processed on coldplug only!
> ACTION!="add|change", GOTO="lvm_end"
> ENV{DM_UDEV_RULES_VSN}!="?*", GOTO="lvm_end"
> ENV{DM_UUID}!="LVM-?*", GOTO="lvm_end"
>
> # Use DM name and split it up into its VG/LV/layer constituents.
> IMPORT{program}="$env{DM_SBIN_PATH}/dmsetup splitname --nameprefixes
> --noheadings --rows $env{DM_NAME}"
>
> ENV{DM_UDEV_DISABLE_SUBSYSTEM_RULES_FLAG}=="1", GOTO="lvm_end"
>
> # Do not create symlinks for inappropriate subdevices.
> ENV{DM_LV_NAME}=="pvmove?*|?*_vorigin", GOTO="lvm_disable"
> ENV{DM_LV_LAYER}=="?*", GOTO="lvm_disable"
>
> # Create symlinks for top-level devices only.
> ENV{DM_VG_NAME}=="?*", ENV{DM_LV_NAME}=="?*",
> SYMLINK+="$env{DM_VG_NAME}/$env{DM_LV_NAME}", GOTO="lvm_end"
>
> LABEL="lvm_disable"
> ENV{DM_UDEV_DISABLE_DISK_RULES_FLAG}="1"
> ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}="1"
> OPTIONS:="nowatch"
>
> LABEL="lvm_end"
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/833891
>
> Title:
> lvscan often times out during boot
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/ubuntu/+source/udev/+bug/833891/+subscriptions
>