LPIC101/102.6 Linux als Virtualisierung-Gast: Unterschied zwischen den Versionen

Aus Foxwiki
K (Textersetzung - „  “ durch „ “)
 
(42 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  effizien-tere Nutzung von Hardware ressourcen und die damit verbundene
*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  großzügi  dimensioniertwird,  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.
*Wenn  sich  mehrere virtuelle Server einen physikalischen Server teilen, können Sie die Ressourcen dyna-misch 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.
*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:
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).
== Ein Typ 1 Hypervisor ==  
*Hierbei unterscheidet man zwischen Typ 1 und Typ 2 Hypervisor.
*der läuft, ohne dass zuvor ein Betriebssystem auf dem Host instal-liert  werden muss, direkt auf der Hardware. Man spricht hier auch von einer
==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.
*Ohne Gastsystem kann auf einem Typ 1 Hypervisor keine Anwen-dung ausgeführt werden. Beispiele hierfür sind VMware vSphere/ESXi,XEN, KVM, RedHat Enterprise Virtualization und Hyper-V.
* Man spricht hier auch von einer Bare- Metal-Installation. Ohne Gastsystem kann auf einem Typ 1 Hypervisor keine Anwendung ausgeführt werden.
== Ein Typ  2 Hypervisor ==
* Beispiele hierfür sind VMware vSphere/ESXi, XEN, KVM, Red Hat Enterprise Virtualization und Hyper-V.
*benötigt  ein  Betriebssystem auf  dem  Hostrechner. Auf demHostbetriebssystem kann zusätzlich andere Software installiert sein. Beispiele hier-für sind VMware Workstation und VirtualBox.  
 
*Typ 2 Hypervisor
==Ein Typ2 Hypervisor==
*gibt es üblicherweise für unterschiedliche Hostsysteme. Dadurch ist es sogar möglich, Gastsysteme platt-formübergreifend zu migrieren (z. B. von VirtualBox auf Windows zu VirtualBox auf Linux oder umgekehrt)
*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.


Bei einer Voll virtualisierung 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 Unter-
=Paravirtualisierung=
stützung für Virtualisierung bieten muss, was aber heutzutage nur noch bei Exoten
* Die Paravirtualisierung ist sozusagen der Gegenspieler der Vollvirtualisierung.
der Fall sein dürfte
* 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<br>
* Umgekehrt kann auch der Hypervisor das Gastsystem ansprechen. So ist es z.&nbsp;B.&nbsp;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.
==Paravirtualisierung==
=Klonen virtueller Maschinen=
ist sozusagen der Gegenspieler der Vollvirtualisierung. Hier
* Damit virtuelle Maschinen schneller breitgestellt werden können, ist es sinnvoll, diese nicht jedes Mal von Grund auf neu zu installieren.
weiß das Gastsystem, dass es in einer virt
* Stattdessen erstellen Sie nur eine virtuelle Maschine als Referenzsystem und klonen dieses im Bedarfsfall.
ualisierten  Umgebung läuft. Das hat den
* 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, dass das Gastsystem den
* 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.&nbsp;B.&nbsp;den Hostnamen und die IP-Adresse ändern, damit es nicht zu einem Konflikt kommen kann.
Hypervisor kontaktieren kann
=Container / Anwendungscontainer=
Hypercall
* Wenn sehr viele gleichartige virtuelle Maschinen benötigt werden, kann man auf Containervirtualisierung zurückgreifen.
.Umge-
* Bei dieser Art der Virtualisierung wird kein Hypervisor eingesetzt und es wird auch keine virtuelle Hardware zur Verfügung gestellt.
kehrt kann auch der Hypervisor das Gastsy
* Deshalb ist es auch nicht möglich, Windows-Container auf einem Linux- Host auszuführen oder umgekehrt.
stem ansprechen.  
* Das liegt daran, dass zwar Teile des Betriebssystems pro Gast isoliert zur Verfügung gestellt werden (Dateisystem, Bibliotheken), aber alle verwenden zumindest denselben Kernel.
Die  Fähigkeit  eines  Gastsystems, eine  virtualisierte  Umgebung  zu  erkennen  und
sinnvoll zu nutzen, ist entwed
er bereits Bordmittel des Ke
rnels oder sie muss nach-
träglich  hinzugefügt  werden. Neuere  Betr
iebssysteme  haben  diese  Treiber  zumeist
an Bord, während bei älteren Systemen zwin
gend Gasttreiber installiert werden müs-
sen. Die  Bezeichnung  für  diese  Gasttreibe
r  ist  bei  den  verschiedenen  Hypervisoren
unterschiedlich.Bei  
VirtualBox
heißen sie Gasterweiterungen, bei
Hyper-V
Integrati-
onsdienste und bei
VMware
VMware Tools<br>


