J'avais une qemu
machine 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 quemu
les machines virtuelles. J'ai essayé de démarrer la machine virtuelle avec la -D /tmp/qemu-debug-log
commande:
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-log
fichier.
De plus, qemu
ne semble pas écrire dans messages
ou le tampon d'anneau du noyau ( dmesg
). Quelles sont les meilleures pratiques pour activer la journalisation qemu
des machines virtuelles?
qemu
directement et non avec des outils qui utilisentlibvirt
à leur tour unlibvirt
qemu
pilote.Réponses:
qemu
La commande accepte un simple-d
commutateur 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
).la source
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
rsyslog
de 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
rsyslog
c'est la bonne ou la seule solution ici, mais ce mot-clé devrait vous aider à démarrer.)la source
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_reset
activera 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.la source