<<

Published on Tux Machines (http://www.tuxmachines.org)

Home > content > GNU Projects: Ganeti cluster on Guix and RSEQ in GNU Library

GNU Projects: Ganeti cluster on Guix and RSEQ in GNU C Library

By Roy Schestowitz Created 17/07/2020 - 4:19pm Submitted by Roy Schestowitz on Friday 17th of July 2020 04:19:43 PM Filed under GNU [1]

GNU Guix: Running a Ganeti cluster on Guix [2]

The latest addition to Guix's ever-growing list of services is a little-known virtualization toolkit called Ganeti. Ganeti is designed to keep virtual machines running on a cluster of servers even in the event of hardware failures, and to make maintenance and recovery tasks easy.

It is comparable to tools such as Proxmox or oVirt, but has some distinctive features. One is that there is no GUI: third party ones exist, but are not currently packaged in Guix, so you are left with a rich command-line client and a fully featured remote API.

Another interesting feature is that installing Ganeti on its own leaves you no way to actually deploy any virtual machines. That probably sounds crazy, but stems from the fact that Ganeti is designed to be API-driven and automated, thus it comes with a OS API and users need to install one or more OS providers in addition to Ganeti. OS providers offer a declarative way to deploy virtual machine variants and should feel natural to Guix users. At the time of writing, the providers available in Guix are debootstrap for provisioning - and -based VMs, and of course a Guix provider.

Finally Ganeti comes with a sophisticated instance allocation framework that efficiently packs virtual machines across a cluster while maintaining N+1 redundancy in case of a failover scenario. It can also make informed scheduling decisions based on various cluster tags, such as ensuring primary and secondary nodes are on different power distribution lines.

It Needs A Restart: GLIBC Drops Support For Restartable Sequences[3] Well this is a huge Friday morning bummer: the GNU C Library (glibc) is dropping support for the very interesting Restartable Sequences (RSEQ) as some design changes need to be made, thus restarting work on restartable sequences.

Restartable Sequences were introduced into the kernel back in 4.18 for allowing various performance benefits with this allowing for faster user-space operations on per- CPU data by avoiding expensive atomic operations. For work like querying the current CPU number, incrementing per-CPU counters, writing/reading to the per-CPU ring buffers, and other work can all be made faster by RSEQ. The performance improvements are looking very good with RSEQ in the kernel when taken advantage of.

GNU

Source URL: http://www.tuxmachines.org/node/140001

Links: [1] http://www.tuxmachines.org/taxonomy/term/144 [2] https://guix.gnu.org/blog/2020/running-a-ganeti-cluster-on-guix/ [3] https://www.phoronix.com/scan.php?page=news_item&px=Glibc-Restart-Restartable-RSEQ