News: 1700132467

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

Canonical intros Microcloud: Simple, free, on-prem Linux clustering

(2023/11/16)


Canonical hosted an amusingly failure-filled demo of its new easy-to-install, Ubuntu-powered tool for building small-to-medium scale, on-premises high-availability clusters, Microcloud, at an event in London yesterday.

The intro to the talk leaned heavily on Canonical's looming 20th anniversary, and with good reason. Ubuntu has carved out a substantial slice of the Linux market for itself on the basis of being easier to use than most of its rivals, at no cost – something that many Linux players still seem not to fully comprehend.

The presentation was as buzzword-heavy as one might expect, and it's also extensively based on Canonical's in-house tech, such as the LXD containervisor, Snap packaging, and, optionally, the Ubuntu Core snap-based immutable distro. (The only missing buzzword didn't crop up until the Q&A session, and we were pleased by its absence: it's not built on and doesn't use Kubernetes, but you [1]can run Kubernetes on it if you wish.) We're certain this is going to turn off or alienate a lot of the more fundamentalist Penguinistas, but we are equally sure that Canonical won't care. In the [2]immortal words of Kevin Smith , it's not for critics.

[3]

[4]Youtube Video

[5]

[6]

Microcloud combines several existing bits of off-the-shelf FOSS tech in order to make it easy to link from three to 50 Ubuntu machines into an in-house, private high-availability cluster, with live migration and automatic failover. It uses its own [7]LXD containervisor to manage nodes and workloads, [8]Ceph for distributed storage, [9]OpenZFS for local storage, and [10]OVN to virtualize the cluster interconnect. All the tools are packaged as snaps. It supports both x86-64 and Arm64 nodes, including Raspberry Pi kit, and clusters can mix both architectures.

The event included several demonstrations using an on-stage cluster of three ODROID machines with "Intel N6005" processors, so we reckon they were [11]ODROID H3+ units – which we suspect the company chose because of their dual Ethernet connections. Sadly for Canonical – although amusingly for viewers – the first demo was bringing up a new cluster, and this failed, repeatedly. You can [12]watch the demo for yourself, although due to it going badly awry, it over-ran from a planned 45 minutes to some 80 minutes. To give the org credit, they found and fixed the problem – a typo in a script, apparently – but as a result, the sequencing of the demos was disrupted and the result was a little confusing.

[13]

There's nothing that is profoundly ground-breaking here. All these components are out there and can be put together, but as [14]Linux.org's introduction to clustering puts it:

Setting up a High Availability system is no small task and needs to be thought through very thoroughly.

The article breaks Linux clusters down rather well, incidentally, and we recommend it. It splits them into four different types: HA, load-balancing, distributed, and parallel (Beowulf style supercomputer) clusters. These definitions are valid, but the problem is that they also overlap. For instance, Kubernetes creates and distributes "pods" of containers across multiple nodes, mainly to create very scalable web server infrastructure, but it also incorporates both load-balancing and high-availability functionality. Canonical already has its own Kubernetes distro, which it somewhat ambiguously [15]calls MicroK8s . (We say this because we've heard this pronounced both micro-coo-ber-net-es and micro-kates.) Apparently, you can run MicroK8s on Microcloud.

There are also already many existing tools out there which claim to ease cluster creation and management. OpenStack is an obvious one, and of course Canonical [16]already has one in that space. This vulture's favorite description of OpenStack was that it lets you take a few racks full of servers in your garage, and turn them into your own private AWS.

Microcloud, as its name implies, is aimed at significantly smaller clusters, but it also looks somewhat more flexible than most existing Kubernetes-based systems. Multiple vendors have tools for easily building Kubernetes clusters; for instance, in a prior role, this vulture wrote the original installation guide for [17]SUSE's CaaSP , now discontinued and replaced by [18]its Rancher acquisition . The thing is that while it can do other things, Kubernetes is strongly aimed at microservices: lots of small containers, typically each holding a single app, all working together to provide web servers that can scale on demand very rapidly.

Microcloud is a way to build LXD clusters, and while LXD can support microservices, that's not its primary focus. LXD is aimed at running "system containers" containing whole Linux installations, complete with their own init systems, sharing only the kernel. This in principle means that you could migrate an existing distro – any distro with any init system, not just Ubuntu – into an LXD container, so long as that distro is able to run on top of an Ubuntu kernel.

[19]

If the distro requires its own kernel for some reason, then since version 4, LXD has also been able to run full virtual machines, as we described when Canonical [20]took LXD back in-house earlier this year. Once Canonical's audibly stressed Thomas Parrott finally got it working, he demonstrated it running a full Ubuntu 22.04 GNOME desktop, as well as live-migrating a running NextCloud instance from one node to another.

As Canonical's [21]own documentation on HA clustering demonstrates, it's no trivial matter. Other vendors have their own tooling to simplify it, such as SUSE's [22]HA extension to SLE , but this is an enterprise tool for its enterprise distro. Microcloud is free and clusters the free Ubuntu desktop or server distros.

Microcloud is an interesting pitch. Back in the early 1990s, The Reg FOSS desk was a sysadmin for a cluster of DEC VAX machines running OpenVMS, and remains somewhat nostalgic for the clustering and version-control features that were integral parts of that operating system. As we have previously noted, [23]Linux is a UNIX™ , and Unix doesn't have anything like this – although its woefully neglected successor [24]Plan 9 does. However, these days, such functionality has been implemented on top of Linux via multiple layers of abstraction and indirection – a true [25]baklava code implementation. Just as it was complex to implement, it has also been complex to deploy.

Ubuntu has become popular not because of particular technical merit, but because it's easy and it's free. Over nearly two decades, its success as the go-to desktop distro led to it also becoming a player in the server space, as impecunious youths slowly graduated to working in IT and naturally reached for the distro they knew best. This vulture has worked for both of the main commercial enterprise Linux vendors, and came away with the impression they still don't fully comprehend these key twin advantages – and their loyal fans certainly don't, and will miss no chance to bash the opposition. [26]Holy wars have been a profound, if regrettable, element of the Unix world since well before Intel released the 80286.

Lots of enthusiasts enjoy criticizing Snap, but then, they also enjoy attacking systemd and Wayland and various other innovations – most of which are designed to make stuff easier without concern for the feelings of hardcore shell junkies. Although controversial, this kind of stuff simply does not matter to ordinary folks who just want stuff to be easy, such as an app store that enables them to install Chrome and Steam.

Canonical has a wide variety of desktops and both Ubuntu Server and Ubuntu Core, supplemented by its [27]decade-old Juju automation tools . It's notable that some of its tools avoid complexity that other vendors embrace but then try to hide.

Red Hat has been slow to adopt its own next-gen storage system, Stratis, although it has [28]finally landed in RHEL 9.3 . As a direct result of not having a file system capable of copy-on-write (COW) snapshots, its Flatpak cross-distro app format relies on some formidably complex underpinnings to deliver rollback: [29]OStree , basically "Git for binaries" – and famously, nobody [30]really understands Git .

Even so, Flatpak remains poor at handling command-line tools and can't be used to build a distro, for which you need to tackle OStree head-on. SUSE, in contrast, has a [31]much simpler transactional package management system based around RPM, because instead, SUSE [32]leans heavily on Btrfs, which is complex and [33]sometimes fragile .

Ubuntu dodges this complexity. Snap works by keeping each app in a single, compressed file, making transactionality easy without COW or anything resembling Git. For its next-gen filesystem, it uses ZFS, arguably the most mature filesystem in the Unix world. At the Ubuntu Summit, Ubuntu SABDFL Mark Shuttleworth told us that before Canonical adopted ZFS, he personally checked with Oracle and with [34]Free Software Foundation legal counsel Eben Moglen and got their OK. So, [35]despite licensing concerns , in the latest Ubuntu 23.10, [36]root on ZFS reappeared as an experimental option. We have no inside info on whether this will happen, but ZFS includes [37]block deduplication , so in principle, some future release of Ubuntu could enable ZFS dedup and so reduce the storage space needed by large monolithic Snap packages, especially multiple versions of them.

Canonical has always avoided the ready-rolled server market – perhaps because there were [38]already several contenders even back in 2010. We can't think of any other vendors chasing the low-end clustering market, though: hitherto that's been the big boys' domain. The integration between LXD, Snap packaging, and advanced tools like Ceph, OVN and ZFS could be a compelling bundle. (It could also relegate [39]LXD fork Incus to relative irrelevancy.) If Ubuntu can bring its one-two punch of a free product and simple deployment to Linux clustering, it could have a hit on its hands.

[40]Youtube Video ®

Get our [41]Tech Resources



[1] https://canonical.com/microcloud

[2] http://www.viewaskew.com/news/mar04/2.html

[3] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2ZVZKvdMy8XeRJ8xv8K8xBAAAAMg&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0

[4] https://www.youtube.com/embed/Os0tAhlWTeg?si=Bi6qjARxE_NlUQpU

[5] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44ZVZKvdMy8XeRJ8xv8K8xBAAAAMg&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[6] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33ZVZKvdMy8XeRJ8xv8K8xBAAAAMg&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[7] https://www.theregister.com/2014/11/06/canonical_announces_lxd_container_hypervisor/

[8] https://ceph.io/en/

[9] https://openzfs.org/wiki/Main_Page

[10] https://www.ovn.org/en/

[11] https://www.hardkernel.com/shop/odroid-h3-plus/

[12] https://www.youtube.com/watch?v=Os0tAhlWTeg

[13] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44ZVZKvdMy8XeRJ8xv8K8xBAAAAMg&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[14] https://www.linux.org/threads/linux-cluster-%E2%80%93-basics.35264/

[15] https://www.theregister.com/2020/06/02/canonical_microk8s_installer/

[16] https://www.theregister.com/2022/03/14/canonical_bullish_on_openstack/

[17] https://documentation.suse.com/suse-caasp/4.5/

[18] https://www.theregister.com/2020/07/09/suse_acquires_rancher/

[19] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33ZVZKvdMy8XeRJ8xv8K8xBAAAAMg&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[20] https://www.theregister.com/2023/07/07/canonical_takes_lxd_inhouse/

[21] https://ubuntu.com/server/docs/ubuntu-ha-introduction

[22] https://www.suse.com/products/highavailability/

[23] https://www.theregister.com/2023/01/17/unix_is_dead/

[24] https://www.theregister.com/2021/03/24/bell_labs_transfers_plan9pto_foundation/

[25] https://www.techopedia.com/definition/31878/baklava-code

[26] https://foldoc.org/holy+wars

[27] https://www.theregister.com/2013/10/10/ubuntu_13_10_juju_for_windows_azure/

[28] https://www.theregister.com/2023/11/15/rhel_and_alma_linux_93/

[29] https://ostreedev.github.io/ostree/

[30] https://xkcd.com/1597/

[31] https://www.theregister.com/2022/07/26/suse_adaptable_linux_platform/

[32] https://www.theregister.com/2017/08/25/suse_btrfs_defence/

[33] https://www.theregister.com/2022/03/18/bcachefs/

[34] https://www.theregister.com/2003/08/19/the_gpl_will_win_claims/

[35] https://www.theregister.com/2016/02/26/canonical_in_zfsonlinux_gpl_violation_spat/

[36] https://www.theregister.com/2023/09/19/ubuntu_2310_taking_shape/

[37] https://www.truenas.com/docs/references/zfsdeduplication/

[38] https://www.theregister.com/2010/11/17/linux_servers_for_windows_folk/

[39] https://www.theregister.com/2023/08/04/incus_lxd_fork/

[40] https://www.youtube.com/embed/FnzUcGg60Qk?si=BS36CIy3nQvQjZDm

[41] https://whitepapers.theregister.com/



Ausingly failure-filled demo ?

Anonymous Coward

At the 50m mark they did get the [1]MicroCloud Demo to run. Turned-out to be a typo. A failure to reset the snapshot from a previous demo.

[1] https://www.youtube.com/live/Os0tAhlWTeg?si=x3q9WK_Z3TsadZ7o&t=3000

Re: Ausingly failure-filled demo ?

Steven Raith

Yes, it's in the article.

"You can watch the demo for yourself, although due to it going badly awry, it over-ran from a planned 45 minutes to some 80 minutes. To give the org credit, they found and fixed the problem – a typo in a script, apparently – but as a result, the sequencing of the demos was disrupted and the result was a little confusing."

You did read it, right?

Lee D

Until it's as simple and standardised as HyperV Failover Cluster then, I'm afraid, it's still just a tool for Linux CLI junkies.

And I say that as someone who ran a Slackware desktop as my only personal machine while managing Windows networks for a living, who happily had a 4DOS/DOS 5.5 AUTOEXEC.BAT and CONFIG.SYS that had a dozen hand-crafted menu options to optimise the system towards certain demands of programs (literally juggling 1Kb around to try to make things fit), and who has a rack of Pis in my house doing everything from SDR to PVR to VPN to home automation.

Failover Cluster: install OS. Add Hyper-V role. Add Failover Cluster role. Run wizard to check all the nodes are compatible with each other and set up the cluster. Move virtual machines into it. Done.

Even complications like using S2D for the storage backing for it only resort to a few very simple Powershell commands.

Much as I hate so-many-things about Windows, and especially long-standing user interface annoyances with admin tools, it's really so simple for something so complex.

I'm not scared of the CLI at all, but it shouldn't be a necessary element of getting any of the above working, on either OS. And what we're seeing here is already a web-based interface on a pre-configured cluster and still it's so reliant on so much being done on the CLI - I can't imagine how many commands are involved to get to that stage, and the fact that a typo in a script brings things to a halt isn't encouraging.

Windows Server sucks, in so many ways. It wins because any idiot can just run a wizard from a clean install and create a HA cluster with storage and VM and other role capabilities. There are parts of all Windows GUIs that suck (hell, try moving VM storage on a failover cluster, whoever designed that menu should be shot!)... but the biggest, most complex ones work wonders for the user.

There's a reason I spin up entire Linux VMs for small, singular purposes, even on Windows clusters, and it's because the Linux tools to manage this stuff are awful. Hell, I remember how long it took to get a vaguely useable equivalent of "Active Directory Users & Computers"... and we're still not really there.

Linux has a long way to go on making this "admin friendly", rather than "vaguely usable by a dedicated expert tech who's read every single HOWTO in existence".

CrazyOldCatMan

Until it's as simple and standardised as HyperV Failover Cluster then, I'm afraid, it's still just a tool for Linux CLI junkies

You've obviously never seen Proxmox then - does (most) of the things that you want:

Failover Clustering - yes.

Live migration - Yes.

VMs - Yes (using QEMU/KVM)

Containers - Yes.

Snapshot backups - Yes.

All managed via a web interface. If you don't want to use CLI then you don't have to (the only circomstance I've needed to use it was to unlock a VM that the backup process had locked just before the backup process itself died - a "qm unlock " meant that the VM could be backed up again. The lock was only for backups - the VM carried on working happily).

My 2-server cluster runs 12 VMs - a mix of linux (Devuan & Debian), Windows (Server 2016 and 2019) and FreeBSD VMs. I can move VMs between the servers, can set resilience so that, if one of the servers goes down it automatically gets brought up on the other - requires ZFS shared storage) and in general, have my VMs running happily with little input from me.

It's free to install and run but, if you want support, there are graduated offerings (at graduated levels of cost!) for corporate use.

Allonymous Coward

Good shout out for Proxmox. I used to run it a few years ago, before changing gigs. Excellent product. For all I know the last place is still using it.

But the fact something like Proxmox already exists and is popular & cheap does make me wonder what the point of this Canonical thing is. Maybe I’m missing some point of differentiation, but yet again it feels a bit like Canonical reinventing the wheel (see also: bzr, Launchpad, Mir, Unity, Ubuntu Phone etc).

Doctor Syntax

Windows Server ... wins because any idiot can just run a wizard from a clean install and create a HA cluster with storage and VM and other role capabilities....Linux has a long way to go on making this "admin friendly"

As opposed to something like https://www.theregister.com/2023/11/16/microsoft_windows_server_patch/ ?

On the whole I expect a system administrator to be something more than a GUI jockey.

Unix doesn't have anything like this

Anonymous Coward

I do beg to differ (a bit)

DEC (remember them) had this version of Unix called Tru64 Unix. I used to run it on a pair of AlphaServers with Oracle Parallel Server circa 1995/96. Application failover was under 30 seconds.

But... it wasn't a patch on VMS Clustering that dates from around 1983. I watched some of the FCC testing of the HSC-50 at the 'Bubble' in MA. Neither unix or Linux has an OOTB Clusterwide filesystem that comes even close to what Dec released with their cluster hardware back in the 1980's.

Free yourself from negative influence. Negative thoughts are the old
habits that gnaw at the roots of the soul.
Moses Shongo, (Seneca)