By Jonathan Corbet
December 21, 2011
Systemd was designed to bring better performance, better control, and
easier configurability to the system initialization and service control
task. According to many, it has succeeded in those goals. It also tends
to bring a certain amount of unhappiness to those who see no driving reason
to make fundamental changes to a key part of the system - especially if
those changes sometimes break things. OpenSUSE is not the first
distribution to transition to systemd, but its experience in some ways
mirrors that of those who came before. Now the distribution is considering
plans to move exclusively to systemd, leaving the old SYSV init system
behind entirely. Needless to say, not everybody is amused.
The current openSUSE release - 12.1, was the first to
feature systemd, but it continues to support the SYSV init system as well.
For better or for worse, though, the distribution developers made the
decision that old systems, when upgraded to 12.1, would be transitioned to
systemd automatically. That is where the trouble starts; there
are, it would seem, a lot of things that do not yet work all that well with
systemd. That has led to the automatic switch being added to the 12.1 most
annoying bugs list, along with instructions on how to switch back to
SYSV init.
When Fedora made this transition, the Fedora 14 release was initially
targeted as the first systemd-based release, but Fedora eventually decided
to wait one more cycle to allow
things to stabilize. That decision seems to have worked out reasonably
well, even though Fedora users, arguably, are used to disruptive changes
and could have handled it. In retrospect, perhaps openSUSE should have
done the same thing and given systemd another release cycle to settle in.
Or, failing that, they could have held off on the automatic switch to
systemd, leaving it as an "opt-in" choice for their more adventurous
users. But, as they say, hindsight is always 20-20.
The end result is that, when Cristian Rodríguez posted a proposal to phase out SYSV init
entirely in favor of systemd, he was not rewarded with universal acclaim.
There was some substantial grumbling about the perceived instability of
systemd-based installations and the desire to push users toward technology
that is not yet ready for prime time. For
example:
This would mean forcing systemd on users whether they want it or
not, whether it gives them something or not, even whether it works
for them or not. Please don't do it. Please show first that systemd
can work reliably and that it can give the users (admins) something
that the old solution didn't. This is the way to persuade people
that the new solution is better than the old one, not forcing it on
them and not giving them a choice.
The openSUSE developers seem to agree, at this point, that the transition
was a bit premature and that it has caused some unneeded pain for users;
some apologies have been seen on the list. But that still leaves them with
the problem of figuring out where to go from here. One option would be to
back out systemd entirely, write it off as a bad idea, and recommit to SYSV
init (or switch to upstart). There does not appear to be any sign that
this option is under consideration; for better or for worse, systemd
appears to be seen as the future for openSUSE.
Given that, there is no alternative to making systemd work better. Cristian
proposed a three-phase plan to so do. The first step would be to address
all known bugs in systemd itself, which makes sense: until the foundation
is stable, it is hard to build stable structures on top of it. The second
phase involves getting rid of purely hardware-related init scripts and
adding systemd unit files to packages that need them. The final stage
includes the removal of SYSV init and something called "profit". By all
appearances, it is a straightforward plan to further the transition to
systemd.
Nobody disagrees with the idea of making systemd work better. But there
was some real discomfort with a perceived haste to eliminate SYSV init.
Once the old init system is gone, there will be no alternative to running
systemd, like it or not, and it appears that some users do not like it.
That puts openSUSE into a bit of a bind. There is a real cost to keeping
SYSV init around and functioning; it is a complex and crucial system
component that is easily broken if the distribution developers are not
running it regularly. Maintaining both systems will also reduce the number
of users and testers for systemd, with the result that bugs will take
longer to find and to fix. The desire to keep a tried-and-true alternative
around is understandable, but, at some point, the costs of doing so are
likely to be to high.
That said, there is no talk of removing SYSV init for the 12.2 release, and
possibly for some time thereafter. Systemd, along with all the services
that interact with it, needs to be brought up to a higher level of
stability first. That should be enough work to keep the openSUSE
developers busy for a little while yet. Experience suggests that
systemd-based openSUSE should stabilize quickly enough, and soon this
transition will just be a memory. The road to that place may yet have a
rough spot or two, though.
(
Log in to post comments)