Delen via


Move-SCVirtualMachine

Hiermee verplaatst u een virtuele machine die is opgeslagen in de VMM-bibliotheek of die is geïmplementeerd op een host naar een nieuwe locatie op een host.

Syntax

Move-SCVirtualMachine
    [-VM] <VM>
    [-VMHost <Host>]
    [-ReplicationGroup <ReplicationGroup>]
    [-BlockLiveMigrationIfHostBusy]
    [-UseDiffDiskOptimization]
    [-StartVMOnTarget]
    [-DiscardSavedState]
    [-UseLAN]
    [-UseCluster]
    [-HighlyAvailable <Boolean>]
    [-Path <String>]
    [-JobGroup <Guid>]
    [-RunAsynchronously]
    [-PROTipID <Guid>]
    [-JobVariable <String>]
    [-OnBehalfOfUser <String>]
    [-OnBehalfOfUserRole <UserRole>]
    [<CommonParameters>]

Description

Met de cmdlet Move-SCVirtualMachine wordt een virtuele machine die is opgeslagen in de VMM-bibliotheek (Virtual Machine Manager) of geïmplementeerd op een host, verplaatst naar een nieuwe locatie op een host.

In System Center 2019 en hoger kunt u profiteren van de nieuwe migratiemogelijkheden in Windows Server 2016. Deze mogelijkheden omvatten livemigratie van virtuele machines tussen twee zelfstandige computers en livemigratie tussen zelfstandige computers en een clusterknooppunt. Daarnaast worden meerdere gelijktijdige livemigraties ondersteund. Zie Migreren van Virtual Machines en opslag in VMMhttps://technet.microsoft.com/en-us/library/mt710321(v=sc.16).aspx (https://technet.microsoft.com/en-us/library/mt710321(v=sc.16).aspx) in de TechNet-bibliotheek voor meer informatie over het migreren van virtuele machines in System Center.

Als u een virtuele machine die is geïmplementeerd op een host met Windows Server 2008 R2 verplaatst naar een host met Windows Server 2016, kunt u de virtuele machine niet terug verplaatsen naar een host met Windows Server 2008 R2.

VMM bevat functies voor opslagmigratie waarmee u een of meer virtuele harde schijven van een actieve virtuele machine naar een andere locatie kunt verplaatsen. U kunt de huidige cmdlet en de cmdlet Move-SCVirtualHardDisk gebruiken om op Windows gebaseerde virtuele hardeschijfbestanden (.vhd)-bestanden en VMware-bestanden met virtuele harde schijven (.vmdk) te verplaatsen naar een locatie op een andere host. U kunt ook de cmdlet Move-SCVirtualHardDisk gebruiken om een VHD-bestand of een VMDK-bestand van de ene locatie naar de andere op dezelfde host te verplaatsen.

Als u een virtuele machine van een host wilt verplaatsen en in de bibliotheek wilt opslaan, moet u de cmdlet Save-SCVirtualMachine gebruiken.

VMM kan een van de volgende overdrachtsmethoden gebruiken, vermeld in de volgorde waarin VMM deze probeert te gebruiken:

  • Hyper-V-livemigratie. Als een virtuele machine wordt uitgevoerd en wordt geïmplementeerd op een Hyper-V-host die een knooppunt van een Windows Server 2008 R2 of Windows Server 2016 hostcluster is, gebruikt VMM standaard Hyper-V-livemigratie om de virtuele machine naar een ander knooppunt in het cluster te verplaatsen zonder onderbreking van de service. Als u een actieve virtuele machine verplaatst, wordt de verbinding met het netwerk niet verbroken. De virtuele machine behoudt het kenmerk hoge beschikbaarheid. U hoeft geen pad op te geven. U kunt de livemigratie van meerdere virtuele machines tegelijk starten.
  • Migratie van Windows Server 2008-clusters. System Center blijft ondersteuning bieden voor Windows 2008-clustermigratie, ook wel snelle migratie genoemd. Clustermigratie verplaatst een actieve virtuele machine op een Hyper-V-knooppunt van een hostcluster. U kunt hiermee ook een virtuele machine verplaatsen die is gestopt of opgeslagen en die is geïmplementeerd naar een ander knooppunt in het cluster. U kunt Clustermigratie gebruiken om een virtuele machine in een gestopte of opgeslagen status te verplaatsen als de virtuele machine is geïmplementeerd op een van de volgende knooppunten:

