Rechercher dans ce blog

Thursday, September 2, 2021

CBL-Mariner: Die Linux-Distro von Microsoft aus der Nähe betrachtet - Golem.de - Golem.de

CBL-Mariner ist ein leichtgewichtiges Linux, ausgelegt als Container-Host für Microsofts Azure-Infrastruktur.

Ein Test von
Linux und Microsoft - das passt durchaus zusammen.
Linux und Microsoft - das passt durchaus zusammen. (Bild: Pixabay / Montage: Golem.de)

Microsoft veröffentlicht eine eigene Linux-Distribution. Diese Meldung klingt nur im ersten Moment überraschend, denn die Zeiten, in denen Microsoft gegen Open Source kämpfte und Steve Ballmer Linux mit einem Krebsgeschwür verglich, sind lange vorbei. Heute gilt Microsoft als die Firma, die am meisten zu Open-Source-Projekten beiträgt. Auf jeden Fall Grund genug, einen genaueren Blick auf die Linux-Distro des Redmonder Windows-Herstellers zu werfen und die Hintergründe zu CBL-Mariner - das CBL steht für Common Base Linux - zu beleuchten.

Veröffentlicht wurde CBL-Mariner eher leise - letztlich ist es nur ein Repository unter vielen auf Github. Es gibt keine fertigen Images zum Herunterladen und direkt Installieren. Wer Mariner ausprobieren will, muss etwas mehr Aufwand betreiben als bei anderen Distributionen.

Microsoft hat aber eine recht ausführliche Anleitung in dem Repository hinterlegt, mit deren Hilfe es für Anwender mit ein wenig Linux-Erfahrung möglich sein sollte, ein eigenes Image zu erzeugen und Mariner auszuprobieren. Das passt auch ganz gut, schließlich handelt sich bei Mariner nicht um eine voll ausgestattete Distribution für den Desktop-Einsatz. Für den schlanken Servereinsatz weiß man dagegen selbst am besten, was gebraucht wird - da ist es ein Vorteil, selbst die Komposition zu erledigen und bewusst zu entscheiden.

Ausgelegt als Linux für die Cloud-Infrastruktur

Das stellt Microsoft auch gleich in der Projektbeschreibung des CBL-Mariner Repositories klar: "CBL-Mariner ist eine interne Linux-Distribution für Microsofts Cloud-Infrastruktur und Edge-Produkte und -Dienste." Für diese Anwendungen soll CBL-Mariner die Basis bereitstellen. Das Unternehmen weist außerdem darauf hin, dass die Existenz von Mariner keine Auswirkungen auf bereits bestehende Commitments hinsichtlich anderer Linux-Angebote mit anderen Distributionen habe.

Das mit den Commitments ist deshalb wichtig, weil Microsoft im Rahmen des Windows Subsystem for Linux (WSL) auch spezielle Kernels für die mit dem Subsystem kompatiblen Distributionen bereitstellt und so Ubuntu, openSUSE Leap, SUSE Linux Enterprise Server, Kali Linux for WSL und Debian GNU/Linux unter WSL2 auf Windows 10 lauffähig macht. Es steht also nicht zu befürchten, dass mit CBL-Mariner an dieser Stelle eine Ablösung bevorsteht und Anwender gezwungen sein könnten, unter Windows nur noch Microsofts Linux einsetzen zu können.

Eine Verwandtschaft zu den WSL-Angeboten gibt es aber schon

Ungeachtet der Ankündigung, dass keine Ablösung der WSL2-Linuxe bevorsteht, hat CBL-Mariner mit WSL aber schon etwas zu tun. Erstmal läuft es natürlich unter WSL2 und außerdem ist Microsofts Linux System Group für Mariner verantwortlich, in deren Aufgabenbereich auch WSL2 an sich fällt. Es ist aber nichts Neues, dass sich die Gruppe um mehr als ein einziges Projekt kümmert: Zu den anderen bekannten Projekten, die im Verantwortungsbereich der Linux System Group liegen, gehören zum Beispiel noch das Projekt für Netzwerk-Switche, SONiC, und Azure Sphere.

Mariner ist eine sehr fokussierte Distro

Sieht man sich näher an, was in Mariner enthalten ist - und auch, was nicht enthalten ist -, so fällt auf, dass Mariner sehr leichtgewichtig ist. Im Cloud Computing kommt es darauf an, dass die Hosts so wenig Ressourcen wie möglich für sich verbrauchen. Je weniger Overhead Kubernetes-Container haben, desto mehr Nodes können per Pod verwendet werden.

Gleiches gilt für den zweiten von Microsoft genannten Anwendungsfall, dem Edge-Computing. Das Konzept von 5G sieht vor, Workloads und Daten näher zu den Anwendern zu bringen, letztlich also aus den Datencentern heraus, und das möglichst performant auf beschränkter lokaler Hardware, denn nicht jedem 5G-Knoten steht eine Halle mit Server-Hardware zur Verfügung.

Bisher wurde für diese Einsätze meistens CoreOS verwendet, das aber als eigenständiges Projekt im letzten Jahr nach dem Kauf durch Red Hat eingestellt wurde. Zwar findet hier eine Weiterentwicklung als Fedora CoreOS und als Red Hat Enterprise Linux CoreOS statt, aber in einem Konzern wie Microsoft, der inzwischen den Großteil der Umsätze mit der Azure Cloud und den darauf angebotenen Diensten macht, werden Unsicherheiten wie eingestellte oder sich abspaltende Distributionen als unkalkulierbares Risiko gesehen. Deswegen gilt es als bessere Alternative, eine Lösung in der eigenen Hand zu behalten.

