journalisation et débogage pour les machines virtuelles qemu

12

J'avais une qemumachine virtuelle qui s'est plantée plusieurs fois car le disque dur dans l'hyperviseur n'avait plus d'espace. Cela m'a fait me demander s'il existe une possibilité de mettre en place une journalisation / débogage pour quemules machines virtuelles. J'ai essayé de démarrer la machine virtuelle avec la -D /tmp/qemu-debug-logcommande:

qemu-system-i386 -D /tmp/qemu-debug-log -monitor pty -device e1000,netdev=tap0 -netdev tap,id=tap0 -m 512M -display vnc=:1 -drive file=FreeBSD10.2

..mais cela n'a même pas créé de /tmp/qemu-debug-logfichier.

De plus, qemune semble pas écrire dans messagesou le tampon d'anneau du noyau ( dmesg). Quelles sont les meilleures pratiques pour activer la journalisation qemudes machines virtuelles?

Martin
la source
Avez-vous essayé d'utiliser les fonctions de libvirt à la place?
Willian Paixao
Je préférerais travailler qemudirectement et non avec des outils qui utilisent libvirtà leur tour un libvirt qemupilote.
Martin

Réponses:

10

qemuLa commande accepte un simple -dcommutateur qui crée un fichier journal appelé /tmp/qemu.log.

Vous pouvez accéder à plus d'options de journalisation / débogage via QEMU Monitor (par exemple qemu -monitor stdio).

Dmitry Grigoryev
la source
3

Toute option de journalisation fournie par QEMU sera beaucoup trop faible pour ce dont vous avez besoin: votre problème n'est pas que le matériel virtuel se comporte mal, mais seulement que le logiciel à l'intérieur de la machine virtuelle a besoin d'attention.

À cet égard, une machine virtuelle n'est pas différente d'une machine réelle, et la solution est la même. Votre question suggère que la machine virtuelle exécute FreeBSD, vous devez donc vérifier à l'aide rsyslogde pousser les journaux vers un serveur syslog externe (qui pourrait être votre machine hôte) via la connexion réseau.

(Je ne connais pas très bien les BSD, donc je ne suis pas sûr à 100% que rsyslogc'est la bonne ou la seule solution ici, mais ce mot-clé devrait vous aider à démarrer.)

ams
la source
0

Si vous utilisez le -d <component>paramètre lors du démarrage de QEMU, il activera le débogage pour ce composant. Ceci est utile si vous avez le code source QEMU et que vous souhaitez voir des débogages détaillés pour un composant donné.

Par exemple, le passage -d cpu_resetactivera le débogage CPU_LOG_RESET qui "montrera l'état du CPU avant la réinitialisation du CPU". Voir qemu / util / log.c pour une liste complète des options de journalisation.

Par défaut, les journaux sont écrits dans /tmp/qemu.log, mais vous pouvez spécifier un fichier journal différent avec le -D <logfile>paramètre.

codeur
la source