----A-knooppunt in een Windows Server 2008-cluster ----A knooppunt in een Windows Server 2008 R2-cluster

U hoeft geen pad op te geven. Windows Server 2008-clustermigratie plaatst de virtuele machine in een opgeslagen status tijdens de migratie. Deze bewerking veroorzaakt een tijdelijk serviceverlies voor alle gebruikers van die virtuele machine.

  • VMware-livemigratie. Als een virtuele machine die is geïmplementeerd op een VMware ESX-host gebruikmaakt van gedeelde opslag, kan VMM de functie voor VMware-livemigratie gebruiken om de virtuele machine naar een nieuwe host te verplaatsen. Deze functie heet VMware VMotion. U hoeft geen pad op te geven. De huidige cmdlet kan VMware VMotion gebruiken om een virtuele machine van de ene ESX-host naar de andere te verplaatsen als beide ESX-hosts zich in dezelfde datacentercontainer op de vCenter-server bevinden.
  • Citrix XenServer XenMotion. Als een virtuele machine die is geïmplementeerd op een Citrix XenServer-host gebruikmaakt van gedeelde opslag en deel uitmaakt van dezelfde resourcegroep, kan VMM de functie voor livemigratie van XenServer gebruiken om de virtuele machine naar een andere XenServer-host te verplaatsen. De functie voor livemigratie heet Citrix XenMotion.
  • SAN-migratie (Fibre Channel, iSCSI of NPIV). Als de virtuele machine zich op een host bevindt die is verbonden met een SAN en de virtuele machine zich op een SAN LUN bevindt, kan VMM die virtuele machine verplaatsen naar een andere host als die host toegang heeft tot hetzelfde SAN. Bij een SAN-overdracht worden de doel-LUN's omgeleid van de bronhost naar de doelhost. Met deze migratie worden geen bestanden verplaatst. Een SAN-overdracht is veel sneller dan het verplaatsen van bestanden van virtuele machines van de ene host naar de andere via een LAN (Local Area Network). VMM ondersteunt SAN-migratie van virtuele machines naar en uit een cluster. U moet een pad opgeven. VMM kan een NPIV SAN-overdracht gebruiken als er een hostbusadapter (HBA) met NPIV-ondersteuning beschikbaar is.
  • Netwerkmigratie. Als er geen snellere methode beschikbaar is, gebruikt VMM een netwerkoverdracht om de bestanden van de virtuele machine van de ene host naar de andere te verplaatsen via het LAN dat de twee hosts verbindt. U kunt besluiten dit overdrachtstype te gebruiken, zelfs als het SAN-overdrachtstype beschikbaar is. U moet een pad opgeven.

Wanneer er meer dan één overdrachtstype beschikbaar is, gebruikt deze cmdlet automatisch het snelst beschikbare overdrachtstype om een virtuele machine te verplaatsen. Als een methode niet geschikt of niet beschikbaar is voor de virtuele machine die u wilt verplaatsen, probeert VMM de volgende methode in de lijst te gebruiken. Als u het gebruik van een netwerkoverdracht wilt afdwingen, geeft u de parameter UseLAN op.

Voorbeelden

Voorbeeld 1: Een virtuele machine van de bibliotheek naar een host verplaatsen

PS C:\> $VM = Get-SCVirtualMachine | Where-Object { $_.Name -Eq "VM01" -And $_.LibraryServer -Eq "LibServer01.Contoso.com" }
PS C:\> $VMHost = Get-SCVMHost -ComputerName "VMHost01.Contoso.com"
PS C:\> Move-SCVirtualMachine -VMHost $VMHost -VM $VM -Path "D:\VirtualMachinePath"

