VDO device not mounting at boot

Solution Verified - Updated -

Red Hat Insights can detect this issue

Proactively detect and remediate issues impacting your systems.
View matching systems and remediation

Environment

  • Red Hat Enterprise Linux 8
  • Red Hat Enterprise Linux 7
  • vdo 6.1.3.23-5 and later

Issue

  • VDO device fails to mount automatically at boot.

Resolution

  • Remove x-systemd.requires=vdo.service from the /etc/fstab for the VDO mount point.

Root Cause

  • From vdo-6.1.3.23-5 or higher, there is no need to add x-systemd.requires=vdo.service for VDO mount points because VDO activation is taken care by udev device service using the file 69-vdo-start-by-dev.rules which gets added at the time of installation/upgradation.
  • Keeping both udev rule and x-systemd.requires=vdo.service might create a conflict at boot time and the mount point may fail.

Diagnostic Steps

  • Logs will show that VDO device is busy:
Feb 16 09:24:51 testbox1 vdo: ERROR - Could not set up device mapper for vdo_data1
Feb 16 09:24:51 testbox1 vdo: vdo: ERROR - Could not set up device mapper for vdo_data1
Feb 16 09:24:51 testbox1 vdo: vdo: ERROR - device-mapper: create ioctl on vdo_data1 VDO-xxxx-xxxx-xxxx-xxx-xxxxxx failed: Device or resource busy <<<<<
Feb 16 09:24:51 testbox1 vdo: ERROR - device-mapper: create ioctl on vdo_data1 VDO-xxxx-xxxx-xxxx-xxx-xxxxxx failed: Device or resource busy
  • Verify the vdo.service status:
* vdo.service - VDO volume services
   Loaded: loaded (/etc/systemd/system/vdo.service; enabled; vendor preset: enabled)
  Process: 839 ExecStart=/usr/bin/vdo start --all --confFile /etc/vdoconf.yml (code=exited, status=1/FAILURE)
Feb 16 09:24:51 testbox1 vdo[839]: Starting VDO vdo_data1
Feb 16 09:24:51 testbox1 systemd[1]: Child 839 belongs to vdo.service
Feb 16 09:24:51 testbox1 systemd[1]: vdo.service: main process exited, code=exited, status=1/FAILURE
Feb 16 09:24:51 testbox1 systemd[1]: vdo.service changed start -> failed
Feb 16 09:24:51 testbox1 systemd[1]: Job vdo.service/start finished, result=failed
Feb 16 09:24:51 testbox1 systemd[1]: Failed to start VDO volume services.
Feb 16 09:24:51 testbox1 systemd[1]: Unit vdo.service entered failed state.
Feb 16 09:24:51 testbox1 systemd[1]: vdo.service failed.
Feb 16 09:24:51 testbox1 systemd[1]: vdo.service: cgroup is empty
  • Verify the entries in /etc/fstab for VDO mount point:
[root@testbox1 ~]# cat /etc/fstab | grep vdo
/dev/mapper/vdo_data1 /mnt/test2 xfs defaults,x-systemd.requires=vdo.service 0 0

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Comments