Optimale Disk-Konfiguration für Linux-KVM

© © Viktoriia Lesnichenko, 123RF

Abgerundet

In KVM gibt es viele Wege, um virtuelle Datenträger im Hostsystem abzubilden. Die Wahl des passenden Datenträgerformats hat nicht nur einen Einfluss auf die Geschwindigkeit von I/O-Operationen, sondern auch auf Snapshots und Backups.
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)

Die meisten Virtualisierungssysteme präsentieren dem Gast seine virtuellen Festplatten als gewöhnliche IDE-, SCSI- oder SATA-Festplatten. Damit sieht es für den Gast so aus, als hätte er es mit einer ganz normalen Festplatte zu tun. Tatsächlich muss aber das Virtualisierungssystem für jeden Datenzugriff den IDE-, SCSI- oder SATA-Bus emulieren. In der virtuellen Maschine kümmert sich ein entsprechender Treiber um die Datenzugriffe.

Virtuelle Festplattenadapter

KVM [1] beziehungsweise die zugrundeliegenden Qemu-Komponenten emulieren standardmäßig einen IDE-Bus. Das klingt altmodisch, hat aber den Vorteil, dass nahezu jedes Gastsystem damit zurechtkommt – egal, ob in der virtuellen Maschine Linux, Windows, BSD oder ein anderes Betriebssystem läuft.

Wenn in der virtuellen Maschine Linux ausgeführt wird, wie dies im KVM-Server-Alltag häufig der Fall ist, gibt es aber einen wesentlich effizienteren Weg, um auf Datenträger zuzugreifen: den Virtio-Block-Treiber. Dabei handelt es sich um einen schon seit Version 2.6.25 in den Linux-Kernel integrierten Treiber, der speziell für Virtualisierungssysteme (KVM, Xen und so weiter) entwickelt wurde. Mit dem Virtio-Treiber erspart sich KVM die Emulation eines Festplattenbussystems (zum Beispiel IDE); gleichzeitig vereinfacht sich der Datenträgerzugriff auch im Gast.

Beachten Sie aber, dass KVM den Virtio-Treiber nur verwendet, wenn bekannt ist, dass der Gast Virtio-kompatibel ist. Deswegen ist es beim Einrichten der virtuellen Maschine im Virtual Machine Manager entscheidend, dass Sie im zweiten Schritt des Installationsassistenten das Betriebssystem des Gasts korrekt angeben.

Der Virtio-Treiber wird auch als paravirtualisierter Treiber bezeichnet. Paravirtualisierung bedeutet, dass der Gast bei der Virtualisierung mithilft. Der Kernel aktueller Linux-Gäste erkennt automatisch, dass das Virtualisierungssystem Virtio nutzt. Es sind daher im Gast keine besonderen Konfigurationsarbeiten erforderlich. Die einzige Eigenheit besteht darin, dass die Device-Namen der virtuellen Festplatten »/dev/vda« , »/dev/vdb« und so weiter lauten (anstelle der sonst üblichen Device-Namen »/dev/sda« , »/dev/sdb« ).

Der Einsatz des Virtio-Treibers ist erfreulicherweise auch für Windows-Gäste möglich. Dort ist die Vorgehensweise aber ein wenig komplizierter: Bei der anfänglichen Installation verwendet KVM den IDE-Treiber. Sobald Windows in der virtuellen Maschine läuft, installieren Sie in Windows die Virtio-Treiber. Dazu binden Sie in der virtuellen Maschine eine ISO-Datei mit den Treibern als CD-Laufwerk ein. Ein ISO-Image mit von Red Hat signierten Windows-Treibern finden Sie unter [2].

Nach der Installation der Treiber fahren Sie Windows herunter und verändern dann im Virtual Machine Manager das Bussystem des Datenträgers von IDE auf Virtio (Abbildung 1). Ab dem nächsten Neustart nutzt dann auch Windows den Virtio-Treiber.

Abbildung 1: Virtio-Treiber unter Windows.

Image-Formate

Wenn Sie im Virtual Machine Manager einen neuen Gast einrichten, wird dessen Festplatte standardmäßig in einer RAW-Image-Datei im Verzeichnis »/var/lib/libvirt/images« gespeichert (Abbildung 2). Das RAW-Format ist gleichzeitig das einfachste und effizienteste Image-Format. Der Inhalt der virtuellen Festplatte wird einfach unverändert in der Image-Datei abgebildet. Für erste Experimente ist diese Grundeinstellung vollkommen ausreichend. Etwas Hintergrundwissen über die zur Auswahl stehenden Optionen hilft aber dabei, die Parameter für die gewünschte Anwendung zu optimieren.

Abbildung 2: Defaulteinstellungen eines Datenträgers im Virtual Machine Manager.

RAW-Dateien bestehen anfänglich aus lauter 0-Bytes. Alle gängigen Linux-Dateisysteme erkennen das und betrachten die Datei als 'sparse file'. Deswegen ist der tatsächliche Platzbedarf im Dateisystem des Host-Rechners vorerst sehr gering. Erst wenn Daten in der virtuellen Festplatte gespeichert werden, belegt die Image-Datei im Dateisystem des Host-Rechners zunehmend immer mehr Platz, bis schließlich die beim Einrichten vorgesehene Maximalgröße erreicht wird.

comments powered by Disqus

Artikel der Woche

Setup eines Kubernetes-Clusters mit Kops

Vor allem für Testinstallationen von Kubernetes gibt es einige Lösungen wie Kubeadm und Minikube. Für das Setup eines Kubernetes-Clusters in Cloud-Umgebungen hat sich Kops als Mittel der Wahl bewährt. Wir beschreiben seine Fähigkeiten und geben eine Anleitung für den praktischen Einsatz. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Container

Wie setzen Sie Container ein?

  • Gar nicht
  • Docker standalone
  • Docker mit Kubernetes
  • Docker mit Swarm
  • Docker mit anderem Management
  • LXC/LXD
  • Rocket
  • CRI-O auf Kubernetes
  • Container auf vSphere
  • Andere (siehe Kommentare auf der Ergebnisseite)

Google+

Ausgabe /2018

Microsite