1 votes

qemu Windows VM échoue si je change le niveau SMP

J'ai créé une VM Windows10 à l'aide de qemu il y a longtemps et je l'ai copiée sur différents serveurs et je l'ai utilisée avec différents systèmes d'exploitation. -smp (je le démarre en utilisant uniquement les arguments de la ligne de commande et j'utilise juste -smp 4 o -smp 8 ou autre) en fonction des capacités du serveur. En gros, j'utilise environ 75 % des cœurs de processeur disponibles sur le système, mais jamais plus de 10. Idem avec -mem . Je l'exécute avec -snapshot parce que je ne l'utilise que pour tester l'installation, etc.

Tous mes serveurs sont x86_64 et fonctionnent sous Ubuntu 20.04 (QEMU 4.2.1).

Cela a bien fonctionné, mais j'avais besoin de mettre à jour l'image Windows VM avec de nouveaux correctifs, etc. -snapshot évidemment), et ça a bien marché. J'ai ensuite copié l'image VM sur mes autres serveurs, mais hier soir, le test a échoué sur l'un d'entre eux.

Une nouvelle tentative montre que lorsque cette image démarre sur ce serveur, elle s'arrête pendant un long moment, puis lance un BSOD avec l'erreur "power driver state failure", puis elle redémarre finalement et tout semble aller bien après cela. Cependant, ce n'est pas bon car au moment où il se met enfin en marche, mes tests ont tous été interrompus, etc.

J'ai cherché cette erreur et je n'ai pas trouvé grand chose. J'ai donc décidé d'essayer des trucs au hasard :). La première chose que j'ai remarquée, c'est que si mon système "fonctionnel" et le système "non fonctionnel" utilisent tous deux la fonction -mem 8G le système de travail utilisé -smp 4 tandis que le système non fonctionnel utilisait -smp 10 le système qui ne fonctionne pas est un serveur plus grand avec plus d'unités centrales ; la fin de la période d'essai de l /proc/cpuinfo montre :

processor       : 19
vendor_id       : GenuineIntel
cpu family      : 6
model           : 79
model name      : Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz

J'ai donc essayé de redémarrer qemu sur le système "non fonctionnel" avec -smp 4 et voilà que ça a marché ! J'ai aussi essayé -smp 8 et ça a échoué aussi, mais -smp 6 travaillé.

Donc, c'est malheureux pour moi. Est-ce que quelqu'un a une idée de la raison pour laquelle cela pourrait se produire, pourquoi cette nouvelle version de l'image aurait ce problème alors que l'ancienne fonctionnait bien, s'il y a un moyen de le corriger à partir de l'image (changer le démarrage de QEMU sera ennuyeux car cela nécessite de changer beaucoup de scripts de test dans beaucoup de branches Git), ou d'autres conseils ?

Ma ligne de démarrage QEMU est :

qemu-system-x86_64 -enable-kvm -cpu host,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time \
    -vnc 0.0.0.0:5 -pidfile qemu-installer-vm.pid -daemonize \
    -device nec-usb-xhci -device usb-tablet \
    -device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 \
    -drive file=win10-x64.qcow2,if=none,id=drive-ide0-0-0,format=qcow2 -vga std \
    -net user,hostfwd=tcp::6350-:22 -net nic -name windows \
    -m 8G -smp 10 -snapshot

Si je change le -smp 10 a -smp 4 ça marche.

0voto

harrymc Points 394411

Ce n'est pas une solution, mais cela peut en indiquer une.

D'après un ancien rapport de bogue :
Bogue 689665 : Spécifier le nombre de cœurs de processeur échoue avec le modèle de processeur Nehalem Penryn et Conroe.

Cause : certains modèles de CPU définis sur qemu-kvm ont une valeur "level" faible (< 4). Cela inclut les modèles : Conroe, Penrym, Nehalem.

Je suppose que cela signifie que qemu-kvm a une limite sur le nombre de cœurs qui dépendent de de l'architecture virtuelle de la VM.

Je ne sais pas grand chose sur la façon dont votre VM est définie, et je n'utilise pas qemu, mais vous avez probablement atteint l'une de ses limites. Vous devrez peut-être expérimenter avec des versions de qemu et des paramètres de configuration pour obtenir un nombre de cœurs plus élevé.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X