logowanie i debugowanie maszyn wirtualnych qemu

12

Miałem qemumaszynę wirtualną, która kilkakrotnie uległa awarii, ponieważ na dysku twardym w hiperwizorze nie było już miejsca. Zastanawiam się, czy istnieje możliwość skonfigurowania rejestrowania / debugowania dla quemumaszyn wirtualnych. Próbowałem uruchomić maszynę wirtualną za pomocą -D /tmp/qemu-debug-logpolecenia:

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

.. ale to nawet nie utworzyło /tmp/qemu-debug-logpliku.

Ponadto qemuwydaje się , że nie zapisuje do messagesbufora pierścieniowego jądra ( dmesg). Jakie są najlepsze praktyki umożliwiające rejestrowanie qemumaszyn wirtualnych?

Jaskółka oknówka
źródło
Czy zamiast tego próbowałeś użyć funkcji libvirt?
Willian Paixao
Wolałbym pracować qemubezpośrednio, a nie za pomocą narzędzi, libvirtktóre z kolei powinny korzystać ze libvirt qemusterownika.
Martin

Odpowiedzi:

10

qemupolecenie akceptuje prosty -dprzełącznik, który tworzy plik dziennika o nazwie /tmp/qemu.log.

Możesz uzyskać dostęp do większej liczby opcji rejestrowania / debugowania za pomocą Monitora QEMU (np qemu -monitor stdio.).

Dmitrij Grigoriew
źródło
3

Każda opcja rejestrowania zapewniana przez QEMU będzie o wiele za niska dla tego, czego potrzebujesz: Twoim problemem nie jest to, że sprzęt wirtualny działa nieprawidłowo, a jedynie to, że oprogramowanie wewnątrz maszyny wirtualnej wymaga uwagi.

Pod tym względem maszyna wirtualna nie różni się od prawdziwej maszyny, a rozwiązanie jest takie samo. Twoje pytanie sugeruje, że na maszynie wirtualnej działa FreeBSD, więc powinieneś sprawdzić za pomocą rsyslogwypchnięcia dzienników do zewnętrznego serwera syslog (który może być twoim komputerem hosta) przez połączenie sieciowe.

(Nie znam się zbyt dobrze na BSD, więc nie jestem w 100% pewien, że rsyslogjest to właściwe lub jedyne rozwiązanie tutaj, ale to słowo kluczowe powinno zacząć.)

ams
źródło
0

Jeśli użyjesz tego -d <component>parametru podczas uruchamiania QEMU, umożliwi to debugowanie tego komponentu. Jest to przydatne, jeśli masz kod źródłowy QEMU i chcesz zobaczyć szczegółowe debugowania dla danego komponentu.

Na przykład przekazywanie -d cpu_resetumożliwi debugowanie CPU_LOG_RESET, które „pokaże stan CPU przed zresetowaniem CPU”. Zobacz qemu / util / log.c, aby uzyskać pełną listę opcji rejestrowania.

Domyślnie dzienniki są zapisywane w /tmp/qemu.log, ale za pomocą -D <logfile>parametru można określić inny plik dziennika .

seacoder
źródło