Und so ist es wenig verwunderlich, dass CBL-Mariner einen ähnlichen Ansatz wie CoreOS verfolgt. Standardmäßig ist an Packages nur das dabei, was wirklich gebraucht wird, um Support für Container zu bieten und diese laufen zu lassen.

Enthalten sind eine iptables-basierte Firewall, Unterstützung für signierte Updates und ein gehärteter Kernel in der Version 5.10 LTS. Wer nur ein Minimum an Shared Resources zur Verfügung stellt, minimiert eben auch das Risiko von Sicherheitsproblemen. Weil Mariner ein RPM-basiertes Linux ist, ist es aber nicht schwer, benötigte Funktionen und Dienste selbst dazu zu installieren, so sie denn gebraucht werden.

CBL-Mariner selbst ausprobieren

Mariner bietet gleich mehrere Möglichkeiten an, es selbst auszuprobieren. Nachdem das Github-Projekt ausgecheckt wurde, können die Go-Tools für das Projekt gebaut werden. Die schnelle Möglichkeit ist, sich ein Image aus vorgebauten Packages zusammenzustellen. Das geht einmal als ISO-Image für die direkte Installation auf einem Computer, man kann sich aber auch eine VHDX-Datei mit einer virtuellen Maschine für die Nutzung mit Hyper-V erstellen lassen, wenn man Mariner nur als Container-Host verwenden möchte. Eine weitere Option baut ein Container Image, das für Mariner-basierte Dockerfiles verwendet werden kann.

Länger dauert es, Mariner direkt aus den Quellen zu bauen. Dafür kann man dann zum Beispiel auch für neuere ARM-basierte CPUs kompilieren und hat Kontrolle über den gesammten Prozess, inklusive des Hinzufügens weiterer Pakete.

Wer selbst ausprobieren möchte, kann der Anleitung von Microsoft folgen. Dort heißt es, der beschriebene Prozess sei auf Ubuntu 18.04 getestet, mit einer aktuellen Ubuntu-Version hat es aber auch problemlos geklappt. Mit einem ganz anderen Linux sollte es ebenso klappen. Gebraucht werden die Programmiersprache Go, die QEMU utilities und RPM - all zu viele Anforderungen sind das sicher nicht.

Die Installation

Die Installation von CBL-Mariner verläuft ganz Linux-normal. In einer virtuellen Maschine mit vSphere klappt das wunderbar, es reicht dabei völlig, der Mariner-Instanz 16 GB Speicher, 2 GB RAM und eine vCPU zur Verfügung zu stellen. Mit dem erstellten ISO-Image gebootet, steht sogar ein grafisches Interface zur Verfügung, um das Betriebssystem zu installieren. Ein bisschen typisch Microsoft ist das schon, steht doch im installierten und gebooteten Mariner selbst dann nur eine Konsole zur Verfügung.

Als Package Manager wird dnf oder tiny dnf verwendet, das sich um die Updates kümmert. Als Package Repositories stehen update und base (mariner-official-updateCBL-Mariner und mariner-official-baseCBL-Mariner) zur Verfügung. Zusammen enthalten sie circa 3.300 Packages. Sehr schön ist, dass selbst in einer vSphere-Umgebung open-vm-tools zur Verfügung steht.

Sicherheitsfeatures hat CBL-Mariner natürlich auch

CBL-Mariner bringt auch gleich ein paar Security Features mit. Iptables als Firewall, SYN Cookies, signierte Updates, Address Space Layout Randomization (ASLR), Kernel hardening und gcc/glibc hardening sind größtenteils standardmäßig dabei, System Call Filtering, Process Isolation, Laufwerksverschlüsselung und ein paar andere Sachen können zusätzlich aktiviert werden. Eine genauere Liste gibt es hier.

Insgesamt gesehen ist CBL-Mariner ein gelungenes, schlankes Linux, das Spaß macht. Als schlankes Testsystem, um eigene Container auszuprobieren, bietet es sich in einer virtuellen Maschine auf jeden Fall an. Da weiß man als Entwickler dann auch, ob im Container alles drin ist und ob sich nicht zu sehr auf das Host System verlassen wird.

Zusätzlich wird man in Zukunft daran sicher sehen können, was Microsoft in Sachen Linux alles einbringen möchte. Denn viel davon wird wohl auch irgendwie bei Mariner landen. Damit ist das Mariner-Repository eine zentrale Stelle, bei der es sich lohnen könnte, sie einfach im Auge zu behalten.

Adblock test (Why?)


CBL-Mariner: Die Linux-Distro von Microsoft aus der Nähe betrachtet - Golem.de - Golem.de
Read More

No comments:

Post a Comment

One UI 5.1: Samsung kündigt Update-Start für ältere Galaxy-Smartphones an, los geht es u.a. mit Galaxy S20, S21 und S22 - Notebookcheck.com

Nachdem es vor wenigen Tagen bereits inoffizielle Informationen zum Rollout von Samsungs One UI 5.1 für die ersten Modelle jenseits der ne...