кажется, что я не могу передать несколько ядер / процессоров гостям KVM. Что бы я ни делал, гости сообщают только об одном процессоре / ядре.
Аппаратное обеспечение хоста: Xeon E5620 на материнской плате Supermicro. Программное обеспечение хоста: 64-разрядная версия Ubuntu 11.04 (Natty).
Я собрал собственное (более новое) ядро 2.6.37 для Natty (поскольку у меня были определенные проблемы с PCI passthrough, если я использовал стандартное ядро). Я не изменял другие части дистрибутива; в частности, я использую оригинальный пакет qemu-kvm, который был включен.
Поскольку virt-manager и связанные с ним инструменты не работали с непонятными сообщениями об ошибках при попытке выполнить самое первое базовое действие, я запускаю виртуальные машины вручную, а не использую какие-либо оболочки / менеджеры. Я использую команды, подобные этой:
/usr/bin/qemu-system-x86_64 -M pc -cpu host -smp cores=2,threads=1,sockets=1 -drive file=/dev/sda6,if=virtio,cache=none,index=0 -drive file=/dev/sdb,if=virtio,cache=none,index=1 -cdrom /dev/cdrom -pidfile ./qemu-garak.pid -boot c -k de -m 4096 -smp 1 -device pci-assign,host=01:05.0 -daemonize -usb -usbdevice "tablet" -name garak -net nic,vlan=0,model=virtio,macaddr=02:01:01:01:01:01 -net tap,vlan=0,ifname=virtnet1,script=/etc/qemu-ifup,downscript=/etc/qemu-ifup -vnc :1
Я также пробовал -cpu host и -smp cores = 1, threads = 1, сокеты = 2 (среди прочего).
Я использую несколько гостей Windows (Server 2003 R2 (32-разрядная версия), Server 2008 R2 (64-разрядная версия), Windows XP Pro (32-разрядная версия), Windows 7 Pro (64-разрядная версия) и гости Linux (Ubuntu 11.10 (64). Bit), Debian squeeze (32 Bit)), но все они сообщают только об одном процессоре / ядре, независимо от настроек -smp; кроме того, установка работает надежно.
Теперь мне действительно нужно дополнительное питание процессора в одном из гостей, поэтому мне интересно, что я делаю не так. Конечно, я читал об изменении HAL в Windows и пробовал несколько вещей (Uniprocessor HAL против Multiprocessor HAL), но безуспешно. Потратив целый день на решение проблемы, я теперь не знаю, что еще я мог сделать.
Кто-нибудь знает, что происходит не так? Есть ли какая-либо опция компиляции ядра (2.6.37), которая может быть ответственна за неспособность передать несколько ядер гостям? Должна ли версия qemu-kvm соответствовать версии ядра (при запуске гостей, как показано выше, предупреждающих сообщений нет)?
Большое спасибо,
Binarus
Обновление № 1:
Как и ожидалось, гостевая система Linux не показывает более одного процессора / ядра:
root@baldur:~# cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 44
model name : Intel(R) Xeon(R) CPU E5620 @ 2.40GHz
stepping : 2
cpu MHz : 2400.400
cache size : 4096 KB
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc up nopl pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 popcnt aes hypervisor lahf_lm
bogomips : 4800.80
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management:
root@baldur:~#
Этот вывод имеет был создан для гостя с, был запущен с -cpu host и -smp 2.
Что ж, позор мне:
В середине командной строки выше уже есть опция "-smp 1" Я этого не помнил и не видел во время тестов. При удалении он работает как ожидалось.