Systemd as tragedy
Systemd as tragedy
Posted Feb 5, 2019 1:28 UTC (Tue) by anselm (subscriber, #2796)In reply to: Systemd as tragedy by jccleaver
Parent article: Systemd as tragedy
And please, sir, how is that a systemd problem?
Posted Feb 5, 2019 1:44 UTC (Tue)
by jccleaver (guest, #127418)
[Link] (20 responses)
My thoughts exactly -- but probably not in how you were envisioning the question.
Posted Feb 5, 2019 2:03 UTC (Tue)
by pizza (subscriber, #46)
[Link] (19 responses)
(I'm personally a big fan of the 'biosdevname' policy. Because why shouldn't default device names match the vendor's labels on the physical ports?)
Posted Feb 5, 2019 8:45 UTC (Tue)
by jccleaver (guest, #127418)
[Link] (18 responses)
That's great, and this no doubt solves a corner case for someone. But having worked at massive Dell shops I can say that even on 6-NIC servers I've *never* been hit by spontaneous random interface re-ordering on boot. Ever. Furthermore, the simplest possible case, *especially* in a VM-focused environment, is undoubtedly a "single host with single NIC", and whatever benefits un-"predictable device naming" purports to provide is completely obliterated by no longer being able to assume eth0 has a meaning, when 99.5% of the time it previously worked as expected. (The only issue addressed here is when your MAC changes, but all major hypervisors have hooks in guest services to deal with that.)
Requiring others to re-code, re-design, or insert hacks into software and configs to solve weird edge cases LP found on his laptop one day and then telling everyone they should be happy in the long run for this extra work epitomizes the systemd "cabal"'s approach to doing things.
Posted Feb 5, 2019 9:46 UTC (Tue)
by Cyberax (✭ supporter ✭, #52523)
[Link]
Posted Feb 5, 2019 13:05 UTC (Tue)
by pizza (subscriber, #46)
[Link] (15 responses)
Are you sure that isn't because udev has hidden re-ordering behind its default behaviour of persistent interface renaming?
Posted Feb 5, 2019 15:28 UTC (Tue)
by jccleaver (guest, #127418)
[Link] (13 responses)
> Are you sure that isn't because udev has hidden re-ordering behind its default behaviour of persistent interface renaming?
Pretty sure, unless the times we did that intentionally were logged in a different way than when it's automatically performing the function. That also really only helps for persistency once the OS is installed -- if it were truly random, then kickstarts without MAC codification would be expected to randomly fail as NICs went to different switches or ports got bonded incorrectly, and that didn't happen for us with any of our models, even though only the GB1 NIC was used by us for tracking in our PXE boot server.
Of course, the persistence with udev kind of proves the point: Even if the kernel can't be trusted deterministically, and with biosdevname out there, udev was already taking care of it. It was a "solved problem". There was no need for systemd to rip everything out and remove the long-standing conventions and make the most common case (a box with a single nic) annoying and difficult.
And with udev being subsumed into systemd, for no good reason, no one outside of the project had any real say in the matter.
Posted Feb 6, 2019 0:00 UTC (Wed)
by anselm (subscriber, #2796)
[Link] (12 responses)
The principal maintainers of udev also happen to be the principal maintainers of systemd, and they seem to find it convenient to arrange things this way. According to them it avoids code duplication and cyclic dependencies and makes administering the code base easier. Their prerogative.
Also, AFAIR the connection between systemd and udev doesn't really go deeper than the fact that they're sharing the same upstream tarball. It is still possible to build and use udev without systemd (and presumably vice-versa, although there would probably be little point – on the whole, udev for its faults seems to be a lot less controversial than systemd).
In any case, the network-interface naming issue is strictly a udev thing and has nothing whatsoever to do with systemd. It also applies to non-systemd installations if they're using udev, and IIRC even predates systemd altogether.
Posted Feb 6, 2019 0:28 UTC (Wed)
by jccleaver (guest, #127418)
[Link] (11 responses)
But that's not really the case operationally, and it's why eudev was forked away from it for Gentoo. Once you combine and remove independent support, let's face it: systemd may have different binaries, but when you take away any attempt and a stable platform between those pieces, you're forcing use of it as an integrated whole.
> In any case, the network-interface naming issue is strictly a udev thing and has nothing whatsoever to do with systemd. It also applies to non-systemd installations if they're using udev, and IIRC even predates systemd altogether.
Sure, but it's under the systemd aegis that they decided to implement this change, and with removing udev's support for non-systemd distributions, you no longer really have an option. Rather than allow for distinct approaches, now you're forced (well, by default) to adopt this new methodology that solves for edge cases by frustrating the simple, common case:
From: https://www.freedesktop.org/wiki/Software/systemd/Predict...
Thanks, Lennart. *slow clap*
Posted Feb 6, 2019 9:48 UTC (Wed)
by anselm (subscriber, #2796)
[Link]
That would be the developers of the “eudev” fork of udev talking, so this is not exactly an unbiased view. Whether that fork was really necessary is by no means clear.
Posted Feb 6, 2019 12:50 UTC (Wed)
by pizza (subscriber, #46)
[Link] (9 responses)
For all your bellyaching, that feature is trivially disabled, as per the second-to-last section on that page.
So, yes, thanks Lennart, for building a mechanism that most distributions found useful enough to enable by default, documenting it heavily, and providing an easy way to configure or disable it altogether.
Posted Feb 6, 2019 18:33 UTC (Wed)
by jccleaver (guest, #127418)
[Link] (8 responses)
I'm aware that it's disableable, and regularly do so. My original point was that "making the common use case very smooth" is risible for systemd as a whole. The most common use case for a host will be a single attached NIC, and now your options for this are:
And it's not even difficult to come up with workarounds for this -- maybe a built-in alias so that "eth0" *always* means "the only NIC" on single NIC systems even if the real name is its mess, so that thing would continue to work the way they had for the last 20 years in most cases.
> So, yes, thanks Lennart, for building a mechanism that most distributions found useful enough to enable by default, documenting it heavily, and providing an easy way to configure or disable it altogether.
That's a sheer bandwagon argument, and it fails even before you get to the underlying arguments about how responsive some distributions are to either their userbases or their downstreams (hint: not always, especially if they regularly kick policy decisions over to members in the same group popping on a different hat).
Posted Feb 6, 2019 22:26 UTC (Wed)
by jccleaver (guest, #127418)
[Link] (7 responses)
https://www.ispcolohost.com/2015/07/11/kickstarting-with-...
And of course, this doesn't even address the straight-up clusterf*ck of the 7.2 to 7.3 update:
https://access.redhat.com/solutions/2592561
Nor does it hit the "systemd will silently hang all boot/reboot attempts because no one tested SELinux policy application" that many of us hit while trying to address the issue: https://bugzilla.redhat.com/show_bug.cgi?id=1393505
Although this was a flat-out collapse of RedHat QA, it was precipitated by a belief by the systemd crew that it should be able to barrel over all sorts of underlying real-world behaviors blithely making assumptions no one had guaranteed and no one had agreed to. And when it inevitably breaks because of some other issue out there, their initial response is *always* "Hey, works for us. Not our problem!"
See also: UEFI bricking, usernames starting with a number, incorrect /etc/fstab entries hanging boot, flooding debug data to klogd, and God knows what else...
Posted Feb 6, 2019 23:00 UTC (Wed)
by johannbg (guest, #65743)
[Link] (2 responses)
Red Hat has a number to call for their support contract have you tried using it?
I'm pretty sure they can give you the moral support you need and even re-train you.
And you still arent critisizing systemd in an area you could arguably critisize it for but carry on throwing bricks at a dead pony...
Posted Feb 9, 2019 22:46 UTC (Sat)
by nix (subscriber, #2304)
[Link] (1 responses)
> Red Hat has a number to call for their support contract have you tried using it?
I'm fairly sure this is not argument in good faith on your part. (At the very least, you are entirely ignoring your interlocutor.)
Posted Feb 10, 2019 10:50 UTC (Sun)
by johannbg (guest, #65743)
[Link]
This problem has existed long before udev and came to be as can be seen by historic multiple prope and pray workarounds from various upstreams and distribution ( and *nixes) trying to get it right, all the way down to administrators trying to manage that by themselves by stuffing something as simple like ifconfig $foo name $bar in /etc/rc.conf or write more complex, scripts which boiled down more or less finding the mac addr and then run ifconfig $foo on it's output.
Users can disable or hack the udev rule to their liking if they dont agree with it's implementation.
And systemd's networkd interface configuration file arent more complex than so...
/etc/systemd/network/20-wired.network
[Match]
[Network]
And a simple ( fallback ) dhcp configuration
/etc/systemd/network/99-wired-dhcp.network
[Match]
[Network]
And for the keen administrator eye he will notices that *both* of the networkd network files combined are atleast half the size of an single
The fact is udev is not do blame for the device naming enumiration problem nor is systemd network configuration, complex or hard to understand
So all this constant blaming udev, systemd or both for all the worlds problem approach, to me makes little to no sense.
Posted Feb 13, 2019 8:44 UTC (Wed)
by flussence (guest, #85566)
[Link] (3 responses)
(and personally I'd prefer if /sbin/mount would grok GPT partition metadata so that fstab could go away, but that's neither here nor there.)
Posted Feb 13, 2019 18:14 UTC (Wed)
by Wol (subscriber, #4433)
[Link] (1 responses)
Cheers,
Posted Feb 14, 2019 7:25 UTC (Thu)
by zdzichu (subscriber, #17118)
[Link]
I think they're utilised by systemd-gpt-mount generator.
Posted Feb 14, 2019 17:51 UTC (Thu)
by nix (subscriber, #2304)
[Link]
Posted Mar 5, 2019 7:07 UTC (Tue)
by immibis (subscriber, #105511)
[Link]
Posted May 21, 2019 5:03 UTC (Tue)
by buchanmilne (guest, #42315)
[Link]
Systemd as tragedy
Systemd as tragedy
Systemd as tragedy
Systemd as tragedy
I have that happened on my desktop with two Ethernet ports.
Systemd as tragedy
Systemd as tragedy
Systemd as tragedy
And with udev being subsumed into systemd, for no good reason, no one outside of the project had any real say in the matter.
Systemd/udev and complex simple single nic cases
From: https://lwn.net/Articles/529314/
> > Earlier this year, udev upstream was absorbed into systemd. udev often breaks compatibility with older systems by depending upon recent Linux kernel releases, even when such dependencies are avoidable. This became worse after udev became part of systemd, which has jeopardized our ability to support existing installations. The systemd developers are uninterested in providing full support in udev to systemd alternatives.
> > Starting with v197 systemd/udev will automatically assign predictable, stable network interface names for all local Ethernet, WLAN and WWAN interfaces. This is a departure from the traditional interface naming scheme ("eth0", "eth1", "wlan0", ...), but should fix real problems.
Systemd/udev and complex simple single nic cases
Earlier this year, udev upstream was absorbed into systemd. udev often breaks compatibility with older systems by depending upon recent Linux kernel releases, even when such dependencies are avoidable. This became worse after udev became part of systemd, which has jeopardized our ability to support existing installations. The systemd developers are uninterested in providing full support in udev to systemd alternatives.
Systemd/udev and complex simple single nic cases
> Thanks, Lennart. *slow clap*
Systemd/udev and complex simple single nic cases
a) a completely unpredictable in advance interface name
b) add kernel flags at install/kickstart and on your grub line to undo this
Systemd/udev and complex simple single NIC cases
https://access.redhat.com/discussions/916973
https://access.redhat.com/discussions/2620221
https://bugzilla.redhat.com/show_bug.cgi?id=1392506
https://bugzilla.redhat.com/show_bug.cgi?id=1391944
https://github.com/systemd/systemd/commit/6c1e69f9456d022...
Systemd/udev and complex simple single NIC cases
Systemd/udev and complex simple single NIC cases
> I'm pretty sure they can give you the moral support you need and even re-train you.
Systemd/udev and complex simple single NIC cases
( this problem is not spesific to linux, they are present on bsd and solaris as well ).
Name=enp1s0
Domains=<your search domains>
DNS=<your dns >
DNS=<your dns >
Address= <your ipv4 address )
Address=< your ipv6 address )
Gateway=< your gateway >
Name=enp1*
DHCP=yes
ifcfg script.
Systemd/udev and complex simple single NIC cases
The UEFI bricking vuln wasn't unique to systemd.
Systemd/udev and complex simple single NIC cases
Wol
Systemd/udev and complex simple single NIC cases
https://en.wikipedia.org/wiki/GUID_Partition_Table#Partit...
Systemd/udev and complex simple single NIC cases
Systemd as tragedy
If they'd stuck to wlan0 and eth0 then I wouldn't have had a problem.
Systemd as tragedy
That's great, and this no doubt solves a corner case for someone. But having worked at massive Dell shops I can say that even on 6-NIC servers I've *never* been hit by spontaneous random interface re-ordering on boot.
You obviously never had NICs with different drivers, where a kernel patch-release or new initrd resulted in the drivers being loaded in a different order and your network configuration being broken (e.g. IPs, VLANs, bonds/teams being on the wrong devices).
To be clear, on quad-GbE servers with dual-intel and dual-broadcom (e.g. Sun Galaxy range), it was quite common to see this. The workaround (before biosdevname) was to hard-code the MAC addresses in the interface configuration files, and then you would have to update them if ever the motherboard was replaced ...
Ever. Furthermore, the simplest possible case, *especially* in a VM-focused environment, is undoubtedly a "single host with single NIC",
Speak for your own environments. In mine, Linux is the hypervisor, and you absolutely want biosdevname when you have two or more physical NICs with 1 physical function and 14 (SR-IOV) virtual functions each.
and whatever benefits un-"predictable device naming" purports to provide is completely obliterated by no longer being able to assume eth0 has a meaning, when 99.5% of the time it previously worked as expected. (The only issue addressed here is when your MAC changes, but all major hypervisors have hooks in guest services to deal with that.)
VMWare (in the vSphere 4.x days) training specifically called out Linux as being very difficult to manage changes to vNICs compared to Windows ... and yes, I have experienced it too. biosdevname worked much better on the VMWare VMs than getting an unused eth0 and an unconfigured eth1 after cloning a template to a new VM.
Requiring others to re-code, re-design, or insert hacks into software and configs to solve weird edge cases LP found on his laptop one day and then telling everyone they should be happy in the long run for this extra work epitomizes the systemd "cabal"'s approach to doing things.
As noted previously in the comments, biosdevname was not invented by LP. In fact, it was invented by Dell, pre-systemd, and was deployed in many distros before the systemd project was started (e.g. RHEL6 with upstart had it by default).
And if you don't want it, disable it (net.ifnames=0 at boot or one of the other methods).