LXD

LXD-Tutorial

LXD-Tutorial

LXD-Grundlagen: Was ist das?? Und wie man es benutzt?

Die LXD-Containerisierung steht nicht im Rampenlicht wie Docker, aber sie ist tatsächlich viel näher an der Kernidee der Betriebssystemvirtualisierung. Aber bevor wir dort ankommen, lassen Sie uns über die moderne Virtualisierung auf Hardwareebene sprechen.

Hardware-Virtualisierung

Die traditionelle Art und Weise, mit der VMware, VirtualBox, KVM und ähnliche Technologien arbeiten, ist dies - Sie haben einen Server-Computer, sagen wir einen High-End-Xeon-Prozessor mit 512 GB RAM, bekannt als Bare Metal. Auf diesem installieren Sie ein Betriebssystem, auf dem dann entweder VMware, Virtualbox oder KVM laufen würde.

Das sind verschiedene Hypervisoren, und das Betriebssystem, auf dem sie ausgeführt werden, ist das Host-Betriebssystem.

Was der Hypervisor nun bietet, ist Folgendes: Er emuliert CPU, Netzwerkschnittstellen, Speicherplatten, Arbeitsspeicher, E/A und andere Ressourcen, sodass ein neues Betriebssystem auf diesem Satz von . installiert werden kann virtuelle Hardware. Dieses neue Betriebssystem ist das Gastbetriebssystem und es läuft auf virtueller Hardware, als ob es auf einer physischen Maschine installiert wäre, aber es gibt einen Haken.

Wenn Sie denken: „Aber das Emulieren verschiedener Hardwaregeräte mit der tatsächlichen Hardware klingt ineffizient und langsam.„Du hast vollkommen recht. Virtualisierung auf Hardwareebene ist langsam und ineffizient.

Außerdem sind Betriebssysteme selbst Kontrollfreaks. Wenn Sie einem Gastbetriebssystem 1 GB RAM und 2 CPU-Kerne zuweisen, werden alle Ressourcen glücklicherweise beansprucht, auch wenn die darin ausgeführten Anwendungen nur einen Bruchteil davon verbrauchen. Diese Ressourcen stehen dem Hypervisor nicht zur Verwendung an anderer Stelle zur Verfügung.

Dies schränkt die Anzahl der VMs, die auf einem Hypervisor ausgeführt werden können, stark ein. Wenn Sie ein Cloud-Hosting-Anbieter sind, bedeutet dies, dass Ihr Endergebnis schlecht getroffen wird.


Der Container-Weg, Dinge zu tun

Die Idee der virtualisierten Hardware wird aus dem Fenster geworfen, wenn wir über Container und insbesondere LXD sprechen. Anstatt einzelne Hardware-Ressourcen zu emulieren, versuchen wir, das Betriebssystem zu virtualisieren.

Wenn ein LX-Container hochgefahren wird, bietet das Betriebssystem sich selbst (dh der Kernel, die Bibliotheken alle ihm zur Verfügung stehenden Ressourcen) den Anwendungen an, die innerhalb des Containers ausgeführt werden. Benutzer und Apps innerhalb dieses Containers bemerken keine Anwendungen und Pakete, die außerhalb davon ausgeführt werden, und umgekehrt.

Was die Ressourcenzuweisung betrifft, können Sie einfach vermerken, dass ein bestimmter Container nicht mehr als beispielsweise 2 GB RAM und 2 CPUs verwenden darf. Auf diese Weise können die Ressourcen an anderer Stelle in der Hostumgebung zugewiesen werden, wenn die in einem Container ausgeführten Apps keine intensiven Aufgaben ausführen.

Wenn die Apps jedoch unter hoher Last laufen, erhalten sie die Bare-Metal-Performance!

Der offensichtliche Nachteil dabei ist, dass Sie kein beliebiges Betriebssystem als Gast ausführen können. Weil verschiedene Betriebssysteme insgesamt unterschiedliche Architekturen haben. Zum Glück für GNU/Linux-Benutzer bietet der Linux-Kernel eine so enge ABI-Kompatibilität, dass Sie verschiedene Distributionen auf demselben Kernel emulieren können. So können Sie CentOS-Binärdateien und Ubuntu-Anwendungen auf demselben Metall nur in verschiedenen Containern ausführen.


LXD-Initialisierung

Die LX-Containerisierung ist eine bewährte und robuste Technologie für Linux-basierte Betriebssysteme. Es hat zwei Hauptkomponenten, eine ist LXC, die Containerkonfigurationen, Image-Dateien usw. verwaltet, und dann gibt es LXD, der auf Ihrem Host ausgeführte Daemon, der sicherstellt, dass alle für die Containerisierung festgelegten Richtlinien befolgt werden.

Es wird standardmäßig auf Ubuntu Server 16 installiert.04 LTS, wenn Sie die Desktop-Distribution verwenden, führen Sie Folgendes aus:

