LINUX.ORG.RU
решено ФорумAdmin

Как найти причину зависания виртуальной машины?

 


0

1

Периодически зависают виртуальные машины (в логах не могу найти объяснения). При этом хостовая ОС работает нормально.
Подозреваю, что связано с перегревом ЦП, но аргументов нет.


Пример команды запуска:

/usr/bin/kvm -S -M pc-0.12 -enable-kvm -m 1536 -smp 2,sockets=2,cores=1,threads=1 -name voip -uuid eabf2b06-bcdc-1d99-ea93-d6398354b64a -nodefaults -chardev socket,id=monitor,path=/var/lib/libvirt/qemu/voip.monitor,server,nowait -mon chardev=monitor,mode=readline -rtc base=utc -boot cd -drive file=/home/sabo/.virtual_drives/voip.img,if=none,id=drive-virtio-disk0,boot=on,format=qcow2 -device virtio-blk-pci,bus=pci.0,addr=0x5,drive=drive-virtio-disk0,id=virtio-disk0 -drive if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -device virtio-net-pci,vlan=0,id=net0,mac=52:54:00:07:09:98,bus=pci.0,addr=0x3 -net tap,fd=35,vlan=0,name=hostnet0 -chardev pty,id=serial0 -device isa-serial,chardev=serial0 -usb -device usb-tablet,id=input0 -vnc 127.0.0.1:0 -vga vmware -device AC97,id=sound0,bus=pci.0,addr=0x4 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6

Хостовая машина:
> uname -a
Linux sabo-laptop-hp 3.2.0-0.bpo.2-rt-amd64 #1 SMP PREEMPT RT Fri Jun 29 21:35:24 UTC 2012 x86_64 GNU/Linux

Гостевая:
> uname -a
Linux voip 2.6.32-5-amd64 #1 SMP Sun Sep 23 10:07:46 UTC 2012 x86_64 GNU/Linux

★★

/usr/bin/kvm -S -M pc-0.12 -enable-kvm 
-m 1536 
-smp 2,sockets=2,cores=1,threads=1 
-name voip -uuid eabf2b06-bcdc-1d99-ea93-d6398354b64a 
-nodefaults 
-chardev socket,id=monitor,path=/var/lib/libvirt/qemu/voip.monitor,server,nowait 
-mon chardev=monitor,mode=readline 
-rtc base=utc 
-boot cd 
-drive file=/home/sabo/.virtual_drives/voip.img,if=none,id=drive-virtio-disk0,boot=on,format=qcow2 
-device virtio-blk-pci,bus=pci.0,addr=0x5,drive=drive-virtio-disk0,id=virtio-disk0 
-drive if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw 
-device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 
-device virtio-net-pci,vlan=0,id=net0,mac=52:54:00:07:09:98,bus=pci.0,addr=0x3 
-net tap,fd=35,vlan=0,name=hostnet0 
-chardev pty,id=serial0 
-device isa-serial,chardev=serial0 
-usb -device usb-tablet,id=input0 
-vnc 127.0.0.1:0 
-vga vmware 
-device AC97,id=sound0,bus=pci.0,addr=0x4 
-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6

A теперь по пунктам: 1. зачем qcow2? там есть снепшоты?

2. /home/sabo/.virtual_drives примонтирован с defaults?

3. почему -vga vmware ?

4. версии в студию

Если совсем ничего не помогает, я бы посоветовал включить в ВМ sysrq, и прибить зависшую ВМ передав Alt-SysRq-c через qemu-monitor. Eсли еще и netconsole поднять, то можно будет анализировать дамп удаленно

dyasny ★★★★★
()
Ответ на: комментарий от kerneliq

И что в логах машин? Выложи сюда.

Какие именно логи и в какой момент?

Вот, например, конец kern.log перед предыдущим падением.

Dec 8 01:12:58 voip kernel: [ 2.564122] intel8x0: measured clock 80223 rejected
Dec 8 01:12:58 voip kernel: [ 2.564124] intel8x0: clocking to 48000
Dec 8 01:12:58 voip kernel: [ 2.730566] loop: module loaded
Dec 8 01:12:58 voip kernel: [ 2.846609] Adding 1998840k swap on /dev/mapper/drive1-swap. Priority:-1 extents:1 across:1998840k
Dec 8 01:12:58 voip kernel: [ 4.078603] EXT4-fs (vda1): mounted filesystem with ordered data mode
Dec 8 01:12:58 voip kernel: [ 4.098448] EXT4-fs (dm-2): mounted filesystem with ordered data mode
Dec 8 01:12:58 voip kernel: [ 4.106480] EXT4-fs (dm-6): mounted filesystem with ordered data mode
Dec 8 01:12:58 voip kernel: [ 4.110997] EXT4-fs (dm-3): mounted filesystem with ordered data mode
Dec 8 01:12:58 voip kernel: [ 4.124050] EXT4-fs (dm-4): mounted filesystem with ordered data mode
Dec 8 01:12:58 voip kernel: [ 4.136278] EXT4-fs (dm-5): mounted filesystem with ordered data mode
Dec 8 01:13:10 voip kernel: [ 16.032088] eth0: no IPv6 routers present


syslog:

