First of all Project Onyx is completely awesome. It has helped me with my scripting and better understaning of the entire VM environment.
In short, we are trying to automate a process to flex clone our db server rdm luns and attach the clones luns to our reporting server. I have created a script that completes all the process including the adding the physical rdm to the vm. the process on the script appears to work correctly, however when the reconfigVM_Task function runs on the VM, i get an error File rpt-test/rpt-test.vmdk is larger than he maximum size supported by datastore
If i add the rdm's through the gui, it all works correctly. There is 370gb of space free in the datastore. The lun's I am attempting to add to the vm add up to 20 gb total in size.
Here is the add-rdm function code that was created from Project Onyx, that I have modified enough to pass the new Lun id to the VM.
function AddHDD{
param($vm, $string1, $string2, $string3)
$string1 = "/vmfs/devices/disk/" + $string1
$string2 = "/vmfs/devices/disk/" + $string2
$string3 = "/vmfs/devices/disk/" + $string3
$vmMo = Get-View (Get-VM $vm).ID
$spec = New-Object VMware.Vim.VirtualMachineConfigSpec
$spec.deviceChange = New-Object VMware.Vim.VirtualDeviceConfigSpec[] (3)
$spec.deviceChange[0] = New-Object VMware.Vim.VirtualDeviceConfigSpec
$spec.deviceChange[0].operation = "add"
$spec.deviceChange[0].fileOperation = "create"
$spec.deviceChange[0].device = New-Object VMware.Vim.VirtualDisk
$spec.deviceChange[0].device.key = -100
$spec.deviceChange[0].device.backing = New-Object VMware.Vim.VirtualDiskRawDiskMappingVer1BackingInfo
$spec.deviceChange[0].device.backing.fileName = "[WINVM_FC1]"
$spec.deviceChange[0].device.backing.deviceName = $string1 #"/vmfs/devices/disks/naa.60a98000572d43724e34556771303735"
$spec.deviceChange[0].device.backing.compatibilityMode = "physicalMode"
$spec.deviceChange[0].device.backing.diskMode = ""
$spec.deviceChange[0].device.connectable = New-Object VMware.Vim.VirtualDeviceConnectInfo
$spec.deviceChange[0].device.connectable.startConnected = $true
$spec.deviceChange[0].device.connectable.allowGuestControl = $false
$spec.deviceChange[0].device.connectable.connected = $true
$spec.deviceChange[0].device.controllerKey = 1000
$spec.deviceChange[0].device.unitNumber = 1
$spec.deviceChange[0].device.capacityInKB = 11542703
$spec.deviceChange[1] = New-Object VMware.Vim.VirtualDeviceConfigSpec
$spec.deviceChange[1].operation = "add"
$spec.deviceChange[1].fileOperation = "create"
$spec.deviceChange[1].device = New-Object VMware.Vim.VirtualDisk
$spec.deviceChange[1].device.key = -101
$spec.deviceChange[1].device.backing = New-Object VMware.Vim.VirtualDiskRawDiskMappingVer1BackingInfo
$spec.deviceChange[1].device.backing.fileName = "[WINVM_FC1]"
$spec.deviceChange[1].device.backing.deviceName = $string2 #"/vmfs/devices/disks/naa.60a98000572d43724e34556771303736"
$spec.deviceChange[1].device.backing.compatibilityMode = "physicalMode"
$spec.deviceChange[1].device.backing.diskMode = ""
$spec.deviceChange[1].device.connectable = New-Object VMware.Vim.VirtualDeviceConnectInfo
$spec.deviceChange[1].device.connectable.startConnected = $true
$spec.deviceChange[1].device.connectable.allowGuestControl = $false
$spec.deviceChange[1].device.connectable.connected = $true
$spec.deviceChange[1].device.controllerKey = 1000
$spec.deviceChange[1].device.unitNumber = 2
$spec.deviceChange[1].device.capacityInKB =5245223
$spec.deviceChange[2] = New-Object VMware.Vim.VirtualDeviceConfigSpec
$spec.deviceChange[2].operation = "add"
$spec.deviceChange[2].fileOperation = "create"
$spec.deviceChange[2].device = New-Object VMware.Vim.VirtualDisk
$spec.deviceChange[2].device.key = -102
$spec.deviceChange[2].device.backing = New-Object VMware.Vim.VirtualDiskRawDiskMappingVer1BackingInfo
$spec.deviceChange[2].device.backing.fileName = "[WINVM_FC1]"
$spec.deviceChange[2].device.backing.deviceName = $string3 #"/vmfs/devices/disks/naa.60a98000572d43724e34556771303737"
$spec.deviceChange[2].device.backing.compatibilityMode = "physicalMode"
$spec.deviceChange[2].device.backing.diskMode = ""
$spec.deviceChange[2].device.connectable = New-Object VMware.Vim.VirtualDeviceConnectInfo
$spec.deviceChange[2].device.connectable.startConnected = $true
$spec.deviceChange[2].device.connectable.allowGuestControl = $false
$spec.deviceChange[2].device.connectable.connected = $true
$spec.deviceChange[2].device.controllerKey = 1000
$spec.deviceChange[2].device.unitNumber = 3
$spec.deviceChange[2].device.capacityInKB = 5245223
$VmMo.ReconfigVM_Task($spec)
}
Any help/advice would be greatly appreciated. Thanks in advance.