Bug#796625: clvm+corosync fails to start

Ulf Norberg ulf.norberg at zoologi.su.se
Wed Mar 9 13:38:46 UTC 2016


Package: clvm
Version: 2.02.111-2.2
Followup-For: Bug #796625

Hi,

we run a storage cluster with CLVM+GFS2 and have been hit by this
problem.  LSB service clvm.service gets deleted from the start up
sequence by systemd because of dependency conflicts.  journalctl
shows:

.... systemd[1]: Found ordering cycle on basic.target/start
.... systemd[1]: Found dependency on sysinit.target/start
.... systemd[1]: Found dependency on clvm.service/start
.... systemd[1]: Found dependency on corosync.service/start
.... systemd[1]: Found dependency on basic.target/start
.... systemd[1]: Breaking ordering cycle by deleting job clvm.service/start
.... systemd[1]: Job clvm.service/start deleted to break ordering cycle starting
with basic.target/start

The same problem is reported in #788295 (see under "MINUTIAE:").

In the LSB comment header of /etc/init.d/clvm it says:

# Should-Start:      cman corosync openais

but /etc/init.d/corosync (corosync-1.4.6-1.1) is set to start in
runlevels 2-5:

# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6

So, systemd cannot start corosync before clvm.

The systemd unit-files /lib/systemd/system/lvm2-clvmd.service and
/lib/systemd/system/lvm2-cluster-activation.service are installed
by the clvm package, but they are not adapted to debian.  My
solution was to edit these files and copy them to
/etc/systemd/system (included below).  Mask the LSB service
clvm.service:

systemctl mask clvm.service

and enable the systemd service/unit:

systemctl enable lvm2-cluster-activation.service



-- System Information:
Debian Release: 8.3
  APT prefers stable
  APT policy: (990, 'stable')
Architecture: amd64 (x86_64)

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

Versions of packages clvm depends on:
ii  libc6                     2.19-18+deb8u3
ii  libcman3                  3.1.8-1.2+b1
ii  libconfdb4                1.4.6-1.1
ii  libcpg4                   1.4.6-1.1
ii  libdevmapper-event1.02.1  2:1.02.90-2.2
ii  libdevmapper1.02.1        2:1.02.90-2.2
ii  libdlm3                   3.1.8-1.2+b1
ii  libquorum4                1.4.6-1.1
ii  libsalck3                 1.1.4-4.2
ii  libudev1                  215-17+deb8u3
ii  lsb-base                  4.1+Debian13+nmu1
ii  lvm2                      2.02.111-2.2

Versions of packages clvm recommends:
ii  cman      3.1.8-1.2+b1
ii  corosync  1.4.6-1.1
ii  openais   1.1.4-4.2

clvm suggests no packages.

-- no debconf information

*** /etc/systemd/system/lvm2-clvmd.service
[Unit]
Description=Clustered LVM daemon
Documentation=man:clvmd(8)
After=cman.service corosync.service
Before=remote-fs-pre.target
Requires=network.target cman.service corosync.service
RefuseManualStart=true
RefuseManualStop=true
StopWhenUnneeded=true
DefaultDependencies=no
Conflicts=shutdown.target

[Service]
Type=forking
Environment=CLVMD_OPTS=-T30
EnvironmentFile=-/etc/default/clvm
ExecStart=/usr/sbin/clvmd $CLVMD_OPTS
SuccessExitStatus=5
TimeoutStartSec=30
TimeoutStopSec=10
OOMScoreAdjust=-1000




*** /etc/systemd/system/lvm2-cluster-activation.service
[Unit]
Description=Clustered LVM volumes activation service
Requires=lvm2-clvmd.service
After=lvm2-clvmd.service lvm2-cmirrord.service
OnFailure=lvm2-clvmd.service
DefaultDependencies=no
Conflicts=shutdown.target

[Service]
Type=simple
RemainAfterExit=yes
EnvironmentFile=-/etc/default/clvm
ExecStart=/lib/systemd/lvm2-cluster-activation activate
ExecStop=/lib/systemd/lvm2-cluster-activation deactivate
-------------- next part --------------
[Unit]
Description=Clustered LVM daemon
Documentation=man:clvmd(8)
After=cman.service corosync.service
Before=remote-fs-pre.target
Requires=network.target cman.service corosync.service
RefuseManualStart=true
RefuseManualStop=true
StopWhenUnneeded=true
DefaultDependencies=no
Conflicts=shutdown.target

[Service]
Type=forking
Environment=CLVMD_OPTS=-T30
EnvironmentFile=-/etc/default/clvm
ExecStart=/usr/sbin/clvmd $CLVMD_OPTS
SuccessExitStatus=5
TimeoutStartSec=30
TimeoutStopSec=10
OOMScoreAdjust=-1000
Restart=on-abort
PIDFile=/var/run/clvmd.pid


More information about the pkg-lvm-maintainers mailing list