Dec 8 01:13:04 voip NetworkManager[1222]: <info> Activation (eth0) Stage 4 of 5 (IP4 Configure Get) started...
Dec 8 01:13:04 voip NetworkManager[1222]: <info> address 192.168.122.8
Dec 8 01:13:04 voip NetworkManager[1222]: <info> prefix 24 (255.255.255.0)
Dec 8 01:13:04 voip NetworkManager[1222]: <info> gateway 192.168.122.1
Dec 8 01:13:04 voip NetworkManager[1222]: <info> nameserver '192.168.122.1'
Dec 8 01:13:04 voip NetworkManager[1222]: <info> Activation (eth0) Stage 5 of 5 (IP Configure Commit) scheduled...
Dec 8 01:13:04 voip NetworkManager[1222]: <info> Activation (eth0) Stage 4 of 5 (IP4 Configure Get) complete.
Dec 8 01:13:04 voip NetworkManager[1222]: <info> Activation (eth0) Stage 5 of 5 (IP Configure Commit) started...
Dec 8 01:13:04 voip dhclient: bound to 192.168.122.8 — renewal in 1520 seconds.
Dec 8 01:13:04 voip kdm_greet[1689]: Cannot load /usr/share/kde4/apps/kdm/faces/.default.face: Нет такого файла или каталога
Dec 8 01:13:05 voip NetworkManager[1222]: <info> (eth0): device state change: 7 -> 8 (reason 0)
Dec 8 01:13:05 voip NetworkManager[1222]: <info> Policy set 'Auto eth0' (eth0) as default for IPv4 routing and DNS.
Dec 8 01:13:05 voip NetworkManager[1222]: <info> Activation (eth0) successful, device activated.
Dec 8 01:13:05 voip NetworkManager[1222]: <info> Activation (eth0) Stage 5 of 5 (IP Configure Commit) complete.
Dec 8 01:13:10 voip kernel: [ 16.032088] eth0: no IPv6 routers present
Dec 8 01:17:01 voip /USR/SBIN/CRON[1929]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Dec 8 01:38:24 voip dhclient: DHCPREQUEST on eth0 to 192.168.122.1 port 67
Dec 8 01:38:24 voip dhclient: DHCPACK from 192.168.122.1
Dec 8 01:38:24 voip dhclient: bound to 192.168.122.8 — renewal in 1403 seconds.
Dec 8 01:38:24 voip NetworkManager[1222]: <info> (eth0): DHCPv4 state changed bound -> renew
Dec 8 01:38:24 voip NetworkManager[1222]: <info> address 192.168.122.8
Dec 8 01:38:24 voip NetworkManager[1222]: <info> prefix 24 (255.255.255.0)
Dec 8 01:38:24 voip NetworkManager[1222]: <info> gateway 192.168.122.1
Dec 8 01:38:24 voip NetworkManager[1222]: <info> nameserver '192.168.122.1'
Dec 8 01:39:01 voip /USR/SBIN/CRON[1978]: (root) CMD ( [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -delete)

SaBo ★★
() автор топика
Ответ на: комментарий от dyasny

1. Выбирал из википедии:

Qcow2 — это формат дискового образа программы QEMU. Название является аббревиатурой названия формата Copy-On-Write (копирование при записи).
QEMU может использовать базовый образ, который доступен только для чтения, а запись производить в образ qcow2. Среди поддерживаемых форматов QEMU, этот — наиболее универсальный. Он удобен для использования маленьких образов в формате файловых систем не поддерживаемых операционной системой, а также образов, с поддержкой шифрования AES, сжатием, основанным на Zlib и поддержкой множественных снапшотов виртуальных машин.

А что вы посоветуете?

2. /dev/mapper/debian--x64-home_crypt /home ext4 defaults 0 2

/dev/mapper/debian--x64-home_crypt on /home type ext4 (rw)

3. По-моему, стояла по умолчанию в Virtual Machine Manager

4. > kvm --version
QEMU PC emulator version 0.12.5 (qemu-kvm-0.12.5), Copyright (c) 2003-2008 Fabrice Bellard

Virtual Machine Manager 0.8.4

Версии чего ещё нужно указать?

Если совсем ничего не помогает, я бы посоветовал включить в ВМ sysrq, и прибить зависшую ВМ передав Alt-SysRq-c через qemu-monitor. Eсли еще и netconsole поднять, то можно будет анализировать дамп удаленно

Ок, попробую

SaBo ★★
() автор топика
Ответ на: комментарий от SaBo

1. если нет снепшотов, то надо использовать raw - пошустрее будет. ну и в крайнем случае, с raw можно снять qcow2 snapshot

2. home еще и закриптован? мда... noatime,nodiratime как минимум не помешают

3. qxl если используется спайс. cirrus если vnc

4. ok

5. kvm_trace на момент зависания

dyasny ★★★★★
()
Ответ на: комментарий от dyasny

Вроде raw в отличии от qcow2 сразу все отведенное место съедает? Конечно так немного быстрее будет работать, но зачем лишнее место терять?

kerneliq ★★★★★
()
Ответ на: комментарий от kerneliq

в этом главный прирост скорости - увеличение имиджа требует ресурсов процессора и диска. thin provisioning не рекомендуется для io bound нагрузок ни одним из вендоров виртуализации. В RHEV это немного оптимизировано, и шаг роста диска там не 4кб а 512мб, так что расширение происходит намного реже, но оно все равно не «дешевое»

dyasny ★★★★★
()
Ответ на: комментарий от dyasny

3. qxl если используется спайс. cirrus если vnc

Поставил cirrus (так как использую vnc) за несколько дней проблем с зависанием не наблюдал.
Спасибо!

SaBo ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.