LPIC101/102.6 Linux als Virtualisierung-Gast: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
K Textersetzung - „ “ durch „ “ |
||
(40 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
= Virtualisierung= | = Virtualisierung= | ||
*Der Hauptgrund für die Virtualisierung von Computern ist die wesentlich | *Der Hauptgrund für die Virtualisierung von Computern ist die wesentlich effizientere Nutzung von Hardware ressourcen und die damit verbundene Kostenersparnis. | ||
Kostenersparnis. | *Die meisten physikalischen Server verwenden nur einen Bruchteil der verfügbarenHardware, weil bei der Anschaffung von Servern gerne großzügig dimensioniert wird, damit es nicht frühzeitig zu Leistungsengpässen kommt. | ||
*Die meisten physikalischen Server verwenden nur einen Bruchteil der verfügbarenHardware, weil bei der Anschaffung von Servern gerne | *Wenn sich mehrere virtuelle Server einen physikalischen Server teilen, können Sie die Ressourcen dynamisch zuweisen, also z. B. überschüssigen Arbeitsspeicher eines Servers reduzieren und diesen einem anderen Server zuweisen. | ||
*Wenn sich mehrere virtuelle Server einen physikalischen Server teilen, können Sie die Ressourcen | *Der Umzug eines virtuellen Servers auf eine leistungsfähigere Hardware ist natürlich auch erheblich einfacher, als derUmzug einer nativen Serverinstallation. | ||
*Der Umzug eines virtuellen Servers auf eine | *Für die Virtualisierung wird ein Hypervisor(auch Virtual-Machine-Monitor, VMM genannt) benötigt: | ||
Für die Virtualisierung wird ein Hypervisor(auch Virtual-Machine-Monitor, VMM genannt) benötigt: | *Dieser liegt als Schicht zwischen der Hardware des Hostsystems und den virtuellen Maschinen (Gastsysteme). | ||
== | *Hierbei unterscheidet man zwischen Typ 1 und Typ 2 Hypervisor. | ||
* | ==Ein Typ1 Hypervisor== | ||
Bare-Metal-Installation. | * Ein Typ 1 Hypervisor läuft, ohne dass zuvor ein Betriebssystem auf dem Host installiert werden muss,direkt auf der Hardware. | ||
* Man spricht hier auch von einer Bare- Metal-Installation. Ohne Gastsystem kann auf einem Typ 1 Hypervisor keine Anwendung ausgeführt werden. | |||
== Ein | * Beispiele hierfür sind VMware vSphere/ESXi, XEN, KVM, Red Hat Enterprise Virtualization und Hyper-V. | ||
*benötigt ein Betriebssystem auf dem Hostrechner. | |||
*Typ 2 Hypervisor | ==Ein Typ2 Hypervisor== | ||
*benötigt ein Betriebssystem auf dem Hostrechner. Auf dem Hostbetriebssystem kann zusätzlich andere Software installiert sein. Beispiele hier-für sind VMware Workstation und VirtualBox. | |||
*Typ 2 Hypervisor gibt es üblicherweise für unterschiedliche Hostsysteme. Dadurch ist es sogar möglich, Gastsysteme plattformübergreifend zu migrieren (z. B. von VirtualBox auf Windows zu VirtualBox auf Linux oder umgekehrt | |||
=Vollvirtualisierung= | =Vollvirtualisierung= | ||
* Bei einer Vollvirtualisierung präsentiert der Hypervisor dem Gastsystem einen virtuellen Computer und das Gastsystem erfährt nicht, dass es sich in einer virtualisierten Umgebung befindet. | |||
* Der einzige Vorteil dabei ist, dass das Gastsystem keine Unterstützung für Virtualisierung bieten muss, was aber heutzutage nur noch bei Exoten der Fall sein dürfte. | |||
=Paravirtualisierung= | |||
* Die Paravirtualisierung ist sozusagen der Gegenspieler der Vollvirtualisierung. | |||
* Hier weiß das Gastsystem, dass es in einer virtualisierten Umgebung läuft. | |||
Paravirtualisierung | * Das hat den Vorteil, dass das Gastsystem den Hypervisor kontaktieren kann (Hypercall). | ||
Die | * Umgekehrt kann auch der Hypervisor das Gastsystem ansprechen. So ist es z. B. möglich, das Gastsystem mit einer Verwaltungskonsole des Hypervisors herunterzufahren. | ||
* Auch eine Zeitsynchronisation mit dem Host ist ein wesentliches Feature, das die Paravirtualisierung, im Gegensatz zur Vollvirtualisierung, unterstützt. | |||
=Klonen virtueller Maschinen= | |||
ist | * Damit virtuelle Maschinen schneller breitgestellt werden können, ist es sinnvoll, diese nicht jedes Mal von Grund auf neu zu installieren. | ||
weiß | * Stattdessen erstellen Sie nur eine virtuelle Maschine als Referenzsystem und klonen dieses im Bedarfsfall. | ||
* Das Referenzsystem sollte allerdings gepflegt, also regelmäßig mit Updates versehen werden, damit geklonte Maschinen gleich auf einem neuen Stand sind und nicht gleich Unmengen Updates installieren müssen. | |||
Vorteil, | * Ein Klon gleicht dem Referenzsystem leider wie ein Schaf dem anderen. Deshalb müssen Sie noch ein paar Vorkehrungen treffen, bevor Sie den neuen virtuellen Host aktiv nutzen können. Sie sollten z. B. den Hostnamen und die IP-Adresse ändern, damit es nicht zu einem Konflikt kommen kann. | ||
Hypervisor | =Container / Anwendungscontainer= | ||
Hypercall | * Wenn sehr viele gleichartige virtuelle Maschinen benötigt werden, kann man auf Containervirtualisierung zurückgreifen. | ||
. | * Bei dieser Art der Virtualisierung wird kein Hypervisor eingesetzt und es wird auch keine virtuelle Hardware zur Verfügung gestellt. | ||
* Deshalb ist es auch nicht möglich, Windows-Container auf einem Linux- Host auszuführen oder umgekehrt. | |||
* Das liegt daran, dass zwar Teile des Betriebssystems pro Gast isoliert zur Verfügung gestellt werden (Dateisystem, Bibliotheken), aber alle verwenden zumindest denselben Kernel. | |||
sinnvoll zu | |||
==chroot== | ==chroot== | ||
* Eine frühe Form der Containervirtualisierung ist chroot. | |||
Eine frühe Form der | * Diese Technologie wird verwendet um Programme in einer isolierten Umgebung (Sandbox, Jail) auszuführen. | ||
* Hierzu werden in einem Verzeichnis alle für das zu isolierende Programm notwendigen Verzeichnisse, Dateien, Bibliotheken und auch Gerätedateien angelegt und das Programm in diesem Verzeichnis "eingesperrt". | |||
chroot | * Dieses Verzeichnis ist aus der Sicht dieses Programms das Hauptverzeichnis (chroot = change root). | ||
Umgebung | |||
Hierzu werden in einem Verzeichnis alle | |||
für das zu isolierende Programm | |||
Bibliotheken | |||
Programm in diesem Verzeichnis " | |||
dieses Programms das Hauptverzeichnis ( | |||
chroot | |||
= | |||
root | |||
). | |||
==Docker== | ==Docker== | ||
*Docker ist eine moderne Containervirtualisierung. | |||
*Im Prinzip läuft eine virtuelle Dockeranwendung auch in einem isolierten Verzeichnis, das bei Docker als Container bezeichnet wird. | |||
*Die Einrichtung ist im Vergleich zu <code>chroot</code> allerdings erheblich einfacher. | |||
=Cloud/Infrastructure as a Service (IaaS)= | |||
Es gibt viele Produkte, die als Clouddienste angeboten werden. Jeder kennt heutzu- tage Dropbox, OneDrive und andere Anbieter, wo auch für Privatanwender Speicherplatz zur Verfügung gestellt wird. Beliebt sind auch Onlinekalender,Adressbücher und ganze Officepakete. | |||
Es gibt viele Produkte, die als Clouddienste angeboten werden. Jeder kennt heutzu- tage Dropbox, OneDrive und andere Anbieter, wo auch für Privatanwender | |||
Abgesehen davon, dass Ihre Daten sich auf fremden Servern befinden, bieten Public Clouds natürlich auch erhebliche Vorteile: | Abgesehen davon, dass Ihre Daten sich auf fremden Servern befinden, bieten Public Clouds natürlich auch erhebliche Vorteile: | ||
* Zugriff auf Ressourcen von überall aus | * Zugriff auf Ressourcen von überall aus | ||
Zeile 128: | Zeile 58: | ||
* physikalische Sicherheit durch externe Dienstleister | * physikalische Sicherheit durch externe Dienstleister | ||
* geringe Kosten | * geringe Kosten | ||
=cloud-init= | |||
cloud-init ist ein Paket, das Probleme löst, die beim Klonen virtueller Maschinen entstehen. Einige wesentliche Aufgaben, die mittels cloud-init durchgeführt werden können, sind: | cloud-init ist ein Paket, das Probleme löst, die beim Klonen virtueller Maschinen entstehen. Einige wesentliche Aufgaben, die mittels cloud-init durchgeführt werden können, sind: | ||
* Hostname konfigurieren | * Hostname konfigurieren | ||
Zeile 140: | Zeile 71: | ||
[[Kategorie:Linux/LPIC/101]] | |||
[[ | [[Kategorie:Virtualisierung]] |
Aktuelle Version vom 28. Mai 2023, 07:46 Uhr
Virtualisierung
- Der Hauptgrund für die Virtualisierung von Computern ist die wesentlich effizientere Nutzung von Hardware ressourcen und die damit verbundene Kostenersparnis.
- Die meisten physikalischen Server verwenden nur einen Bruchteil der verfügbarenHardware, weil bei der Anschaffung von Servern gerne großzügig dimensioniert wird, damit es nicht frühzeitig zu Leistungsengpässen kommt.
- Wenn sich mehrere virtuelle Server einen physikalischen Server teilen, können Sie die Ressourcen dynamisch zuweisen, also z. B. überschüssigen Arbeitsspeicher eines Servers reduzieren und diesen einem anderen Server zuweisen.
- Der Umzug eines virtuellen Servers auf eine leistungsfähigere Hardware ist natürlich auch erheblich einfacher, als derUmzug einer nativen Serverinstallation.
- Für die Virtualisierung wird ein Hypervisor(auch Virtual-Machine-Monitor, VMM genannt) benötigt:
- Dieser liegt als Schicht zwischen der Hardware des Hostsystems und den virtuellen Maschinen (Gastsysteme).
- Hierbei unterscheidet man zwischen Typ 1 und Typ 2 Hypervisor.
Ein Typ1 Hypervisor
- Ein Typ 1 Hypervisor läuft, ohne dass zuvor ein Betriebssystem auf dem Host installiert werden muss,direkt auf der Hardware.
- Man spricht hier auch von einer Bare- Metal-Installation. Ohne Gastsystem kann auf einem Typ 1 Hypervisor keine Anwendung ausgeführt werden.
- Beispiele hierfür sind VMware vSphere/ESXi, XEN, KVM, Red Hat Enterprise Virtualization und Hyper-V.
Ein Typ2 Hypervisor
- benötigt ein Betriebssystem auf dem Hostrechner. Auf dem Hostbetriebssystem kann zusätzlich andere Software installiert sein. Beispiele hier-für sind VMware Workstation und VirtualBox.
- Typ 2 Hypervisor gibt es üblicherweise für unterschiedliche Hostsysteme. Dadurch ist es sogar möglich, Gastsysteme plattformübergreifend zu migrieren (z. B. von VirtualBox auf Windows zu VirtualBox auf Linux oder umgekehrt
Vollvirtualisierung
- Bei einer Vollvirtualisierung präsentiert der Hypervisor dem Gastsystem einen virtuellen Computer und das Gastsystem erfährt nicht, dass es sich in einer virtualisierten Umgebung befindet.
- Der einzige Vorteil dabei ist, dass das Gastsystem keine Unterstützung für Virtualisierung bieten muss, was aber heutzutage nur noch bei Exoten der Fall sein dürfte.
Paravirtualisierung
- Die Paravirtualisierung ist sozusagen der Gegenspieler der Vollvirtualisierung.
- Hier weiß das Gastsystem, dass es in einer virtualisierten Umgebung läuft.
- Das hat den Vorteil, dass das Gastsystem den Hypervisor kontaktieren kann (Hypercall).
- Umgekehrt kann auch der Hypervisor das Gastsystem ansprechen. So ist es z. B. möglich, das Gastsystem mit einer Verwaltungskonsole des Hypervisors herunterzufahren.
- Auch eine Zeitsynchronisation mit dem Host ist ein wesentliches Feature, das die Paravirtualisierung, im Gegensatz zur Vollvirtualisierung, unterstützt.
Klonen virtueller Maschinen
- Damit virtuelle Maschinen schneller breitgestellt werden können, ist es sinnvoll, diese nicht jedes Mal von Grund auf neu zu installieren.
- Stattdessen erstellen Sie nur eine virtuelle Maschine als Referenzsystem und klonen dieses im Bedarfsfall.
- Das Referenzsystem sollte allerdings gepflegt, also regelmäßig mit Updates versehen werden, damit geklonte Maschinen gleich auf einem neuen Stand sind und nicht gleich Unmengen Updates installieren müssen.
- Ein Klon gleicht dem Referenzsystem leider wie ein Schaf dem anderen. Deshalb müssen Sie noch ein paar Vorkehrungen treffen, bevor Sie den neuen virtuellen Host aktiv nutzen können. Sie sollten z. B. den Hostnamen und die IP-Adresse ändern, damit es nicht zu einem Konflikt kommen kann.
Container / Anwendungscontainer
- Wenn sehr viele gleichartige virtuelle Maschinen benötigt werden, kann man auf Containervirtualisierung zurückgreifen.
- Bei dieser Art der Virtualisierung wird kein Hypervisor eingesetzt und es wird auch keine virtuelle Hardware zur Verfügung gestellt.
- Deshalb ist es auch nicht möglich, Windows-Container auf einem Linux- Host auszuführen oder umgekehrt.
- Das liegt daran, dass zwar Teile des Betriebssystems pro Gast isoliert zur Verfügung gestellt werden (Dateisystem, Bibliotheken), aber alle verwenden zumindest denselben Kernel.
chroot
- Eine frühe Form der Containervirtualisierung ist chroot.
- Diese Technologie wird verwendet um Programme in einer isolierten Umgebung (Sandbox, Jail) auszuführen.
- Hierzu werden in einem Verzeichnis alle für das zu isolierende Programm notwendigen Verzeichnisse, Dateien, Bibliotheken und auch Gerätedateien angelegt und das Programm in diesem Verzeichnis "eingesperrt".
- Dieses Verzeichnis ist aus der Sicht dieses Programms das Hauptverzeichnis (chroot = change root).
Docker
- Docker ist eine moderne Containervirtualisierung.
- Im Prinzip läuft eine virtuelle Dockeranwendung auch in einem isolierten Verzeichnis, das bei Docker als Container bezeichnet wird.
- Die Einrichtung ist im Vergleich zu
chroot
allerdings erheblich einfacher.
Cloud/Infrastructure as a Service (IaaS)
Es gibt viele Produkte, die als Clouddienste angeboten werden. Jeder kennt heutzu- tage Dropbox, OneDrive und andere Anbieter, wo auch für Privatanwender Speicherplatz zur Verfügung gestellt wird. Beliebt sind auch Onlinekalender,Adressbücher und ganze Officepakete. Abgesehen davon, dass Ihre Daten sich auf fremden Servern befinden, bieten Public Clouds natürlich auch erhebliche Vorteile:
- Zugriff auf Ressourcen von überall aus
- Netzwerkbandbreiten müssen nicht selbst vorgehalten werden.
- kein Hardwarekauf für Server
- Backuplösungen sind in der Regel integriert.
- schnelle Skalierbarkeit
- physikalische Sicherheit durch externe Dienstleister
- geringe Kosten
cloud-init
cloud-init ist ein Paket, das Probleme löst, die beim Klonen virtueller Maschinen entstehen. Einige wesentliche Aufgaben, die mittels cloud-init durchgeführt werden können, sind:
- Hostname konfigurieren
- Benutzerdaten eintragen
- Standard-Gebietsschema einstellen
- privaten SSH-Schlüssel für den Host erstellen
- öffentlichen SSH-Schlüssel eines Benutzers hinterlegen Vorbereiten der Repositorys für die Paketverwaltung
- Pakete installieren
- Benutzerskripte ausführen
- Die hierfür erforderlichen Angaben können bei unterstützenden Cloudanbietern über die Verwaltungsoberfläche eingetragen werden.