Registrando e Depurando para Máquinas Virtuais qemu

12

Eu tinha uma qemumáquina virtual que travou várias vezes porque o HDD no hipervisor não tinha mais espaço. Isso me fez pensar que existe a possibilidade de configurar um registro / depuração para quemumáquinas virtuais. Eu tentei iniciar a máquina virtual com o -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

..mas isso nem sequer criou um /tmp/qemu-debug-logarquivo.

Além disso, qemunão parece gravar no messagesbuffer de anel do kernel ( dmesg). Quais são as práticas recomendadas para habilitar o log para qemumáquinas virtuais?

Martin
fonte
Você já tentou usar as funções da libvirt?
Willian Paixao
Eu preferiria trabalhar qemudiretamente e não através de ferramentas que usam as libvirtquais, por sua vez, devem usar o libvirt qemudriver.
Martin

Respostas:

10

qemuO comando aceita uma -dopção simples que cria um arquivo de log chamado /tmp/qemu.log.

Você pode acessar mais opções de registro / depuração via QEMU Monitor (por exemplo qemu -monitor stdio).

Dmitry Grigoryev
fonte
3

Qualquer opção de registro fornecida pelo QEMU terá um nível muito baixo para o que você precisa: seu problema não é que o hardware virtual esteja se comportando mal, apenas que o software dentro da VM precisa de atenção.

Nesse aspecto, uma VM não é diferente de uma máquina real e a solução é a mesma. Sua pergunta sugere que a VM está executando o FreeBSD; portanto, você deve rsyslogfazer o checkout usando para enviar os logs para um servidor syslog externo (que pode ser sua máquina host) por meio da conexão de rede.

(Eu não estou muito familiarizado com os BSDs, então não tenho 100% de certeza de que rsyslogé a solução certa ou única aqui, mas essa palavra-chave deve ajudá-lo a começar.)

ams
fonte
0

Se você usar o -d <component>parâmetro ao iniciar o QEMU, ele habilitará a depuração para esse componente. Isso é útil se você tiver o código fonte QEMU e desejar ver depurações detalhadas para um determinado componente.

Por exemplo, a passagem -d cpu_resethabilitará a depuração CPU_LOG_RESET, que "mostrará o estado da CPU antes da redefinição da CPU". Veja qemu / util / log.c para obter uma lista completa das opções de log.

Por padrão, os logs são gravados em /tmp/qemu.log, mas você pode especificar um arquivo de log diferente com o -D <logfile>parâmetro

codificador do mar
fonte