registro y depuración para máquinas virtuales qemu

12

Tenía una qemumáquina virtual que se bloqueó varias veces porque HDD en el hipervisor no tenía espacio libre. Esto me hizo preguntarme si existe la posibilidad de configurar un registro / depuración para quemumáquinas virtuales. Traté de iniciar la máquina virtual con el -D /tmp/qemu-debug-logcomando:

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

..pero esto ni siquiera creó un /tmp/qemu-debug-logarchivo.

Además, qemuno parece escribir en el messageskernel ring buffer ( dmesg). ¿Cuáles son las mejores prácticas para habilitar el registro para qemumáquinas virtuales?

Martín
fuente
¿Has intentado usar las funciones de libvirt en su lugar?
Willian Paixao
Preferiría trabajar qemudirectamente y no a través de herramientas que usan, libvirtque a su vez deberían usar el libvirt qemucontrolador.
Martin

Respuestas:

10

qemuEl comando acepta un -dinterruptor simple que crea un archivo de registro llamado /tmp/qemu.log.

Puede acceder a más opciones de registro / depuración a través de QEMU Monitor (por ejemplo qemu -monitor stdio).

Dmitry Grigoryev
fuente
3

Cualquier opción de registro proporcionada por QEMU tendrá un nivel demasiado bajo para lo que necesita: su problema no es que el hardware virtual se esté portando mal, solo que el software dentro de la VM necesita atención.

A este respecto, una máquina virtual no es diferente a una máquina real, y la solución es la misma. Su pregunta sugiere que la máquina virtual está ejecutando FreeBSD, por lo que debe verificar el uso rsyslogpara enviar los registros a un servidor syslog externo (que podría ser su máquina host) a través de la conexión de red.

(No estoy muy familiarizado con los BSD, por lo que no estoy 100% seguro de que rsyslogsea ​​la solución correcta o única aquí, pero esa palabra clave debería ayudarlo a comenzar).

ams
fuente
0

Si utiliza el -d <component>parámetro al iniciar QEMU, habilitará la depuración para ese componente. Esto es útil si tiene el código fuente QEMU y desea ver los debugs detallados para un componente dado.

Por ejemplo, pasar -d cpu_resethabilitará la depuración CPU_LOG_RESET que "mostrará el estado de la CPU antes de que se reinicie la CPU". Consulte qemu / util / log.c para obtener una lista completa de las opciones de registro.

De forma predeterminada, los registros se escriben en /tmp/qemu.log, pero puede especificar un archivo de registro diferente con el -D <logfile>parámetro.

seacoder
fuente