Features/systemd

From FedoraProject

< Features(Difference between revisions)
Jump to: navigation, search
Line 16: Line 16:
  
 
== Detailed Description ==
 
== Detailed Description ==
 +
 +
* What is systemd? To quote the homepage: "systemd is a system and session manager for Linux, compatible with SysV and LSB init scripts. systemd provides aggressive parallelization capabilities, uses socket and D-Bus activation for starting services, offers on-demand starting of daemons, keeps track of processes using Linux cgroups, supports snapshotting and restoring of the system state, maintains mount and automount points and implements an elaborate transactional dependency-based service control logic. It can work as a drop-in replacement for sysvinit."
  
 
* Systemd is currently in Rawhide.  The plan is to test it thoroughly and make it the default for Fedora 14, replacing the current default, upstart.  Lennart has a few patches for some of the default software, replacing sysvinit daemons with native systemd service files.  Rest of the software can continue to include the sysvinit daemons and systemd is compatible with them.  Other than some of the default software, we do not recommend users to convert to using systemd services yet for this release.  
 
* Systemd is currently in Rawhide.  The plan is to test it thoroughly and make it the default for Fedora 14, replacing the current default, upstart.  Lennart has a few patches for some of the default software, replacing sysvinit daemons with native systemd service files.  Rest of the software can continue to include the sysvinit daemons and systemd is compatible with them.  Other than some of the default software, we do not recommend users to convert to using systemd services yet for this release.  
Line 35: Line 37:
 
== User Experience ==
 
== User Experience ==
  
The user should notice considerably faster bootup.  
+
The user should notice faster bootup.  
  
 
== Dependencies ==
 
== Dependencies ==
Line 52: Line 54:
  
 
* A number of daemons should ship changed bus activation files to hook them up to systemd for activation (single-line change per package)
 
* A number of daemons should ship changed bus activation files to hook them up to systemd for activation (single-line change per package)
 +
 +
* The readahead packages need to be adapted for systemd. readahead is currently one of the very few packages using upstart specific features and hence is not activated when booting with systemd. However, due to the more aggressive parallelization, disk access is much more random when systemd is used and hence the effect of readahead considerable. Or to put it the other way round: unless we have readahead systemd won't perform any better than upstart/sysv during bootup on rotating media. On SSD systemd is considerably faster though in every case as readahead is not necessary there.
  
 
== Contingency Plan ==
 
== Contingency Plan ==
  
* Revert back to ship the current Upstart package, and offer systemd just as an alternative
+
* Revert back to ship the current Upstart package, and offer systemd just as an alternative.
  
 
== Documentation ==
 
== Documentation ==

Revision as of 22:16, 14 June 2010

Contents

systemd System and Session Manager

Summary

systemd is a replacement for SysVinit that acts as a system and session manager.

Owner

Current status

  • Targeted release: Fedora 14
  • Last updated: 2010-06-01
  • Percentage of completion: 10%

Detailed Description

  • What is systemd? To quote the homepage: "systemd is a system and session manager for Linux, compatible with SysV and LSB init scripts. systemd provides aggressive parallelization capabilities, uses socket and D-Bus activation for starting services, offers on-demand starting of daemons, keeps track of processes using Linux cgroups, supports snapshotting and restoring of the system state, maintains mount and automount points and implements an elaborate transactional dependency-based service control logic. It can work as a drop-in replacement for sysvinit."
  • Systemd is currently in Rawhide. The plan is to test it thoroughly and make it the default for Fedora 14, replacing the current default, upstart. Lennart has a few patches for some of the default software, replacing sysvinit daemons with native systemd service files. Rest of the software can continue to include the sysvinit daemons and systemd is compatible with them. Other than some of the default software, we do not recommend users to convert to using systemd services yet for this release.

Benefit to Fedora

Fedora currently uses Upstart but in SysV compatibility mode. systemd is a overall better design as detailed in http://0pointer.de/blog/projects/systemd.html. We hope to reap the benefits of it by leading in distribution integration and including it by default.

Scope

Requires building packages for systemd (DONE: https://bugzilla.redhat.com/show_bug.cgi?id=598299 ), and taking advantage of it in a dozen or so desktop daemons that will benefit from systemd the most at present and make it default for Fedora 14.

Test Plan

  1. Boot the system, make sure all services come up.
  2. Move between runlevels, ensure the proper starts and stops take place.
  3. Check the various admin tools such as /sbin/service, system-config-services, chkconfig, etc.

User Experience

The user should notice faster bootup.

Dependencies

  • systemd upstream currently lacks three features that we need before f14:
    • proper support for selinux (needs policy changes, and we want to move the policy setup in systemd, not in the initrd)
    • We need sysv compatible implementations for /bin/reboot, /bin/shutdown and friends. We currently simply use the implementations upstart provides which work fine, but of course are suboptimal as soon as we want to replace upstart completely
    • complete set of man pages (parts are already documented, this is far from complete however)
  • A number of daemons should provide native systemd .service files in addition to sysv init scripts. I have service files for almost all standard F13 services ready, which just need to be added to the rpms.
  • A number of daemons should be patched for socket activation: rsyslog, dbus, portmap, avahi, nscd, cups. These patches exist (and are public) and should have upstreamable quality, but they need to be reviewed and added to the rpms.
  • A number of daemons should ship changed bus activation files to hook them up to systemd for activation (single-line change per package)
  • The readahead packages need to be adapted for systemd. readahead is currently one of the very few packages using upstart specific features and hence is not activated when booting with systemd. However, due to the more aggressive parallelization, disk access is much more random when systemd is used and hence the effect of readahead considerable. Or to put it the other way round: unless we have readahead systemd won't perform any better than upstart/sysv during bootup on rotating media. On SSD systemd is considerably faster though in every case as readahead is not necessary there.

Contingency Plan

  • Revert back to ship the current Upstart package, and offer systemd just as an alternative.

Documentation

  • Instead of bash scripts, systemd uses dot service files
  • Some man pages are available in the rpm, but this is not yet complete.

Release Notes

Fedora 14 has replaced Upstart with systemd. systemd uses services files located in path/to/files. A dozen desktop daemons [list them] have been initially converted to use systemd service files and small number of programs have been patched to take advantage of it. systemd is compatible with legacy SysV init scripts and rest of the migration will happen incrementally over time.