ITEO - Virtualisierung

ITEO - Virtualisierung

ITEO - Virtualisierung

Cyrille Ulmi

Cyrille Ulmi

Kartei Details

Karten 94
Lernende 51
Sprache Deutsch
Kategorie Informatik
Stufe Universität
Erstellt / Aktualisiert 06.06.2017 / 23.11.2023
Weblink
https://card2brain.ch/box/20170606_iteo_virtualisierung
Einbinden
<iframe src="https://card2brain.ch/box/20170606_iteo_virtualisierung/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

Zählen Sie OS auf, welche OS Virtualisierung beherrschen

  • BSD --> Jails (Grundidee)
  • Solaris --> Zonen
  • Linux --> Container (LXC)
  • Microsoft --> Container (WS 2016)

Wie sieht eine Linux Container Architektur etwa aus?

Was ist LXC? Welche Erweiterungen werden benötigt?

Linux Container (LXC) ist Open Source, eine schnelle und leichtgewichtige Art der Implementierung eines virtuellen OS auf einem Linux Server

§ Nur eine Instanz vom Linux Kern ist involviert.
§ LXC beinhaltet ein paar wenige einfache Modifikationen im Kern.
§ Der Linux Kern unterstützt eine Anzahl separater virtuellen Linux Servern.
§ Der Kern verwaltet alle System Ressourcen und Tasks, inklusive Prozess Scheduling, Memory, Disk Platz und Prozessor Zeiten.

Wir brauchen also mindestens 3 wichtige Erweiterungen:
§ Filesystemgrenzen für Prozesse chroot
§ Ressourcen sharing zwischen Prozess Gruppen cgroups
§ Namespaces ns

Was ist der Unterschied zwischen LXC und Dockers?

Beschreiben Sie einen Docker

  • Docker verwendet die Möglichkeiten von LXC um Applikationen innerhalb eines Container bereitzustellen.
  • SW Layer über dem Linux Container
  • Dockt an jedes Linux an und verwendet die vorher besprochenen Kern Erweiterungen (erzeugt eigenen Namespace und cgroups für die Applikation durch die Virtualisierungs-APIs und die mitgebrachte libcontainer Library)

Was ist ein VFS

Virtual File System

Uniformes FS Interface zum User Prozess

Beschreiben Sie Copy on Write

Was ist Copy on Write?

  • Zweck: Silent Corruption verhindern (Inkonsistenzen finden und beheben).
  • Beim Schreiben eines Blockes wird der alte Block, der an der zu beschreibenden Stelle war, nach unten kopiert.
  • Macht Snapshots beim Schreiben.
  • Konsistenz auch bei Stromausfall.

Was ist Redirect on Write?

  • Verbesserte Version von Copy on Write.
  • Neue Schreibanfrage möchte die Daten in den alten Block schreiben, wird aber redirected in einen neuen Block. Der alte Block behält die alten Daten.
  • Weniger Operationen als Copy on Write.
  • Macht Snapshots beim Schreiben.
  • Konsistenz auch bei Stromausfall.

Was ist Reallocate or redirect on write?

  • Aktive Daten werden nie überschrieben
  • Ein neuer Block wird alloziert und mit den modifizierten Daten beschrieben.
  • Jegliche Metadaten-Blöcke die darauf referenzieren werden gleich gelesen, neu alloziert und beschrieben.
  • Um Overhead zu reduzieren werden mehrere Updates in transaktionale Gruppen zusammengefasst.
  • Der Intent Log (ZIL) wird verwendet, wenn synchrone Schreib-Semantik verlangt wird.

Was ist der Unterschied zwischen traditionellen Filesystemen und ZFS?

Was ist chroot von Linux? Kontext Isolation von LXC

chroot ist eine Operation die das root Directory für den aktuell laufenden Prozess und dessen Kinder ändert. Ein Programm das in diesem modifizierten Umfeldes läuft kann auf keine Dateien und Kommandos mehr ausserhalb dieses Verzeichnis Baumes zugreifen. Das modifizierte Umfeld nennt man chroot jail.

Was sind cgroups von Linux? Kontext Isolation von LXC

§ cgroups sind ein Kernel Feature
§ Erlauben das allozieren von Systemressourcen wie zB: CPU Zeit, System Memory, Netzwerkbandbreite oder eine Kombination davon über eine Benutzer definierte Gruppe von Tasks (Prozesse)
§ cgroups erlauben dem Administrator eine feingranulare Kontrolle über die Zuordnung, Priorisierung, Verwaltung und Überwachung von Systemressourcen.
§ HW Ressourcen können so aufgeteilt werden unter Benutzern und Tasks (Prozesse).
§ cgroups sind wie Prozesse hierarchisch organisiert, wobei child cgroups die Attribute ihrer Eltern erben.
§ cgroups sind wie Prozesse hierarchisch organisiert, wobei die Kinder die Attribute ihrer Eltern erben. Trotzdem gibt es zwischen den beiden Modellen Unterschiede (vergl. nächste Folie)

Was sind Namensräume / Namespaces von Linux? Kontext Isolation von LXC

§ Ein Namespace abstrahiert eine globale System Ressource in der Art, dass der zum Namensraum gehörende Prozess meint er besitze diese Ressource einzigartig.
§ Änderungen an dieser globale Ressource sind nur sichtbar für die Mitglieder im gleichen Namensraum. Für andere Prozesse sind sie nicht sichtbar.
 Eine offensichtliche Verwendung von Namensräumen ist die Implementation von Containern.