web-dev-qa-db-fra.com

Comment créer un VM dans Vagrant avec VirtualBox avec deux processeurs?

Sous Windows 7 64 bits, essayez de démarrer un VM (Ubuntu 32 bits). Je ne parviens pas à obtenir mon VM pour afficher deux cœurs malgré l'ajout du modify vm commande dans mon Vagrantfile. Ma version de Vagrant est 1.2.2.

# -*- mode: Ruby -*-
# vi: set ft=Ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "precise32"
  config.vm.box_url = "http://files.vagrantup.com/precise32.box"

  config.vm.provider :virtualbox do |vb|
    vb.customize ["modifyvm", :id, "--memory", "2048"]
    vb.customize ["modifyvm", :id, "--cpus", "2"]   
  end  
end

Avec ce Vagrantfile, je publie le vagrant up commande. Puis je publie vagrant ssh suivi de lscpu qui donne:

Architecture:          i686
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                1
On-line CPU(s) list:   0
Thread(s) per core:    1
Core(s) per socket:    1
Socket(s):             1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 58
Stepping:              9
CPU MHz:               2565.513
BogoMIPS:              5131.02
L1d cache:             32K
L1d cache:             32K
L2d cache:             6144K

Je pense que les processeurs devraient afficher 2, donc mon VM ne dispose que d’un processeur pour le moment. Comment puis-je faire apparaître deux processeurs lorsque je lance lscpu?

68
nikhil

Ajouter vb.customize ["modifyvm", :id, "--ioapic", "on"] au config.vm.provider bloquer dans votre Vagrantfile.

En regardant le VirtualBox documentation il mentionne:

"Remarque L'activation de l'APIC d'E/S est requise pour les systèmes d'exploitation invités 64 bits, notamment Windows Vista; elle est également requise si vous souhaitez utiliser plusieurs processeurs virtuels sur une machine virtuelle."

78
nikhil

Si vous exécutez vagrant avec Oracle Virtualbox, le problème le plus courant concerne Hyper-V sous Windows 7, 8 ou 10. Cela vous limitera à 32 bits et à un processeur.

Exécutez ou recherchez "Fonctionnalités Windows" et sélectionnez "Activer ou désactiver des fonctionnalités Windows".

Dans les cases à cocher, assurez-vous qu'Hyper-V est désactivé. Vous ne pouvez pas activer VT-x pour Virtualbox avec Microsoft Hyper-V le piégeant.

Ensuite, vous pouvez rendre votre démarrage Vagrantfile très convivial avec:

  config.vm.provider "virtualbox" do |vb|
    vb.memory = "2404"
    vb.cpus = "2"
  end

En supposant que vous souhaitiez faire fonctionner deux cœurs et un peu plus de 2 Go de mémoire

ps - n'oubliez pas d'ajouter votre redirection de port. Pour PHPStorm (xdebug, mysql et web), j'utilise:

  config.vm.network "forwarded_port", guest: 80, Host: 8080
  config.vm.network "forwarded_port", guest: 3306, Host: 3306
  config.vm.network "forwarded_port", guest: 9000, Host: 9000
25
brianlmerritt

Il semble que vous n'ayez pas mentionné le fournisseur que vous utilisez. Depuis Vagrant 1.7, de nombreux fournisseurs VM (tels que VirtualBox, HyperV) prennent en charge la configuration suivante dans votre fichier Vagrant:

config.vm.provider "virtualbox" do |v|
  v.memory = 1024
  v.cpus = 2
end

Vérifiez le fournisseur spécifique que vous utilisez dans le documentation vagabonde .

6
mehmet