We're probably going to upgrade our OmniOS servers by reinstalling them

March 27, 2017

We're currently running OmniOS r151014 on our fileservers, which is the current long term support release (although we're behind on updates, because we avoid them for stability reasons). However, per the OmniOS release cycle, there's a new LTS release coming this summer and about six to nine months later, our current r151014 version will stop being supported at all. Despite what I wrote not quite a year ago about how we might not upgrade at all, we seem to be broadly in support of the idea of upgrading when the next LTS release is out in order to retain at least the option of applying updates for security issues and so on.

This raises the question of how we do it, because there are two possible options; we could reinstall (what we did the last time around), or upgrade the existing systems through the normal process with a new boot environment. Having thought about it, I think that I'm likely to argue for upgrading via full reinstalls (on new system disks). There's two reasons for this, one specific to this particular version change and one more general one.

The specific issue is that OmniOS is in the process of transitioning to a new bootloader; they're moving from an old version of Grub to a version of the BSD bootloader (which OmniOS calls the 'BSD Loader'). While it's apparently going to be possible to stick with Grub or switch bootloaders over the transition, the current OmniOS Bloody directions make this sound pretty intricate. Installing a new OmniOS from scratch on new disks seems to be the cleanest and best way to get the new bootloader for the new OmniOS while preserving Grub for the old OmniOS (on the old disks).

The more broader issue is that reinstalling from scratch on new disks every time is more certain for rollbacks (since we can keep the old disks) and means that any hypothetical future systems we install wind up the same as the current ones without making us go through extra work. If we did in-place upgrades, to get identical new installs we would actually have to install r151014 then immediately upgrade it to the new LTS. If we just installed the new LTS, there are various sorts of subtle differences and incompatibilities that could sneak in.

(This is of course not specific to OmniOS. It's very hard to make sure that upgraded systems are exactly the same as newly installed systems, especially if you've upgraded the systems over significant version boundaries.)

I like the idea of upgrading between OmniOS versions using boot environments in theory (partly because it's neat if it works), it would probably be faster and less of a hassle, and I may yet change my mind here. But I suspect that we're going to do it the tedious way just because it's easier on us in the long run.


Comments on this page:

By Dan McD. at 2017-03-28 11:01:34:

If you'd just read the "I WANT TO STICK WITH GRUB" section, you'd see it's really easy. Just put BE_HAS_GRUB=true in the updated BE's /etc/default/be.

By cks at 2017-03-28 11:12:15:

Looking back I phrased part of my entry badly. I think we want to migrate to the BSD Loader in general, basically for the same reasons that OmniOS and Illumos are; GRUB isn't really maintained any more. If we're going to migrate, it's easier to do that through a reinstall on new disks, since that cleanly 'preserves' the ability to boot our r151014 setup through GRUB (since the old disks have both GRUB and r151014).

(GRUB versus the BSD Loader would also probably be another point of difference between updated and fresh-installed systems if we tried to stay with GRUB, since I assume fresh-installed new systems will use the BSD Loader.)

Written on 27 March 2017.
« Your exposure from retaining Let's Encrypt account keys
Link: The Unix Heritage Society now has the 8th, 9th, and 10th editions of Research Unix »

Page tools: View Source, View Normal, Add Comment.
Search:
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Mon Mar 27 01:45:33 2017
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.