Disable dmraid-activation.service on first run if no dmraid sets are found
The Fedora workstation livecd is the default Fedora variant getfedora.org advices people to download. As such most Fedora workstation installs will be done from the livecd. This means that any package which is part of the livecd will be part of the default install for most users.
Dmraid is 1 of only 2 packages in the default install which still Requires the long obsoleted systemd-udev-settle.service, which waits for all device-detection to be done + some extra waiting just to be sure. This significantly slows down booting on various systems.
Fedora only support these RAID sets when they are already configured in the BIOS at installation time. So we can solve the problem of dmraid-activation.service still depending on the obsolete udev-settle service by making dmraid-activation.service disable itself if no supported RAID sets are found on its first run.
- Name: Hans de Goede
- Email: email@example.com
- Targeted release: Fedora 33
- Last updated: 2020-07-23
- FESCo issue: #2433
- Tracker bug: #1857390
- Release notes tracker: #528
Dmraid is 1 of only 2 packages in the default install which still Requires the long obsoleted systemd-udev-settle.service. The other package is device-mapper-multipath see Remove device-mapper-multipath from the Fedora workstation livecd.
Dmraid is necessary to support firmware-raid (motherboard BIOS built-in RAID support) for non Intel firmware RAID sets. These RAID sets are quite rare and we have never supported configuring these RAID sets after the installation without manually setting it up. Since we only support these sets when they are already configured in the BIOS at installation time, we can solve the problem of dmraid-activation.service still depending on the obsolete udev-settle service by making dmraid-activation.service disable itself if no supported RAID sets are found on its first run.
Note then when installing from the server or everything netboot isos, dmraid depending on the obsolete udev-settle service is not a problem, because then it will not be installed at all. Anaconda (the installer) adds storage related packages such as dmraid to the installation package-set as necessary for the storage found at installation time. This means that for such installs, if a dmraid set is later configured, the user manually needs to install dmraid to be able to use the RAID set. This change adds a similar requirement to livecd installs, there the user will now need to do a "systemctl enable dmraid.service" if a dmraid set is added to the system later.
There has been a bug open against dmraid for this issue for a while now. As pointed out there, this change can easily be implemented with some small changes to the /lib/systemd/fedora-dmraid-activation shell script which gets started by the dmraid-activation.service.
Benefit to Fedora
systemd-udev-settle.service causes a significant and sometimes quite long delay during boot. Removing / disabling the last 2 services depending on this long obsolete helper service will remove the unnecessary boot delay.
- Proposal owners:
- Prepare the suggested dmraid activation script changes and push out a new dmraid package with these changes added
- Coordinate this with the dmraid maintainers
- Other developers:
- I will make sure that the dmraid maintainers are aware of and agree with these changes. I will take care of these changes myself.
- Release engineering: #9559 (a check of an impact with Release Engineering is needed)
- Policies and guidelines: N/A (not needed for this Change)
- Trademark approval: N/A (not needed for this Change)
After upgrading, if no dmraid sets are found on the first boot with the new package, the dmraid-activation.service will disable itself, just as it will on new F33 installs.
How To Test
- Install F33 on a machine / VM without dmraid
- Boot the installed system
- Reboot the installed system
- Do "systemctl status dmraid.service", the output should be "loaded (...; disabled; ...)" and "inactive (dead)"
- Once the Remove device-mapper-multipath from the Fedora workstation livecd change has also landed, the output of the following command should be empty: "systemd-analyze blame | grep settle"
Faster booting Fedora when installed from the livecd.
There are no other changes / package updates this Change depends on; or which this change impacts.
- Contingency mechanism: Revert the activation script changes if they cause problems
- Blocks release? No
This change does not require any documentation.