Clear Linux präsentiert ein für die Intel Architektur optimiertes Cloud-Betriebssystem, das gleichermaßen als Vorzeigeobjekt wie als innovatives Container-OS dient.
Das Clear Linux Project for Intel Architecture oder kurz Clear Linux [1], reiht sich als einer der neusten Vertreter in die Reihe der Distributionen für Cloud-Computing ein, die in der letzten Zeit vermehrt erscheinen. Zu den bekannteren Vertretern dieser Zunft gehören etwa Ubuntu Snappy, CoreOS [2] oder Red Hat Atomic Host [3]; auf den Rängen tummeln sich unter anderem noch RancherOS [4], das Unikernel-Projekt MirageOS [5] und VMware Photon [6]. Alle diese Distributionen sind vom Umfang her klein und dazu gedacht, Container mit so wenig wie möglich Betriebssystem-Ballast nahe am Kernel laufen zu lassen. Das für Docker optimierte RancherOS schafft das mit gerade einmal 20 MByte Umfang.
Wenn ein Halbleiterhersteller wie Intel ein eigenes Betriebssystem auf den Markt bringt, dann geht es selbstverständlich um mehr als nur um eine weitere Distribution. Bei Clear Linux handelt es sich um ein auf Intels Prozessoren optimiertes Vorzeigeprojekt (Abbildung 1). Nach Angaben des Herstellers setzt es optimalerweise einen Intel-Core-Prozessor der vierten Generation oder einen Intel Xeon E5 v3 voraus. Somit eignen sich alle CPUs seit der “Haswell”-Plattform bestens für Clear Linux. Die Distribution bringt Bestandteile wie OpenStack [7] mit, verzichtet jedoch auf eine GUI und die Fähigkeit zum Drucken.

