On the broken-ness of most Linux distributions …

If you have anything approaching a complex installation or management requirement for your systems, most … no … pretty much all Linux distributions have anywhere between somewhat borked to completely boneheaded designs for handling these complex sitatuations.
Say, for example, you want to boot a diskless NFS system, and replicate it. Diskless NFS is well known to be an easy to manage scenario … one system to manage, very scalable from an admin point of view.
But pretty much impossible for most distributions, out of the box, without some seriously major hacking. And its not because of them omitting support for this … no … it has to do with their designs. They are broken, in a fundamental manner, when it comes to handling anything of complexity.
Try an iSCSI installation. Set up a system so that it installs to an iSCSI target, and then correctly boots from it.
Or try a system where you need to correctly assemble a software RAID a-priori. We have some tools and tweaks again mkinitrd in Centos, but largely, the boot design of these distros work actively against you in dealing with anything remotely coming close to a complex system.
The whole mkinitrd/mkramfs system is all about carrying along modules, scripts, extra config bits, that you would ordinarily pull from disk or a remote machine. But the modular kernel builds, or the scripts associated with figuring out what to do, actually actively get in the way of you keeping the initrd/initramfs correctly in sync. Which leads to (often hours of) long debugging times to try to figure out what went bang after an upgrade.
Compare this to something like system rescue cd. Which upon boot, assembles raids, and does everything else we need. Without doing much in the way of an error prone switch-root or root-pivot. Those are fairly dangerous parts of the boot process in many of the major distros. as this is what inevitably fails in the complex environment scenario.
What you really want is the OS, kernel to fully boot, correctly, and then assemble raids and other bits (iSCSI, NFS, etc). system rescue CD seems to not have a problem doing this. Centos/RHEL? Not quite so good at it.
So I am thinking we might need to replace the init bits with something far more intelligent, and able to handle complexity. The current system really doesn’t work well at all, apart from a limited range of use case.
Yeah, dealing with some real joyful stuff right now, and the RHEL/Centos startup system isn’t doing a terribly good job. Some of it could be the kernel, which is … a Sun built thing … for Lustre. This could explain it … and one of the reasons why we build our own kernels is we want things to work … right … with no messing around.
But … its frustrating, and very wasteful of my time, to have to go back and fix this stuff again and again.

2 thoughts on “On the broken-ness of most Linux distributions …”

  1. haha – you’re complaining about mkinitrd.
    here’s something new to vomit about: dracut.
    Sure – one day – it maybe will work right, but currently – I’m not sure whether I should cry or laugh about it.

  2. Here is one of the recent comments in mkinitrd brought in by a patch:

    [root@pgda100 ~]# diff /sbin/mkinitrd.orig /sbin/mkinitrd
    > # of course virtio sucks the same way xennet does, but worse:

    Yeah … well … mkinitrd ain’t exactly a field full of daisies either.
    Dracut was supposed to solve some of the more blatant issues with mkinitrd.
    Honestly, there have been times where I’ve thought seriously hard about refactoring large chunks of the Centos/RHEL startup to fix the more egregious issues. Had I infinite time/budget, I might do it. Sadly, we have to focus upon revenue, so most of the fixes are shelved until we have more time.

Comments are closed.