$ apt install lxd lxd-client

Danach müssen Sie verschiedene Parameter initialisieren. Der folgende Befehl würde Sie durch sie führen:

$ lxd init

Sie können von hier aus Standardoptionen auswählen.  Am aufwendigsten wäre die Einrichtung von Netzwerkschnittstellen. Wenn Sie nach der Einrichtung des LXD-Netzwerks gefragt werden, wählen Sie die Standardoption Ja.

1 Antworten Sie erneut mit Ja, wenn Sie zum Einstellen des Netzwerks aufgefordert werden

Im nächsten Fenster wird nach dem Namen der Netzwerkschnittstelle gefragt (wie auf dem Host zu sehen), belassen Sie es auf dem Standardwert lxdbr0.

Die IPv4-Subnetzeinstellung würde danach kommen. Es würde es verschiedenen LX-Containern ermöglichen, miteinander zu kommunizieren, als ob es sich um verschiedene Computer in einem lokalen Netzwerk handelte. Wählen Sie dafür ja aus.

Als nächstes gibt es mehrere 10.202.X.X-Adressen werden in diesem Subnetz jeweils mit einer anderen Rolle angezeigt. Sie können die Eingabetaste drücken, ohne die Optionen anpassen zu müssen. Wenn Sie nach der NAT-Konfiguration gefragt werden, wählen Sie Ja.

Auf diese Weise können Ihre Container über die öffentliche IP des Hosts eine Verbindung zum Internet herstellen, ähnlich wie es Ihr Laptop und andere Geräte über den Heimrouter tun (mit Portweiterleitung).

Die letzte Option zum IPv6-Subnetz ist völlig optional und ich würde Ihnen empfehlen, sie vorerst wegzulassen. Sagen Nein, wenn Sie nach IPv6-Optionen gefragt werden.


Aufdrehen der Behälter

So führen Sie eine neue Instanz von beispielsweise Ubuntu 16 . aus.04, führen Sie den folgenden Befehl aus:

$lxc Ubuntu starten:16.04 Name_Ihres_Containers

Da dies das erste Mal ist, dass Sie einen Ubuntu-Server ausführen, dauert es einige Zeit, das Container-Image aus den Remote-Repositorys abzurufen. Sobald dies erledigt ist, können Sie die Details zum gestarteten Container anzeigen, indem Sie den folgenden Befehl ausführen:

$lxc-Liste

In diesem Beispiel lautet der Name des Containers Fortsetzung1.

Wenn Sie in den Container gelangen möchten, führen Sie den Befehl aus;

$lxc Exec name_of_your_container bash

Dadurch gelangen Sie in die Bash-Shell, die in diesem Container ausgeführt wird. Es würde riechen und sich anfühlen wie eine Neuinstallation von Ubuntu 16.04 und Sie können Pakete darin frei installieren und verschiedene Experimente durchführen, die Sie bei Ihrer Hauptinstallation nicht riskieren würden.

Nachdem Sie die Image-Datei nun lokal auf Ihrem Host-System gespeichert haben, können Sie Ubuntu-Container sehr schnell hochfahren und als Wegwerfsysteme verwenden.

Um einen LX-Container zu stoppen und zu löschen, führen Sie aus;

$lxc Containername stoppen $lxc Containername löschen 

Verwenden Sie den Befehl lxc launch, wie Sie es beim ersten Mal getan haben, um neue Container zu starten.


Wohin von hier aus

Nachdem Sie nun die Architektur von LXD kennen, möchten Sie vielleicht damit beginnen, sich mit Themen wie Netzwerken und Speicher für Container und deren Konfiguration für Ihre Arbeitslast zu befassen.

Vielleicht möchten Sie auch mehr über die Hauptunterschiede zwischen Docker und LXD erfahren und wissen, was Ihren Anforderungen besser entspricht. Wenn Sie ZFS als Speicher-Backend verwenden möchten (wie Sie sollten!) können Sie sich dieses Tutorial zu den ZFS-Grundlagen ansehen.

Beste Spielkonsolen-Emulatoren für Linux
Dieser Artikel listet beliebte Spielekonsolen-Emulationssoftware auf, die für Linux verfügbar ist. Emulation ist eine Softwarekompatibilitätsschicht, ...
Beste Linux-Distributionen für Gaming im Jahr 2021
Das Linux-Betriebssystem hat sich weit von seinem ursprünglichen, einfachen, serverbasierten Aussehen entfernt. Dieses Betriebssystem hat sich in den ...
So erfassen und streamen Sie Ihre Gaming-Sitzung unter Linux
In der Vergangenheit galt das Spielen von Spielen nur als Hobby, aber mit der Zeit verzeichnete die Spieleindustrie ein enormes Wachstum in Bezug auf ...