vagrant — несколько ядер на бродячем поставщике

Я использую vagrant для автоматизации машин в vmware.

до сих пор я создавал машины с 2 процессорами, и они отлично работали.

теперь мне нужно создать машину с 8 ядрами, и я получаю это сообщение об ошибке:

GenericVmConfigFault: The virtual machine cannot be powered on because the number of virtual CPUs is not a multiple of the number of cores per socket configured in the virtual machine.

Я знаю, что скорость должна быть 2 процессора на сокет, но как я могу настроить количество сокетов?

это пример кода:

mach.vm.provider :vsphere do |vsphere|  
                vsphere.host = 'lab6'                            
                vsphere.compute_resource_name = 'lab6'                       
                vsphere.template_name = 'RH74-Template'      
                vsphere.name = 'serv4'                                       
                vsphere.user = 'xxxxxxxx'                                    
                vsphere.password = 'xxxxxxxx'                            
                vsphere.insecure = true  
                vsphere.memory_mb = 51200
                vsphere.cpu_count = 8         
        end

Благодарность


person eran meiri    schedule 28.05.2018    source источник


Ответы (1)


Настройка ядер на сокет — это конфигурация VMX в VMWare. Предполагая, что у вас правильно установлен поставщик VMWare в Vagrant, в вашем блоке Vagrant.configure() вы можете передать конфигурации VMX в виде набора хэшей в поле. Настройте свои параметры там. Два интересующих вас ключа:

cpuid.coresPerSocket numvcpus

В графическом интерфейсе VMWare есть «количество процессоров» и «количество ядер на процессор». Два перемножаются вместе, чтобы получить «numvcpus», поэтому «numvcpus/cpuid.coresPerSocker» должно быть целым числом, что и является ошибкой, которую вы получаете. Упростите себе жизнь и просто установите для этого значения VMX значение 1 :)

РЕДАКТИРОВАТЬ, чтобы добавить пример:

config.vm.provider "vmware_desktop" do |v|
  v.vmx["cpuid.coresPerSocket"]  = "1"
  v.vmx["numvcpus"] = "4"
end

Это создаст коробку VMWare, которая действует как 4-ядерный процессор (с 1 ядром на сокет). Обратите внимание, что конфигурация VMX — это последний шаг в процессе в соответствии с документацией Vagrant, поэтому, если вы установите numvcpus, он переопределит конфигурации процессора vagrant даже в том же файле vagrant. coresPerSocket будет делать то же самое, поэтому вы должны использовать его вместо команд vagrant CPU, если у вас есть проблемы с ним.

Примечание. Согласно документации VMWare, конфигурации VMX явно НЕ обратно совместимы. Они без документов. Лучший способ определить нужный параметр, если приведенная выше документация не работает, — создать коробку вручную с помощью используемой вами версии VMWare, затем открыть созданный файл VMX и найти введенное вами значение. Все значения в файле VMX представляют собой ключ-значение и могут быть вставлены/изменены с помощью приведенного выше шаблона. Если вы хотите удалить значение, установите его значение «ноль» (без кавычек).

person Patrick    schedule 29.05.2018
comment
это не работает для меня. Вы можете указать немного больше с примером? - person eran meiri; 30.05.2018
comment
Определенно да. Я добавлю пример к основному ответу для других, кто найдет его позже :) - person Patrick; 03.06.2018