Met de eerste opdracht wordt het virtuele-machineobject met de naam VM01 opgehaald en wordt dat object vervolgens opgeslagen in de variabele $VM. In dit voorbeeld is de virtuele machine opgeslagen in de VMM-bibliotheek op de bibliotheekserver met de naam LibServer01. In dit voorbeeld wordt ervan uitgegaan dat momenteel slechts één virtuele machine met de naam VM01 is opgeslagen op LibServer01.

Met de tweede opdracht wordt het hostobject met de naam VMHost01 opgehaald en wordt dat object vervolgens opgeslagen in de variabele $VMHost.

Met de laatste opdracht wordt de virtuele machine verplaatst van de huidige locatie in de bibliotheek naar de locatie D:\VirtualMachinePath op de host die is opgeslagen in $VMHost. De opdracht maakt automatisch gebruik van het snelste beschikbare overdrachtstype. Wanneer de opdracht is voltooid, retourneert deze informatie over de verplaatste virtuele machine.

Voorbeeld 2: Een virtuele machine asynchroon van de bibliotheek naar een host verplaatsen

PS C:\> $VM = Get-SCVirtualMachine | Where-Object { $_.Name -Eq "VM01" -And $_.LibraryServer -Eq "LibServer01.Contoso.com" }
PS C:\> $VMHost = Get-SCVMHost -ComputerName "VMHost02.Contoso.com"
PS C:\> Move-SCVirtualMachine -VMHost $VMHost -VM $VM -Path "D:\VirtualMachinePath" -RunAsynchronously -JobVariable "MoveVMJob"
PS C:\> $MoveVMJob

De eerste twee opdrachten in dit voorbeeld zijn identiek aan de opdrachten in het eerste voorbeeld, met uitzondering van de naam van de host van de virtuele machine.

Met de derde opdracht wordt de virtuele machine verplaatst van de huidige locatie naar D:\VirtualMachinePath op VMHost02. Met de opdracht geeft u de parameter RunAsynchronously op om het besturingselement onmiddellijk terug te keren naar de opdrachtshell. De opdracht geeft de parameter JobVariable op om de voortgang van de taak bij te houden. Met de opdracht wordt een record van de taakvoortgang opgeslagen in de variabele $MoveVMJob. Voor de parameter JobVariable geeft u niet het dollarteken ($) op om de variabele te maken.

Met de laatste opdracht wordt de inhoud van $MoveVMJob weergegeven, met een beschrijving van de verplaatsingstaak, de status, de voortgang en andere informatie.

Voorbeeld 3: Een virtuele machine van de bibliotheek naar een host verplaatsen door een LAN-overdracht af te dwingen

PS C:\> $VM = Get-SCVirtualMachine | Where-Object { $_.Name -Eq "VM03" -And $_.LibraryServer -Eq "LibServer01.Contoso.com" }
PS C:\> $VMHost = Get-SCVMHost -ComputerName "VMHost03.Contoso.com"
PS C:\> Move-SCVirtualMachine -VMHost $VMHost -VM $VM -Path "D:\VirtualMachinePath" -UseLAN

Met de eerste opdracht wordt het virtuele-machineobject vm03 opgehaald op bibliotheekserver LibServer01 en wordt dat object vervolgens opgeslagen in de variabele $VM.

Met de tweede opdracht wordt het hostobject met de naam VMHost03 opgehaald en wordt dat object vervolgens opgeslagen in de variabele $VMHost.

Met de laatste opdracht wordt de virtuele machine VM03 verplaatst van de huidige locatie in de bibliotheek naar D:\VirtualMachinePath op VMHost03. Met de opdracht wordt de parameter UseLAN opgegeven om op te geven dat de overdracht gebruikmaakt van een netwerkoverdracht, zelfs als er snellere overdrachtsmechanismen beschikbaar zijn.

Voorbeeld 4: Een virtuele machine verplaatsen tussen hosts met behulp van VMware VMotion

PS C:\> $VM = Get-SCVirtualMachine -Name "VM04" | Where-Object {$_.VMHost.Name -Eq "ESXHost01"}
PS C:\> $VMHost = Get-SCVMHost | Where-Object {$_.Name -Eq "ESXHost02"}
PS C:\> Move-SCVirtualMachine -VM $VM -VMHost $VMHost -Path "[Storage2]"

