Bug#792002: lvm2-monitor service causes long delay at boot (encrypted root/swap)

Michael Tatge michael.tatge at web.de
Fri Aug 7 10:08:40 UTC 2015


Package: lvm2
Version: 2.02.126-2
Followup-For: Bug #792002

Dear Maintainer,

I'm running into a slightly different problem. I too have root/swap
encrypted and they are mounted at boot time.
My other encrypted volumes though are not (and they cause the timeout
delay at boot time).
Those volumes are luks encrypted on a lvm volume group.
# lsblk /dev/sdb6
NAME            MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sdb6              8:22   0   1.3T  0 part  
├─knecht40-var  254:1    0    28G  0 lvm   
│ └─var_crypt   254:5    0    28G  0 crypt /var
├─knecht40-home 254:2    0 372.5G  0 lvm   
│ └─home_crypt  254:6    0 372.5G  0 crypt /home
└─knecht40-tmp  254:3    0    28G  0 lvm   
  └─tmp_crypt   254:4    0    28G  0 crypt /tmp

The system boots into maintenace mode but the logical volumes are INACTIVE.
After manually running "vgchange --activate y" the lvs are activated and
the luks containers are opened and automounted as intended.

Here's the complete setup
lsblk /dev/sda1 /dev/sda2 /dev/sdb5 /dev/sdb6
NAME            MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda1              8:1    0   142M  0 part  /boot
sda2              8:2    0  23.3G  0 part
└─sda2_crypt    254:0    0  23.3G  0 crypt /
sdb5              8:21   0  14.9G  0 part
└─sdb5_crypt    254:7    0  14.9G  0 crypt [SWAP]
sdb6              8:22   0   1.3T  0 part
├─knecht40-var  254:1    0    28G  0 lvm
│ └─var_crypt   254:5    0    28G  0 crypt /var
├─knecht40-home 254:2    0 372.5G  0 lvm
│ └─home_crypt  254:6    0 372.5G  0 crypt /home
└─knecht40-tmp  254:3    0    28G  0 lvm
  └─tmp_crypt   254:4    0    28G  0 crypt /tmp

/etc/crypttab:
home_crypt UUID=3c5d677c-c709-47b8-9ad5-f97ee082e6fc /etc/keys/home.key luks
tmp_crypt UUID=8e2be6a6-8f7d-4c6c-acbc-3f5b6739de35 /etc/keys/tmp.key luks
var_crypt UUID=f194e984-56bd-4b9e-806b-3de2fbcad477 /etc/keys/var.key luks
sdb5_crypt /dev/sdb5 /dev/urandom cipher=aes-xts-plain64,size=256,swap

/etc/fstab:
/dev/mapper/home_crypt /home          ext4    defaults        0       2
/dev/mapper/tmp_crypt  /tmp           ext4    defaults        0       2
/dev/mapper/var_crypt  /var           ext4    defaults        0       2
/dev/mapper/sdb5_crypt none           swap    sw              0       0

-- System Information:
Debian Release: stretch/sid
  APT prefers unstable
  APT policy: (990, 'unstable'), (500, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.1.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=C, LC_CTYPE=de_DE.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages lvm2 depends on:
ii  dmeventd                  2:1.02.103-2
ii  dmsetup                   2:1.02.103-2
ii  init-system-helpers       1.23
ii  initscripts               2.88dsf-59.2
ii  libc6                     2.19-19
ii  libdevmapper-event1.02.1  2:1.02.103-2
ii  libdevmapper1.02.1        2:1.02.103-2
ii  liblvm2app2.2             2.02.126-2
ii  libreadline5              5.2+dfsg-3
ii  libudev1                  224-1
ii  lsb-base                  4.1+Debian13+nmu1

lvm2 recommends no packages.

Versions of packages lvm2 suggests:
pn  thin-provisioning-tools  <none>

-- no debconf information

# systemctl status lvm2-lvmetad.socket  
● lvm2-lvmetad.socket - LVM2 metadata daemon socket
   Loaded: loaded (/lib/systemd/system/lvm2-lvmetad.socket; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2015-08-07 08:07:40 CEST; 3h 25min ago
     Docs: man:lvmetad(8)               
   Listen: /run/lvm/lvmetad.socket (Stream)

# systemctl status dm-event.service     
● dm-event.service - Device-mapper event daemon
   Loaded: loaded (/lib/systemd/system/dm-event.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2015-08-07 08:07:40 CEST; 3h 28min ago
     Docs: man:dmeventd(8)              
 Main PID: 322 (dmeventd)               
   CGroup: /system.slice/dm-event.service
           └─322 /sbin/dmeventd -f      

# systemctl status -l lvm2-monitor.service
● lvm2-monitor.service - Monitoring of LVM2 mirrors, snapshots etc. using dmeventd or progress polling
   Loaded: loaded (/lib/systemd/system/lvm2-monitor.service; enabled; vendor preset: enabled)
   Active: active (exited) since Fri 2015-08-07 08:07:41 CEST; 3h 27min ago
     Docs: man:dmeventd(8)              
           man:lvcreate(8)              
           man:lvchange(8)              
           man:vgchange(8)              
  Process: 330 ExecStart=/sbin/lvm vgchange --monitor y --ignoreskippedcluster (code=exited, status=0/SUCCESS)
 Main PID: 330 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/lvm2-monitor.service

I found that changing
ExecStart=/sbin/lvm vgchange --monitor y --ignoreskippedcluster
to
ExecStart=/sbin/lvm vgchange --activate y --monitor y --ignoreskippedcluster

in /lib/systemd/system/lvm2-monitor.service solves the problem. And the system boots normally.
Up to you to value that as a crude hack or not ;)

HTH,
Michael
-------------- next part --------------
A non-text attachment was scrubbed...
Name: diff
Type: text/x-diff
Size: 477 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-lvm-maintainers/attachments/20150807/535f380c/attachment.diff>


More information about the pkg-lvm-maintainers mailing list