5 Gründe warum wir LXD verwenden

5 Gründe warum wir LXD verwenden

Linuxcontainer und der Container-Hypervisor LXD sind eine meiner Lieblingstechnologien seit Ubuntu 16.04. Wir verwenden Linuxcontainer bei uns in der Schule für unsere Webanwendungen oder auch andere Dienste. Es gibt einige Dinge, die ich an LXD sehr mag. Also: Warum LXD?

Einige Dinge, wie Installation, einen ersten Container erstellen usw. habe ich in diesem kleinen Screencast zusammengefasst:

Aktivieren Sie JavaScript um das Video zu sehen.
Video-Link: https://www.youtube.com/watch?v=14MS_NKTKUE

1. LXC Client und REST API

Neben LXD gibt es noch das Kommandozeilenprogramm lxc. Es ist sehr einfach zu bedienen und dabei sehr mächtig. Es macht einfach Spaß damit zu arbeiten. lxc greift dabei auf die Rest API von LXD zurück. Hier ein paar kleine Beispiele:

Einen neuen Ubuntu Container erstellen und starten (x steht für Xenial):

Root im Container werden:

Alle Container anzeigen:

Eine Datei in den Container kopieren:

Das Tolle ist IMHO auch, dass man die API über das Netzwerk verfügbar machen kann. So kann ich an meinem Rechner mehrere Remotes hinzufügen. Wir haben z.B. mehrere LXD Hosts im Einsatz. Möchte ich nun auf diese Hosts zugreifen, ohne mich jedes Mal per SSH anzumelden, füge ich diese einfach als Remote hinzu:

Nun kann ich die gleichen Befehle wie oben nutzen. Vor dem Containername muss einfach nur der Name des Remote-Hosts angegeben werden:

2. Geschwindigkeit

Linuxcontainer sind schnell erstellt und man kann sie sehr schnell starten und beenden. Das dauert i.d.R. nur wenige Sekunden. Das ist vielleicht kein Alleinstellungsmerkmal für LXD, denn das Gleiche gilt auch für Docker oder andere Containertechnologien.

3. Snapshots & Migration

Ein Feature von LXD sind Snapshots. Ich kann von jedem Container einfach ein Abbild erstellen, auf welches ich später wieder zurück kann.

Mit lxc info mein_container kann ich mir meine Snapshots anzeigen lassen und mit folgendem Befehl zum letzten Snapshot zurückkehren:

Ich kann aber auch aus einem Snapshot einen neuen Container (hier test) erstellen, um z.B. ein Update oder eine Änderung zu testen.

Auch hier gilt, dass ich das nicht nur lokal auf einem Host machen kann, sondern so z.B. einen Container von einem Host auf einen anderen (live) migrieren kann. Es gibt dabei zwei Möglichkeiten. Entweder erstelle ich eine Kopie oder ich verschiebe den Container. Ich mache davon manchmal Gebrauch, wenn ich z.B. eine neue Anwendung lokal auf meinem Rechner teste, kann ich sie später einfach auf den Host in der Schule schieben.

4. Ressourcenschonend

Linuxcontainer verbrauchen sehr wenig Speicherplatz, da sie sich viele Komponenten mit dem Container-Host teilen. Ein frisches Ubuntu-Image z.B. verbraucht nur wenige MB an Speicherplatz. Alle Container teilen sich zudem Arbeitsspeicher und CPU-Ressourcen. So kann eine viel höhere Dichte im Vergleich zu virtuellen Maschinen erreicht werden, die wesentlich mehr Ressourcen brauchen. Canonical spricht davon, dass auf einem Server 10x mehr Container-VMs möglich sind im Vergleich zu klassischen virtuellen Maschinen (z.B. KVM).

5. Flexible Netzwerk und Speicherkonfiguration

Mit LXD sind verschiedenste Anwendungsszenarien möglich. Es werden verschiedene Speicher-Backends unterstützt und verschiedene Netzwerktreiber. Man kann auch mehrere Speicher-Backends auf einem Host haben und bei der Erstellung eines Containers entscheiden, auf welchem Speicher er gestartet werden soll. Eine Übersicht über alle möglichen Speicher findet man in der Dokumentation.

Auch netzwerktechnisch sind unterschiedliche Optionen vorhanden. Standardmäßig erstellt LXD ein eigenes Subnet für die Container. Man kann aber auch Netzwerkbrücken einrichten oder VLANs nutzen, um den Container die gewünschte IP zu geben bzw. die vorhandene Infrastruktur zu nutzen.

Fazit

Wer viel mit Linux-VMs arbeitet, sollte sich LXD auf jeden Fall anschauen. LXD ist für mich die perfekte Mischung aus den Vorteilen, die Container bringen und der gewohnten Umgebung, die man von einer Linux-VM gewohnt ist. Es ist wie eine „richtige“ virtuelle Maschine, nur schneller.

Welche Erfahrungen hast du bereits mit Container allgemein bzw. mit LXD konkret gemacht?

3 Gedanken zu „5 Gründe warum wir LXD verwenden

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.