Security ist ein stets aktuelles Thema in der IT. Deshalb widmet sich das ADMIN-Magazin 04/2012 speziell Sicherheitsaspekten und gibt Antworten auf die Fragen: ... (mehr)

Caching

In der Detailansicht des Virtual Machine Manager können Sie im Dialogblatt des Datenträgers zwischen verschiedenen Caching-Modi wählen (Abbildung 4). Dazu müssen Sie zuerst die normalerweise versteckten Bereiche »Advanced options« und »Performance options« ausklappen. Dann stehen beim Feld »Cache mode« vier Einstellungen zur Auswahl:

Abbildung 4: I/O-Caching im Virtual Machine Manager einstellen.
  • None: Es wird kein Caching verwendet. Diese Einstellung gilt standardmäßig bei im Virtual Disk Manager eingerichteten virtuellen Maschinen.
  • Default: Der Hypervisor entscheidet, ob und welches Caching-Verfahren zum Einsatz kommt. Bei KVM ist das derzeit Writethrough-Caching (siehe den nächsten Punkt). Vorsicht: Das Defaultverhalten kann sich in zukünftigen KVM-Versionen ändern!
  • Writethrough: Mit dieser Einstellung werden Lese- und Schreibzugriffe durch den Zwischenspeicher des Hostsystems beschleunigt. Schreibzugriffe im Gastsystem werden aber erst dann abgeschlossen, wenn das Hostsystem den Speichervorgang quittiert hat. Jeder Synchronisationsvorgang (sync, fsync) muss physikalisch auf dem Hostsystem abschlossen werden, bevor der betreffende Prozess im Gastsystem weiterarbeiten kann. Aktuelle Qemu/KVM-Versionen berücksichtigen dabei I/O Barriers.
  • Writeback: In diesem Fall werden auch die Schreibvorgänge durch das Gastsystem gepuffert (so wie bei jedem Programm, das in eine Datei schreibt). Synchronisationsvorgänge werden nicht direkt weitergeleitet, sondern vom Hostsystem nach dessen Ermessen durchgeführt. Das führt bei Schreibvorgängen zu einer erheblichen Beschleunigung.

Natürlich hat diese Art des Cachings einen gravierenden Nachteil: Wenn das Hostsystem abstürzt, kann es passieren, dass das Dateisystem des Gasts inkonsistent und im schlimmsten Fall unbenutzbar wird. Besonders groß ist dieses Risiko bei QCOW2-Image-Dateien. Abstürze des Gasts verursachen hingegen nicht mehr Probleme als bei nicht-virtualisierten Systemen.

Welches ist nun die beste Einstellung? In der KVM-Dokumentation wird häufig die Einstellung »None« empfohlen. Meine eigenen Benchmarks haben aber ergeben, dass das Writethrough-Caching bei virtuellen Maschinen, die viele I/O-Operationen durchführen, eine deutliche Geschwindigkeitssteigerung bewirkt (auch bei LVM-Datenträgern). Noch mehr Performance bietet das Writeback-Caching, von dessen Einsatz ich aber aus Sicherheitsgründen abrate.

Snapshots mit QCOW2

Snapshots helfen dabei, den Zustand oder das Dateisystem einer virtuellen Maschine zu einem bestimmten Zeitpunkt zu speichern. Dazu gibt es unterschiedliche Verfahren, je nachdem, welche virtuellen Datenträger zum Einsatz kommen.

Die beste Snapshot-Unterstützung genießen QCOW2-Images. Die Image-Datei setzt sich aus relativ kleinen Blöcken zusammen. Als Snapshot gilt ein Read-only-Abbild des gesamten Images. Änderungen nach der Durchführung des Snapshots werden in neuen Blöcken gespeichert, sodass das Image weiterhin verwendbar bleibt.

Es ist erlaubt, mehrere Snapshots zu erstellen. Allerdings beanspruchen Änderungen, die nach dem Snapshot gespeichert werden, zusätzlichen Speicherplatz. Somit liegen nun zwei oder mehr Versionen des Images vor; die Image-Datei kann deswegen größer werden als die beim Erzeugen definierte Maximalgröße!

Um einen Snapshot im laufenden Betrieb einer virtuellen Maschine zu erzeugen, verwenden Sie das Virsh-Kommando »snapshot-create« . Auch die weitere Administration der Snapshots erfolgt auf Kommandoebene (»snapshot-revert« , »snapshot-delete« , »snapshot-list« ). Der Virtual Maschine Manager unterstützt leider noch keine Snapshots.

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2021