我要创建7个服务器,每个服务器有2个磁盘。这是流浪文件。这是我对多机器环境的第一次配置。因此,我没有从头开始创建环境的经验。
这是我得到的错误
Command: ["storagectl", "cc27c05a-63da-4e02-ab73-86843032e387", "--name", "SATA Controller", "--add", "sata"]
Stderr: VBoxManage: error: Too many storage controllers of this type
VBoxManage: error: Details: code NS_ERROR_INVALID_ARG (0x80070057), component StorageController, interface IStorageController, callee nsISupports
VBoxManage: error: Context: "AddStorageController(Bstr(pszCtl).raw(), StorageBus_SATA, ctl.asOutParam())" at line 1044 of file VBoxManageStorageController.cpp
Vagrafile
Vagrant.configure(2) do |config|
config.vm.box = "ubuntu/trusty64"
config.vm.provider "virtualbox" do |vb|
vb.customize ["modifyvm", :id, "--memory", "2048", "--cpus", "1"]
vb.customize ["storagectl", :id, "--name", "SATA Controller", "--add", "sata"]
end
config.vm.define "machine1" do |machine1|
machine1.vm.hostname = "machine1"
machine1.vm.provider "virtualbox" do |vb|
vb.customize ["createhd", "--filename", "machine1_disk0", "--size", 4096]
vb.customize ["createhd", "--filename", "machine1_disk1", "--size", 4096]
vb.customize ["storageattach", :id, "--storagectl", "SATA Controller", "--port", 1, "--type", "hdd", "--medium", "machine1_disk0.vdi"]
vb.customize ["storageattach", :id, "--storagectl", "SATA Controller", "--port", 2, "--type", "hdd", "--medium", "machine1_disk1.vdi"]
end
machine1.vm.network "private_network", ip: "192.168.10.10"
machine1.vm.network "private_network", ip: "192.168.10.15"
end
config.vm.define "machine2" do |machine2|
machine2.vm.hostname = "machine2"
machine2.vm.provider "virtualbox" do |vb|
vb.customize ["createhd", "--filename", "machine2_disk0", "--size", 4096]
vb.customize ["createhd", "--filename", "machine2_disk1", "--size", 4096]
vb.customize ["storageattach", :id, "--storagectl", "SATA Controller", "--port", 1, "--type", "hdd", "--medium", "machine2_disk0.vdi"]
vb.customize ["storageattach", :id, "--storagectl", "SATA Controller", "--port", 2, "--type", "hdd", "--medium", "machine2_disk1.vdi"]
end
machine2.vm.network "private_network", ip: "192.168.10.20"
machine2.vm.network "private_network", ip: "192.168.10.25"
end
config.vm.define "machine3" do |machine3|
machine3.vm.hostname = "machine3"
machine3.vm.provider "virtualbox" do |vb|
vb.customize ["createhd", "--filename", "machine3_disk0", "--size", 4096]
vb.customize ["createhd", "--filename", "machine3_disk1", "--size", 4096]
vb.customize ["storageattach", :id, "--storagectl", "SATA Controller", "--port", 1, "--type", "hdd", "--medium", "machine3_disk0.vdi"]
vb.customize ["storageattach", :id, "--storagectl", "SATA Controller", "--port", 2, "--type", "hdd", "--medium", "machine3_disk1.vdi"]
end
machine3.vm.network "private_network", ip: "192.168.10.30"
end
config.vm.define "machine4" do |machine4|
machine4.vm.hostname = "machine4"
machine4.vm.provider "virtualbox" do |vb|
vb.customize ["createhd", "--filename", "machine4_disk0", "--size", 4096]
vb.customize ["createhd", "--filename", "machine4_disk1", "--size", 4096]
vb.customize ["storageattach", :id, "--storagectl", "SATA Controller", "--port", 1, "--type", "hdd", "--medium", "machine4_disk0.vdi"]
vb.customize ["storageattach", :id, "--storagectl", "SATA Controller", "--port", 2, "--type", "hdd", "--medium", "machine4_disk1.vdi"]
end
machine4.vm.network "private_network", ip: "192.168.10.40"
end
config.vm.define "machine5" do |machine5|
machine5.vm.hostname = "machine5"
machine5.vm.provider "virtualbox" do |vb|
vb.customize ["createhd", "--filename", "machine5_disk0", "--size", 4096]
vb.customize ["createhd", "--filename", "machine5_disk1", "--size", 4096]
vb.customize ["storageattach", :id, "--storagectl", "SATA Controller", "--port", 1, "--type", "hdd", "--medium", "machine5_disk0.vdi"]
vb.customize ["storageattach", :id, "--storagectl", "SATA Controller", "--port", 2, "--type", "hdd", "--medium", "machine5_disk1.vdi"]
end
machine5.vm.network "private_network", ip: "192.168.10.50"
end
config.vm.define "machine6" do |machine6|
machine6.vm.hostname = "machine6"
machine6.vm.provider "virtualbox" do |vb|
vb.customize ["createhd", "--filename", "machine6_disk0", "--size", 4096]
vb.customize ["createhd", "--filename", "machine6_disk1", "--size", 4096]
vb.customize ["storageattach", :id, "--storagectl", "SATA Controller", "--port", 1, "--type", "hdd", "--medium", "machine6_disk0.vdi"]
vb.customize ["storageattach", :id, "--storagectl", "SATA Controller", "--port", 2, "--type", "hdd", "--medium", "machine6_disk1.vdi"]
end
machine6.vm.network "private_network", ip: "192.168.10.60"
end
config.vm.define "machine7" do |machine7|
machine7.vm.hostname = "machine7"
machine7.vm.provider "virtualbox" do |vb|
vb.customize ["createhd", "--filename", "machine7_disk0", "--size", 4096]
vb.customize ["createhd", "--filename", "machine7_disk1", "--size", 4096]
vb.customize ["storageattach", :id, "--storagectl", "SATA Controller", "--port", 1, "--type", "hdd", "--medium", "machine7_disk0.vdi"]
vb.customize ["storageattach", :id, "--storagectl", "SATA Controller", "--port", 2, "--type", "hdd", "--medium", "machine7_disk1.vdi"]
end
machine7.vm.network "private_network", ip: "192.168.10.70"
end
end
答案 0 :(得分:1)
问题是您的盒子已经有了现有的SATA存储控制器,因此您不应该尝试在配置开始时添加新的存储控制器(不能添加多个SATA存储控制器)。
答案 1 :(得分:0)
如果您的盒子已包含SATA控制器,您可以修改控制器类型更改为SAS:
vb.customize ["storagectl", :id, "--name", "SAS Controller", "--add", "sas", '--portcount', 2]
并更改您附加到其上的每个磁盘的控制器名称引用:
vb.customize ["storageattach", :id, "--storagectl", "SAS Controller", "--port", 1, "--type", "hdd", "--medium", "machine7_disk0.vdi"]
使用SAS控制器我在vagrant和virtualbox中解决了这个问题。