parece que no puedo pasar múltiples núcleos/CPU a invitados KVM. Haga lo que haga, los invitados solo informan una CPU/núcleo.
Hardware host:Xeon E5620 en una placa base Supermicro
Software host:Ubuntu 11.04 (Natty) de 64 bits
Compilé mi propio kernel (más nuevo) 2.6.37 para Natty (ya que tenía ciertos problemas con el paso de PCI si usaba el kernel estándar). No alteré las otras partes de la distribución; en particular, estoy usando el paquete qemu-kvm original que estaba incluido.
Dado que virt-manager y las herramientas relacionadas fallaban con mensajes de error ininteligibles al intentar la primera acción básica, estoy iniciando las máquinas virtuales a mano en lugar de usar contenedores/administradores. Estoy usando comandos como este:
/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
También probé -cpu host y -smp cores=1,threads=1,sockets=2 (entre otras cosas).
Estoy ejecutando varios invitados de Windows (Server 2003 R2 (32 bits), Server 2008 R2 (64 bits), Windows XP Pro (32 bits), Windows 7 Pro (64 bits)) e invitados de Linux (Ubuntu 11.10 (64 bits), Debian squeeze (32 bits)), pero todos estos solo informan un procesador/núcleo, independientemente de la configuración -smp; además de eso, la configuración funciona de manera confiable.
Ahora, realmente necesito potencia de CPU adicional en uno de los invitados, por lo que me pregunto qué estoy haciendo mal. Por supuesto, he leído acerca de cómo cambiar la HAL dentro de Windows y probé varias cosas (HAL monoprocesador versus HAL multiprocesador), pero sin éxito. Después de haber dedicado un día entero a tratar de resolver el problema, ahora no sé qué más podría hacer.
¿Alguien tiene alguna idea de lo que está yendo mal? ¿Hay alguna opción de compilación del kernel (2.6.37) que pueda ser responsable de no poder pasar múltiples núcleos a los invitados? ¿La versión de qemu-kvm tiene que ajustarse a la versión del kernel (no hay mensajes de advertencia cuando inicio los invitados como se muestra arriba)?
Muchas gracias,
Binarus
Actualización n.º 1:
Como era de esperar, un invitado de Linux tampoco muestra más de una CPU/núcleo:
[email protected]:~# 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:
[email protected]:~#
Esta salida se produjo en un invitado que se inició con -cpu host y -smp 2.
Relacionado:¿Gitkraken no se instalará?Respuesta aceptada:
Pues entonces, me avergüenzo:
En el medio de la línea de comando anterior, ya hay una opción "-smp 1". No recordaba esto, y no lo he visto durante mis pruebas. Al quitarlo, funciona como se esperaba.