ведение журнала и отладка для виртуальных машин qemu

12

У меня была qemuвиртуальная машина, которая несколько раз выходила из строя, потому что на жестком диске в гипервизоре не осталось места. Это заставило меня задуматься, есть ли возможность настроить логирование / отладку для quemuвиртуальных машин. Я попытался запустить виртуальную машину с -D /tmp/qemu-debug-logкомандой:

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

..но это даже не создать /tmp/qemu-debug-logфайл.

Кроме того, qemuкажется, что запись в messagesядро или кольцевой буфер не выполняется ( dmesg). Каковы оптимальные методы включения ведения журнала для qemuвиртуальных машин?

Мартин
источник
Вы пытались использовать вместо этого функции libvirt?
Виллиан Пайшао
Я бы предпочел работать qemuнапрямую, а не с помощью инструментов, которые libvirtиспользуют libvirt qemuдрайверы.
Мартин

Ответы:

10

qemuКоманда принимает простой -dпереключатель, который создает файл журнала с именем /tmp/qemu.log.

Вы можете получить доступ к дополнительным параметрам ведения журнала / отладки через QEMU Monitor (например qemu -monitor stdio).

Дмитрий Григорьев
источник
3

Любая опция ведения журнала, предоставляемая QEMU, будет слишком низкоуровневой для того, что вам нужно: ваша проблема не в том, что виртуальное оборудование работает неправильно, а в том, что программное обеспечение внутри виртуальной машины требует внимания.

В этом отношении виртуальная машина ничем не отличается от реальной машины, и решение остается тем же. Ваш вопрос говорит о том, что виртуальная машина работает под управлением FreeBSD, поэтому вы должны проверить использование rsyslogпроталкивания журналов на внешний сервер системного журнала (который может быть вашим хостом) через сетевое соединение.

(Я не очень знаком с BSD, поэтому я не уверен на 100%, что rsyslogэто правильное или единственное решение, но это ключевое слово должно помочь вам начать.)

военно-картографическая служба
источник
0

Если вы используете -d <component>параметр при запуске QEMU, он включит отладку для этого компонента. Это полезно, если у вас есть исходный код QEMU и вы хотите увидеть подробные отладки для данного компонента.

Например, передача -d cpu_resetвключит отладку CPU_LOG_RESET, которая "покажет состояние процессора до перезагрузки процессора". Смотрите qemu / util / log.c для полного списка параметров ведения журнала.

По умолчанию журналы записываются в /tmp/qemu.log, но вы можете указать другой файл журнала с -D <logfile>параметром.

seacoder
источник