Buenas tardes!
Os subo el script que utilizo para la migración de máquinas virtuales entre datastores usando «storage vmotion»
Necesitamos un .csv en la misma ruta del script llamado moveVMconfig.csv con las siguientes columnas llamadas:
–name: nombre de máquina –datastore: nombre de datastore destino.
name | datastore |
#############esto es lo que tenemos que guardar en un .ps1 (el nombre… el que queráis)
cls Write-host " ##########################" Write-host " ## Migracion datastores ##" Write-host " ##########################" #Declaracion de variables $vmlist = Import-CSV -Delimiter ";" moveVMconfig.csv $count = $vmlist.name.count $counter = 1 Write-host Write-host $count maquinas a migrar. Write-host foreach ($item in $vmlist) { $vmName = $item.name $tgtConfigDS = $item.datastore $vm = Get-VM -Name $vmName $hds = Get-HardDisk -VM $vm $numVM = $counter++ $spec = New-Object VMware.Vim.VirtualMachineRelocateSpec $spec.datastore = (Get-Datastore -Name $tgtConfigDS).Extensiondata.MoRef $hds | %{ $disk = New-Object VMware.Vim.VirtualMachineRelocateSpecDiskLocator $disk.diskId = $_.Extensiondata.Key $disk.datastore = $_.Extensiondata.Backing.Datastore $spec.disk += $disk } $vm.Extensiondata.RelocateVM_Task($spec, "defaultPriority") | Out-Null Write-host " Migrando maquina $vmName ($numVM de $count)" $vm | Move-VM -Datastore $tgtConfigDS -RunAsync | Out-Null # Parte nueva } Write-host Write-host Si quieres ver el progreso de la migrcion, lanza el siguiente comando: Write-host " "-> "Get-Task -status running | get-view | % {"$"_.info} | select EntityName,State,Progress,DescriptionId" -foregroundcolor yellow Write-host Fin.
Es una forma fácil de migrar máquinas de forma masiva, da lo mismo las que pongas a migrar se quedarán encoladas.