vagrant-vagrant Provisionier上的多核

vagrant-vagrant Provisionier上的多核,vagrant,vagrant-provision,Vagrant,Vagrant Provision,我正在使用vagrant实现vmware中机器的自动化 到目前为止,我已经创造了两个CPU的机器,它工作得很好 现在,我需要创建一台具有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

我正在使用vagrant实现vmware中机器的自动化

到目前为止,我已经创造了两个CPU的机器,它工作得很好

现在,我需要创建一台具有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个CPU,但是如何配置插槽的数量

这是代码示例:

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

谢谢

在VMWare中,为每个套接字配置核心是一种VMX配置。假设在Vagrant.configure()块中的Vagrant中正确安装了VMWare provider,则可以将VMX配置作为哈希集传入框中。在其中配置您的设置。您感兴趣的两个关键点是:

cpuid.coresPerSocket
numvCPU

在VMWare的GUI中,有“处理器数量”和“每个处理器的内核数量”。两者相乘得到“numvcpus”,因此“numvcpus/cpuid.coresPerSocker”必须是一个整数,这就是您得到的错误。让您的生活更轻松,只需将VMX值设置为1:)

编辑以添加示例:

config.vm.provider "vmware_desktop" do |v|
  v.vmx["cpuid.coresPerSocket"]  = "1"
  v.vmx["numvcpus"] = "4"
end
这将创建一个充当4核CPU(每个插槽1核)的VMWare机箱。请注意,根据Vagrant的文档,VMX配置是流程中的最后一步,因此如果设置NUMVCPU,它将覆盖Vagrant的CPU配置,即使在同一个Vagrant文件中也是如此。coresPerSocket也会这样做,因此如果您遇到问题,您应该使用它,而不是vagrant的CPU命令


注意:根据VMWare的文档,VMX配置明显不向后兼容。他们没有证件。如果上述文档不适用于您,确定所需设置的最佳方法是使用您正在使用的VMWare版本手工制作一个框,然后打开创建的VMX文件并找到您输入的值。VMX文件中的所有值都是键值,可以使用上述模式插入/修改。如果要删除某个值,请将该值设置为“nil”(不带引号)

这对我不起作用。你能用一个例子说明更多吗?是的,当然。我将把这个例子添加到主要答案中,供稍后找到它的其他人参考:)