Abbildung 1: Clear Linux dient Intel als Vorzeigeprojekt für Cloud-Computing auf seinen CPU-Architekturen.
Kein Zustand
Intels Betriebssystem für die Cloud arbeitet standardmäßig als “Stateless System” oder zustandsloses System. Dieses Prinzip vereinfacht beim Einsatz von sehr vielen Rechnern die Handhabung von Installation, Konfiguration und Aktualisierung. Zustandslose Systeme benötigen keine feste Konfiguration und kommen ohne die Verzeichnisse /etcund /var aus.
Stateless ist jedoch kein eng umrissener Zustand: Solche Systeme reichen von “zugenagelten” Varianten im Embedded-Bereich über Ausgaben mit einem nur lesbaren Dateisystem bis hin zu gemischten Modellen, wo auf einem herkömmlichen Linux ein verändertes Filesystem die Zustandslosigkeit hervorbringt. Clear Linux beherrscht den Spagat zwischen beiden Spielarten: Die Installation lässt sich von einem zustandslosen System auf ein normal agierendes Dateisystem umstellen.
Clear Linux als VM
Da Clear Linux als Container-OS gedacht ist, gibt es kein ISO-Image zum Erstellen eines optischen Datenträgers oder eines USB-Sticks der Distribution (Abbildung 2). Das IMG-Image lässt sich jedoch leicht in eine virtuelle Maschine für Virtualisierungssoftware wie KVM, VirtualBox oder VMware verwandeln. Intel gibt dafür in der Online-Dokumentation zu Clear Linux eine ausführliche Hilfestellung [12].
Clear Linux bringt zudem das eigene Containerformat Clear Container [8] mit, das auf der Basis von Rocket (rkt) und Docker entwickelt wurde. Es enthält ein maßgeschneidertes Sicherheitskonzept, das auf der Intel Virtualization Technology (VT-x) aufbaut. Dabei geht es vor allem um den Punkt Sicherheit: Intel möchte die von herkömmlichen virtuellen Maschinen gebotene Isolierung mit den Vorteilen der Geschwindigkeit beim Ausrollen von Arbeitsumgebungen sowie der Leichtigkeit und Flexibilität von Containern vereinen.
Dazu nutzt der Hersteller neben einem optimierten Kernel und angepasstem Systemd auch KVMtool, um Container auf einem “Haswell”-System mit einer SSD in unter 150 Millisekunden aufzusetzen (Abbildung 3). Die Container benötigen im Betrieb etwa 20 MByte Arbeitsspeicher, sodass auf einem System mit 128 GByte Hauptspeicher mehr als 3500 davon laufen könnten. Die Startzeiten liegen zwar über denen herkömmlicher Docker-Container, Intels Variante bietet dafür aber mehr Sicherheit. Mit dem KVMtool [9] gibt es noch ein KVM ohne darunterliegendes QEMU, dessen Funktionalität sich hier jedoch getrost vernachlässigen lässt. Damit bootet der Container ohne BIOS oder UEFI direkt auf die Kernel-Ebene.
Clear Container gibt es außer für Clear Linux auch für Debian, Ubuntu, CentOS, Scientific Linux, Fedora, OpenSuse, Tumbleweed und Suse Linux Enterprise. Das Konzept von Clear Container soll in die Open Container Initiative der Linux Foundation einfließen. Möchten Sie Ihr Wissen um Clear Container und dessen Technologien vertiefen, legen wir Ihnen zu diesem Zweck den Artikel des Kernel-Developers und Clear-Linux-Chefentwicklers Arjan van de Ven auf LWN [10] ans Herz.
Atomare Updates
Bei der Aktualisierung des Systems geht Clear Linux OS ebenfalls eigene Wege: Die Paketverwaltung lässt sich zwischen traditionellem Paketmanagement und “Atomic Updates” aller Pakete ansiedeln. Intel setzt zwar auf das RPM-Format für Binärpakete, fasst diese jedoch zweckorientiert zu Bündeln zusammen, die das System am Stück aktualisiert. Von Intel angekündigt, aber noch nicht realisiert, ist ein Remixer genanntes Werkzeug zum Zusammenstellen eigener Bündel.
Um den Hauptspeicherverbrauch pro Container soweit wie möglich zu minimieren, macht Clear Linux intensiv Gebrauch von der seit Kernel 4.0 nutzbaren Kernelfunktion Direct Access (DAX). Dabei lädt das System von Anwendungen angeforderte Dateien entsprechend dem Zero-Copy-Ansatz nicht wie üblich erst in den Arbeitsspeicher, sondern führt Lese- und Schreiboperationen unter Umgehung des Page-Cache auf das virtuelle Speichersubsystem des Kernels direkt im nichtflüchtigen Speicher (NVM) aus.
Compileroptimierung
Für die verschiedenen Intel-Architekturen bringt die Unterstützung der Compiler-Option Function Multiversioning (FMV) weiteres Optimierungspotenzial mit: Sie erlaubt es, Code für mehrere Plattformen zu bauen und später dann zur Laufzeit die Software entscheiden zu lassen, dass sie beispielsweise auf einem System mit “Haswell”-CPU die AVX2-Erweiterung zur verbesserten Vektorberechnung [11] heranzieht. FMV bringt bei Anwendungen, die noch nicht für multiple Befehlssätze optimiert wurden, in der Regel einen Geschwindigkeitsgewinn.
Eine Telemetriefunktion sammelt Informationen über fehlerhafte Vorkommnisse im System, sammelt dabei aber keine Daten, die Rückschlüsse über den Anwender zulassen. Die Funktion lässt sich bei Bedarf aber auch abschalten oder auf das eigene System richten. Das Betriebssystem steht auf dem Projektserver ausschließlich für die IA64-Architektur als Live-Image, als Installer, KVM-Image oder im hauseigenen Containerformat zum Herunterladen bereit.
Infos
[1] Clear Linux: https://clearlinux.org
[2] CoreOS: https://coreos.com
[3] Atomic Host: http://www.projectatomic.io
[4] RancherOS: http://rancher.com/rancher-os/
[5] MirageOS: https://mirage.io
[6] Photon: https://vmware.github.io/photon/
[7] OpenStack:https://www.openstack.org
[8] Clear Container: https://clearlinux.org/features/clear-containers
[9] KVMtool: http://lwn.net/Articles/438182/
[10] Einführung in Clear Container: http://lwn.net/Articles/644675/
[11] AVX2: https://de.wikipedia.org/wiki/Advanced_Vector_Extensions
[12] Clear Linux in Virtualisierungssoftware: https://clearlinux.org/documentation/index_vm.html







