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

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 /2022