==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  kein
e virtuelle  Hardwa
re  zur  Verfügung
gestellt.Deshalb  ist  es auch  nicht  mögl
ich,  Windows-Container  auf  einem  Linux-
Host auszuführen oder umgekehrt. Das lieg
t daran, dass zwar Teile des Betriebssys-
tems  pro  Gast  isoliert  zur  Verfügung  gestellt  werden  (Dateisystem,  Bibliotheken),
aber alle verwenden zumi
ndest denselben Kernel<br>
==chroot==
==chroot==
 
* Eine frühe Form der Containervirtualisierung ist chroot.
Eine frühe Form der Cont
* Diese Technologie wird verwendet um Programme in einer isolierten Umgebung (Sandbox, Jail) auszuführen.
ainervirtualisierung ist  
* 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).
.Diese Technologie wird ver-
wendet  um Programme in einer isolierten
Umgebung (Sandbox, Jail) auszuführen.
Hierzu werden in einem Verzeichnis alle  
für das zu isolierende Programm notwendi-
gen Verzeichnisse, Dateien,  
Bibliotheken und auch Gerätedateien angelegt und das
Programm in diesem Verzeichnis "eingespe
rrt". Dieses Verzeich
nis ist aus der Sicht
dieses Programms das Hauptverzeichnis (
chroot
=  
ch
ange
root
). Hierdurch soll ver-
hindert  werden,  dass  das  Programm  außerh
alb  dieser  Umgebung  Zugriff  auf  das
Dateisystem erhält.
chroot
ist allerdings nicht als Sicherheitssoftware konzipiert und
entsprechend  nicht  ausbruch
sicher.  Die  Einrichtung  von 
chroot
ist  vergleichsweise
umständlich<br>


==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.


Docker
=Cloud/Infrastructure as a Service (IaaS)=
ist  eine  moderne  Containervirtualisie
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.
rung. Im  Prinzip  läuft  eine  virtuelle
Abgesehen davon, dass Ihre Daten sich auf fremden Servern befinden, bieten Public Clouds natürlich auch erhebliche Vorteile:
Dockeranwendung auch in einem isolierten Verzeichnis, das bei
* Zugriff auf Ressourcen von überall aus
Docker
* Netzwerkbandbreiten müssen nicht selbst vorgehalten werden.
als
* kein Hardwarekauf für Server
Container
* Backuplösungen sind in der Regel integriert.
bezeichnet wird. Die Einrichtung ist im Vergleich zu
* schnelle Skalierbarkeit
chroot
* physikalische Sicherheit durch externe Dienstleister
allerdings erheblich ein
* geringe Kosten
facher. Beim Start eines solc
hen Containers wird auf ein
Dockerimage
zurückgegrif-
fen, das als Vorlage für den Container dient.<br>
==Cloud / Infrastructure as a Service (IaaS)==


Es gibt viele Produkte, die als Clouddiens
=cloud-init=
te angeboten werden. Jeder kennt heutzu-
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:
tage
* Hostname konfigurieren
Dropbox
* Benutzerdaten eintragen
,  
* Standard-Gebietsschema einstellen
OneDrive
* privaten SSH-Schlüssel für den Host erstellen
und andere Anbieter, wo auch
* öffentlichen SSH-Schlüssel eines Benutzers hinterlegen 􏰁 Vorbereiten der Repositorys für die Paketverwaltung
für Privatanwe
* Pakete installieren
nder Speicher-
* Benutzerskripte ausführen
platz  zur  Verfügung  gestellt  wird. Beliebt sind  auch  Onlinekalender, Adressbücher
* Die hierfür erforderlichen Angaben können bei unterstützenden Cloudanbietern über die Verwaltungsoberfläche eingetragen werden.
und ganze Officepakete. Sie sollten sich ab
er immer im Klaren darüber sein, wem Sie
Ihre Daten anvertrauen. Spätes
tens an dieser Stelle wird es interessant, sich zwischen
Puplic Cloud und Private Cloud zu entschei
den. Bei einer Private Cloud bleiben Ihre
Daten nämlich auf Ihren Serv
ern und nicht auf Servern anderer Leute. Wenn Sie eine
Private Cloud selbst betreiben möchte
n, sollten Sie sich die Produkte
ownCloud
oder
Nextcloud
einmal ansehen. Aber darum soll es jetzt nicht gehen.<br>




[[Category:Linux]]
[[Kategorie:Linux/LPIC/101]]
[[Category:Linux:LPIC:101]]
[[Kategorie:Virtualisierung]]

Aktuelle Version vom 28. Mai 2023, 08:46 Uhr

Virtualisierung[Bearbeiten | Quelltext bearbeiten]

  • 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[Bearbeiten | Quelltext bearbeiten]

  • 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[Bearbeiten | Quelltext bearbeiten]

  • 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[Bearbeiten | Quelltext bearbeiten]

  • 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[Bearbeiten | Quelltext bearbeiten]

  • 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[Bearbeiten | Quelltext bearbeiten]

  • 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[Bearbeiten | Quelltext bearbeiten]

  • 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[Bearbeiten | Quelltext bearbeiten]

  • 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[Bearbeiten | Quelltext bearbeiten]

  • 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)[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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.