QEMU Guest Agent installieren

294 Wörter 2 Minuten Lesezeit

Werden unter einem Linux-Host verschiedene KVM Gäste betrieben ist es unter Umständen notwendig Befehle vom Host direkt an den Gast zu senden, z.B. um den Gast ordnungsgemäß herunterzufahren oder um konsistentes Backup zu erhalten.

QEMU Guest Agent installieren

In der KVM muss lediglich der Guest Agent installiert werden, die restliche Konfiguration ist am Host (am dedizierten Server) notwendig. Der Agent ist in allen wesentlichen Linux-Distributionen inkludiert.

# archlinux
sudo pacman -S qemu-guest-agent

# debian, ubuntu
sudo apt install qemu-guest-agent

# fedora, redhat
sudo yum install qemu-guest-agent

Host System

Folgende Aktionen sind am Host-System durchzuführen. Der Platzhalter <kvm> ist durch den Namen der jeweiligen KVM zu ersetzen.

KVM stoppen

Die jeweilige KVM ist mittels ACPI shutdown zu stoppen:

sudo virsh shutdown --mode acpi <kvm>

KVM Konfiguration anpassen

In der KVM Konfiguration ist ein Kanal für dem QEMU Guest Agent einzufügen. Die Konfiguration der KVM Maschine kann mit folgendem Befehl bearbeitet werden:

sudo virsh edit <kvm>

Kanal einfügen

In der Sektion <devices> muss nun ein Kanal für den Guest Agent eingefügt werden:

    <channel type='unix'>
       <target type='virtio' name='org.qemu.guest_agent.0'/>
    </channel>

Bei libvirt-Versionen unter 1.0.6 muss zusätzlich noch der Agent-Pfad eingebunden werden:

    <channel type='unix'>
       <source mode='bind' path='/var/lib/libvirt/qemu/f16x86_64.agent'/>
       <target type='virtio' name='org.qemu.guest_agent.0'/>
    </channel>

KVM starten

Nun kann die virtuelle Maschine mit aktiviertem Agent neu gestartet werden:

sudo virsh start <kvm>

Agent testen

Um die ordnungsgemäße Funktion des Agents zu testen schicken wir einen Befehl an den Agent:

sudo virsh qemu-agent-command <kvm> '{"execute":"guest-info"}' | jq

Bekannte Fehler

Kein Agent installiert bzw. nicht gestartet

sudo virsh qemu-agent-command <kvm> '{"execute":"guest-info"}' | jq
error: Guest agent is not responding: QEMU guest agent is not connected

Agent aktiviert aber nicht konfiguriert

sudo virsh qemu-agent-command <kvm> '{"execute":"guest-info"}' | jq
error: argument unsupported: QEMU guest agent is not configured

Weiterführende Dokumentation