Met de eerste opdracht wordt het virtuele-machineobject met de naam VM04 op ESXHost01 opgehaald en wordt dat object vervolgens opgeslagen in de variabele $VM.

Met de tweede opdracht wordt het ESX-hostobject met de naam ESXHost02 opgehaald en wordt dat object vervolgens opgeslagen in de $VMHost variabele.

De laatste opdracht maakt gebruik van VMware VMotion om de virtuele machine te verplaatsen van de huidige ESX-host naar de andere ESX-host.

OPMERKING: De cmdlet Move-SCVirtualMachine kan de VMware VMotion-functie gebruiken om een virtuele machine van de ene ESX-host naar de andere te verplaatsen, alleen als beide ESX-servers zich in dezelfde datacentercontainer op de vCenter-server bevinden.

Voorbeeld 5: Een maximaal beschikbare virtuele machine verplaatsen tussen knooppunten in een hostcluster met behulp van Hyper-V-livemigratie

PS C:\> $VM = Get-SCVirtualMachine -Name "HAVM05" | Where-Object {$_.VMHost.Name -Eq "VMHVHostNode05A.Contoso.com"}
PS C:\> $VMHost = Get-SCVMHost | Where-Object {$_.Name -Eq "VMHVHostNode05B.Contoso.com"}
PS C:\> Move-SCVirtualMachine -VM $VM -VMHost $VMHost -Path "D:\VMs\"

Met de eerste opdracht wordt het virtuele-machineobject met de naam HAVM05 op VMHVHostNode05A opgehaald en wordt dat object vervolgens opgeslagen in de variabele $VM. In dit voorbeeld is HAVM05 een maximaal beschikbare virtuele machine. VMHVHostNode05A en VMHVHostNode05B zijn knooppunten in een Hyper-V-hostcluster.

Met de tweede opdracht wordt het hostobject met de naam VMHVHostNode05B opgehaald en wordt dat object vervolgens opgeslagen in de variabele $VMHost.

De laatste opdracht maakt gebruik van livemigratie om de virtuele machine te verplaatsen van VMHVHostNode05A naar VMHVHostNode05B.

Voorbeeld 6: Een actieve virtuele machine op een Hyper-V-host verplaatsen naar een nieuwe locatie op dezelfde host

PS C:\> $MoveVhdPath = "E:\VHDs"
PS C:\> $VM = Get-SCVirtualMachine "VM06"
PS C:\> $VMHost = Get-SCVMHost "VMHost06"
PS C:\> $HostPath = "E:\VirtualMachinePath"
PS C:\> $JobGroupID = [System.Guid]::NewGuid().ToString()
PS C:\> Move-SCVirtualHardDisk -IDE -Bus 1 -Lun 1 -Path $MoveVhdPath -JobGroup $JobGroupID
PS C:\> Move-SCVirtualMachine -VM $VM -VMHost $VMHost -Path $HostPath -JobGroup $JobGroupID

Met de eerste opdracht wordt de tekenreeks E:\VHD's opgeslagen in $MoveVhdPath. Dit is het pad waarvan de virtuele harde schijf van de virtuele machine moet worden verplaatst.

Met de tweede opdracht haalt u het virtuele-machineobject met de naam VM06 op en slaat u dat object vervolgens de $VM variabele op.

Met de derde opdracht wordt het hostobject met de naam VMHost06 opgehaald en wordt dat object vervolgens opgeslagen in de variabele $VMHost. In dit voorbeeld is VMHost06 een Hyper-V-host.

Met de vierde opdracht wordt de tekenreeks E:\VirtualMachinePath opgeslagen in de variabele $HostPath. Dit is het pad waarvan VM06 moet worden verplaatst.

Met de vijfde opdracht wordt een nieuwe GUID-tekenreeks gemaakt en opgeslagen in de variabele $JobGroupID. Deze GUID is een taakgroep-id die fungeert als een id die volgende opdrachten die deze id bevatten, in één taakgroep groepeert.

