Re: LVM autoactivation and udev

"[email protected]" <[email protected]>
Newsgroups gmane.linux.lvm.general
Message-ID <[email protected]>
On 3/22/22 00:44, David Teigland wrote:
> On Mon, Mar 21, 2022 at 04:57:09PM +0800, [email protected] wrote:
>> ```
>> Mar 10 10:27:54 Mobile-PC systemd[1]: Stopped target Local File Systems.
>> Mar 10 10:27:55 Mobile-PC systemd[1]: Reached target Local File Systems.
>> Mar 10 10:27:55 Mobile-PC lvm[658]:   Udev database has incomplete information about device /dev/nvme0n1.
>> Mar 10 10:27:55 Mobile-PC lvm[658]:   /dev/nvme0n1: Failed to get external handle [udev].
>> Mar 10 10:27:55 Mobile-PC lvm[658]:   Udev database has incomplete information about device /dev/sda.
>> Mar 10 10:27:55 Mobile-PC lvm[658]:   /dev/sda: Failed to get external handle [udev].
>> ```
> 
> Since vgchange --monitor runs during startup, it should also override any
> udev settings to disable them, like pvscan does:
> 
>    init_obtain_device_list_from_udev(0);
>    init_external_device_info_source(DEV_EXT_NONE);
> 
> (Those are the default settings we use, so we don't see this.)
> 

you mind me, I forgot SUSE chose to use udev by default.
So this is a SUSE special issue.

> 
>> In my understand, lvm2-monitor.service does the "clean up" job, which will complete the
>> monitor job for thin/mirror/others LVs, which was created during initrd phase. (because
>> lvm_scan doesn't have ability to start monitoring.)
>> on current lvm2-monitor.service, the dependency asks this service start as early as possible:
>> ```
>> After=dm-event.socket dm-event.service
>> ```
>> It makes monitor service start too early, and triggers libudev not ready issue.
>>
>>
>> To fix above issue, we find a workaround:
>> ```
>> - After=dm-event.socket dm-event.service
>> + After=dm-event.socket dm-event.service sysinit.target
>> ```
> 
> Yes, I think starting it later would be better.  I don't know enough about
> these systemd targets to comment on how well that change would work.  I've
> not given much attention to lvm2-monitor, but I've also wished it would
> start later> 
>> And maybe there is another workaround (not verify):
>> ```
>> -ExecStart=@SBINDIR@/lvm vgchange --monitor y
>>
>> +ExecStart=@SBINDIR@/lvm vgchange --config 'devices { external_device_info_source="none" \
>> obtain_device_list_from_udev=0}' --monitor y
>> ```
> 
> Let's patch vgchange monitor as mentioned above.
> 
> Dave
> 

I inclined to use the "--config" option to avoid booting warning.
(or write additional codes for vgchange "monitor_ARG")

I have two reasons:

1>
Martin & I also found it is a difficult to find the best time to start lvm2-monitor.service
So modification "After=" dependency will still failed with some cases.

2>
the lvm2-monitor.service helps to finish monitoring job for lvm_scan. So it's not necessary
to ask this service to handle the VG/LV which starting after switch rootfs. (These VG/LV
should be monitored by "pvscan --cache".)

So starting lvm2-monitor.service as early as possible is accepted.

Thanks,

_______________________________________________
linux-lvm mailing list
[email protected]
https://listman.redhat.com/mailman/listinfo/linux-lvm
read the LVM HOW-TO at http://tldp.org/HOWTO/LVM-HOWTO/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.