Met de zesde opdracht wordt het pad naar de virtuele harde schijf ingesteld van de waarde die is opgeslagen in $MoveVhdPath en wordt de virtuele harde schijf verbonden met Bus 1 en LUN 1 op de virtuele IDE-controller op de virtuele machine. Met deze opdracht geeft u de parameter JobGroup op, zodat deze pas daadwerkelijk wordt uitgevoerd als Move-SCVirtualMachine het uitvoeren van opdrachten in de lijst met takengroepen activeert.

Met de laatste opdracht wordt VM06 verplaatst naar E:\VirtualMachinePath op dezelfde host. De cmdlet voert Move-SCVirtualHardDisk uit als onderdeel van $JobGroupID. Met de opdracht wordt de virtuele harde schijf van de virtuele machine verplaatst naar E:\VHD's.

Parameters

-BlockLiveMigrationIfHostBusy

Geeft aan dat de cmdlet het opnieuw proberen van een Hyper-V-livemigratie blokkeert als de migratie is mislukt omdat de bronhost of de doelhost al deelneemt aan een andere livemigratie.

Type:SwitchParameter
Aliases:BlockLMIfHostBusy
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DiscardSavedState

Geeft aan dat met deze cmdlet de opgeslagen status wordt verwijderd die is gekoppeld aan een virtuele machine of service.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HighlyAvailable

Hiermee geeft u op of een virtuele machine op een Hyper-V-host die deel uitmaakt van een hostcluster.

Type:Boolean
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-JobGroup

Hiermee geeft u een id voor een reeks opdrachten die wordt uitgevoerd als een set vlak voor de laatste opdracht die dezelfde taakgroep-id uitvoert.

Type:Guid
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-JobVariable

Hiermee geeft u de naam van een variabele voor taakvoortgang.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-OnBehalfOfUser

Hiermee geeft u een gebruikersnaam. Deze cmdlet werkt namens de gebruiker die deze parameter opgeeft.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-OnBehalfOfUserRole

Hiermee geeft u een gebruikersrol op. Gebruik de cmdlet Get-SCUserRole om een gebruikersrol te verkrijgen. Deze cmdlet werkt namens de gebruikersrol die door deze parameter wordt opgegeven.

Type:UserRole
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

Hiermee geeft u het pad van de verplaatste virtuele machine.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PROTipID

Hiermee geeft u de id van de tip prestaties en resourceoptimalisatie (PRO-tip) die deze actie heeft geactiveerd. Met deze parameter kunt u PRO-tips controleren.

Type:Guid
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ReplicationGroup

Hiermee geeft u een replicatiegroep op.

Type:ReplicationGroup
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RunAsynchronously

Geeft aan dat de taak asynchroon wordt uitgevoerd, zodat het besturingselement onmiddellijk terugkeert naar de opdrachtshell.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-StartVMOnTarget

Hiermee geeft u op dat een virtuele machine wordt gestart zodra deze met deze cmdlet naar de doelhost wordt verplaatst.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseCluster

Geeft aan dat deze cmdlet clustermigratie gebruikt voor de overdracht van een virtuele machine met een opgeslagen status naar een host, zelfs als het cluster hyper-V-livemigratie ondersteunt.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseDiffDiskOptimization

Geeft aan dat de cmdlet differentiërende schijfoptimalisatie gebruikt.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseLAN

Geeft aan dat deze cmdlet gebruikmaakt van overdracht via het LAN, zelfs als er een sneller overdrachtsmechanisme beschikbaar is.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VM

Hiermee geeft u een virtuele machine-object.

Type:VM
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-VMHost

Hiermee geeft u een hostobject voor een virtuele machine op. VMM ondersteunt Hyper-V-hosts, VMware ESX-hosts en Citrix XenServer-hosts.

Zie de cmdlet Add-SCVMHost voor meer informatie over elk type host.

Type:Host
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

Uitvoerwaarden

VirtualMachine

Deze cmdlet retourneert een VirtualMachine-object .