Dela via


Move-SCVirtualMachine

Flyttar en virtuell dator som lagras i VMM-biblioteket eller distribueras på en värd till en ny plats på en värd.

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

Cmdleten Move-SCVirtualMachine flyttar en virtuell dator som lagras i VMM-biblioteket (Virtual Machine Manager) eller distribueras på en värd till en ny plats på en värd.

I System Center 2019 kan du dra nytta av nya migreringsfunktioner som ingår i Windows Server 2016. Dessa funktioner omfattar direktmigrering av virtuella datorer mellan två fristående datorer och direktmigrering mellan fristående datorer och en klusternod. Dessutom stöds flera samtidiga direktmigreringar. Mer information om hur du migrerar virtuella datorer i System Center 2019 finns i Migrera Virtual Machines och lagring i VMMhttps://technet.microsoft.com/en-us/library/mt710321(v=sc.16).aspx (https://technet.microsoft.com/en-us/library/mt710321(v=sc.16).aspx) i TechNet-biblioteket.

Om du flyttar en virtuell dator som distribueras på en värd som kör Windows Server 2008 R2 till en värd som kör Windows Server 2016 kan du inte flytta tillbaka den virtuella datorn till en värd som kör Windows Server 2008 R2.

VMM innehåller funktioner för lagringsmigrering som gör att du kan flytta en eller flera virtuella hårddiskar för en virtuell dator som körs till en annan plats. Du kan använda den aktuella cmdleten och cmdleten Move-SCVirtualHardDisk för att flytta Windows-baserade filer för virtuell hårddisk (.vhd) och VMware-baserade filer för virtuell hårddisk (.vmdk) till en plats på en annan värd. Du kan också använda cmdleten Move-SCVirtualHardDisk för att flytta en VHD-fil eller en .vmdk-fil från en plats till en annan på samma värd.

Om du vill flytta en virtuell dator från en värd och lagra den i biblioteket måste du använda cmdleten Save-SCVirtualMachine.

VMM kan använda någon av följande överföringsmetoder, som anges i den ordning som VMM försöker använda dem:

  • Direktmigrering av Hyper-V. Om en virtuell dator körs och distribueras på en Hyper-V-värd som är en nod i ett Windows Server 2008 R2 eller Windows Server 2016 värdkluster använder VMM som standard Direktmigrering av Hyper-V för att flytta den virtuella datorn till en annan nod i klustret utan avbrott i tjänsten. Om du flyttar en virtuell dator som körs kopplas den inte bort från nätverket. Den virtuella datorn behåller sitt attribut för hög tillgänglighet. Du behöver inte ange en sökväg. Du kan starta direktmigrering av flera virtuella datorer samtidigt.
  • Migrering av Windows Server 2008-kluster. System Center fortsätter att ha stöd för Klustermigrering i Windows 2008, som ibland kallas snabbmigrering. Klustermigrering flyttar en virtuell dator som körs på en Hyper-V-nod i ett värdkluster. Du kan också flytta en virtuell dator som är i ett stoppat eller sparat tillstånd och som distribueras till en annan nod i klustret. Du kan använda klustermigrering för att flytta en virtuell dator i ett stoppat eller sparat tillstånd om den virtuella datorn distribueras på någon av följande noder:

----A-nod i ett Windows Server 2008-kluster ----A-nod i ett Windows Server 2008 R2-kluster

Du behöver inte ange en sökväg. Windows Server 2008 Klustermigrering försätter den virtuella datorn i ett sparat tillstånd under migreringen. Den här åtgärden orsakar en tillfällig förlust av tjänsten för alla användare av den virtuella datorn.

  • Direktmigrering av VMware. Om en virtuell dator som distribueras på en VMware ESX-värd använder delad lagring kan VMM använda funktionen för direktmigrering av VMware för att flytta den virtuella datorn till en ny värd. Den här funktionen kallas VMware VMotion. Du behöver inte ange en sökväg. Den aktuella cmdleten kan använda VMware VMotion för att flytta en virtuell dator från en ESX-värd till en annan endast om båda ESX-värdarna finns i samma Datacenter-container på vCenter-servern.
  • Citrix XenServer XenMotion. Om en virtuell dator som distribueras på en Citrix XenServer-värd använder delad lagring och ingår i samma resurspool, kan VMM använda funktionen för direktmigrering av XenServer för att flytta den virtuella datorn till en annan XenServer-värd. Funktionen för direktmigrering kallas Citrix XenMotion.
  • SAN-migrering (Fibre Channel, iSCSI eller NPIV). Om den virtuella datorn finns på en värd som är ansluten till ett SAN och den virtuella datorn finns på ett SAN LUN kan VMM flytta den virtuella datorn till en annan värd om den värden har åtkomst till samma SAN. I en SAN-överföring omdirigeras mål-LUN:erna från källvärden till målvärden. Den här migreringen flyttar inte filer. En SAN-överföring går mycket snabbare än att flytta filer från en värd till en annan via ett lokalt nätverk (LAN). VMM stöder SAN-migrering av virtuella datorer till och från ett kluster. Du måste ange en sökväg. VMM kan använda en NPIV SAN-överföring om det finns ett värdbusskort (HBA) med NPIV-stöd.
  • Nätverksmigrering. Om ingen snabbare metod är tillgänglig använder VMM en nätverksöverföring för att flytta de virtuella datorfilerna från en värd till en annan via det LAN som ansluter de två värdarna. Du kan välja att använda den här överföringstypen även om SAN-överföringstypen är tillgänglig. Du måste ange en sökväg.

När mer än en överföringstyp är tillgänglig använder den här cmdleten automatiskt den snabbaste tillgängliga överföringstypen för att flytta en virtuell dator. Om en metod inte är lämplig eller tillgänglig för den virtuella dator som du vill flytta försöker VMM använda nästa metod i listan. Om du vill framtvinga användningen av en nätverksöverföring anger du parametern UseLAN .

Exempel

Exempel 1: Flytta en virtuell dator från biblioteket till en värd

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"

Det första kommandokommandot hämtar det virtuella datorobjektet VM01 och lagrar sedan objektet i variabeln $VM. I det här exemplet lagras den virtuella datorn i VMM-biblioteket på biblioteksservern med namnet LibServer01. Det här exemplet förutsätter att endast en virtuell dator med namnet VM01 för närvarande lagras på LibServer01.

Det andra kommandot hämtar värdobjektet VMHost01 och lagrar sedan objektet i variabeln $VMHost.

Det senaste kommandot flyttar den virtuella datorn från den aktuella platsen i biblioteket till platsen D:\VirtualMachinePath på värden som lagras i $VMHost. Kommandot använder automatiskt den snabbaste tillgängliga överföringstypen. När kommandot är klart returneras information om den flyttade virtuella datorn.

Exempel 2: Flytta en virtuell dator från biblioteket till en värd asynkront

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 två första kommandona i det här exemplet är identiska med kommandona i det första exemplet, förutom namnet på den virtuella datorvärden.

Det tredje kommandot flyttar den virtuella datorn från den aktuella platsen till D:\VirtualMachinePath på VMHost02. Kommandot anger parametern RunAsynchronously för att returnera kontrollen till kommandogränssnittet omedelbart. Kommandot anger parametern JobVariable för att spåra jobbets förlopp. Kommandot lagrar en post med jobbstatusen i variabeln $MoveVMJob. För parametern JobVariable anger du inte dollartecknet ($) för att skapa variabeln.

Det sista kommandot visar innehållet i $MoveVMJob, som innehåller en beskrivning av flyttjobbet, dess status, dess förlopp och annan information.

Exempel 3: Flytta en virtuell dator från biblioteket till en värd genom att tvinga fram en LAN-överföring

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

Det första kommandot hämtar det virtuella datorobjektet VM03 på biblioteksservern LibServer01 och lagrar sedan objektet i variabeln $VM.

Det andra kommandot hämtar värdobjektet VMHost03 och lagrar sedan objektet i variabeln $VMHost.

Det senaste kommandot flyttar den virtuella datorn VM03 från den aktuella platsen i biblioteket till D:\VirtualMachinePath på VMHost03. Kommandot anger parametern UseLAN för att ange att överföringen använder en nätverksöverföring, även om det finns snabbare överföringsmekanismer tillgängliga.

Exempel 4: Flytta en virtuell dator mellan värdar med hjälp av 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]"

Det första kommandot hämtar det virtuella datorobjektet VM04 på ESXHost01 och lagrar sedan objektet i variabeln $VM.

Det andra kommandot hämtar ESX-värdobjektet med namnet ESXHost02 och lagrar sedan objektet i variabeln $VMHost.

Det slutliga kommandot använder VMware VMotion för att flytta den virtuella datorn från den aktuella ESX-värden till den andra ESX-värden.

Obs! Cmdleten Move-SCVirtualMachine kan använda VMware VMotion-funktionen för att flytta en virtuell dator från en ESX-värd till en annan endast om båda ESX-servrarna finns i samma Datacenter-container på vCenter Server.

Exempel 5: Flytta en virtuell dator med hög tillgänglighet mellan noder i ett värdkluster med hjälp av direktmigrering av Hyper-V

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\"

Det första kommandot hämtar objektet för den virtuella datorn med namnet HAVM05 på VMHVHostNode05A och lagrar sedan objektet i variabeln $VM. I det här exemplet är HAVM05 en virtuell dator med hög tillgänglighet. VMHVHostNode05A och VMHVHostNode05B är noder i ett Hyper-V-värdkluster.

Det andra kommandot hämtar värdobjektet VMHVHostNode05B och lagrar sedan objektet i variabeln $VMHost.

Det slutliga kommandot använder direktmigrering för att flytta den virtuella datorn från VMHVHostNode05A till VMHVHostNode05B.

Exempel 6: Flytta en virtuell dator som körs på en Hyper-V-värd till en ny plats på samma värd

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

Det första kommandot lagrar strängen E:\VHD i $MoveVhdPath. Det här är den sökväg som den virtuella datorns virtuella hårddisk ska flyttas till.

Det andra kommandot hämtar det virtuella datorobjektet VM06 och lagrar sedan objektet $VM variabeln.

Det tredje kommandot hämtar värdobjektet VMHost06 och lagrar sedan objektet i variabeln $VMHost. I det här exemplet är VMHost06 en Hyper-V-värd.

Det fjärde kommandot lagrar strängen E:\VirtualMachinePath i variabeln $HostPath. Det här är sökvägen som du vill flytta VM06 för.

Det femte kommandot skapar en ny GUID-sträng och lagrar den i variabeln $JobGroupID. Detta GUID är ett jobbgrupps-ID som fungerar som en identifierare som grupperar efterföljande kommandon som inkluderar den här identifieraren i en enda jobbgrupp.

Det sjätte kommandot anger sökvägen till den virtuella hårddisken för värdet som lagras i $MoveVhdPath och ansluter den virtuella hårddisken till Bus 1 och LUN 1 på den virtuella IDE-styrenheten på den virtuella datorn. Det här kommandot anger parametern JobGroup så att den inte körs förrän Move-SCVirtualMachine utlöser körningen av kommandon i jobbgruppslistan.

Det senaste kommandot flyttar VM06 till E:\VirtualMachinePath på samma värd. Cmdleten körs Move-SCVirtualHardDisk som en del av $JobGroupID. Kommandot flyttar den virtuella hårddisken för den virtuella datorn till E:\VHD:n.

Parametrar

-BlockLiveMigrationIfHostBusy

Anger att cmdleten blockerar återförsök av en Hyper-V-direktmigrering om migreringen misslyckades eftersom källvärden eller målvärden redan deltar i en annan direktmigrering.

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

-DiscardSavedState

Anger att den här cmdleten tar bort det sparade tillståndet som är associerat med en virtuell dator eller tjänst.

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

-HighlyAvailable

Anger om en virtuell dator ska placeras på en Hyper-V-värd som ingår i ett värdkluster.

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

-JobGroup

Anger en identifierare för en serie kommandon som körs som en uppsättning precis innan det slutliga kommandot som innehåller samma jobbgruppsidentifierare körs.

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

-JobVariable

Anger namnet på en variabel för jobbstatus.

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

-OnBehalfOfUser

Anger ett användarnamn. Den här cmdleten fungerar för användarens räkning som den här parametern anger.

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

-OnBehalfOfUserRole

Anger en användarroll. Om du vill hämta en användarroll använder du cmdleten Get-SCUserRole . Den här cmdleten fungerar för den användarroll som den här parametern anger.

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

-Path

Anger sökvägen till den flyttade virtuella datorn.

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

-PROTipID

Anger ID för tipset prestanda- och resursoptimering (PRO-tips) som utlöste den här åtgärden. Med den här parametern kan du granska PRO-tips.

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

-ReplicationGroup

Anger en replikeringsgrupp.

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

-RunAsynchronously

Anger att jobbet körs asynkront så att kontrollen återgår till kommandogränssnittet omedelbart.

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

-StartVMOnTarget

Anger att en virtuell dator startar så snart den här cmdleten flyttar den till målvärden.

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

-UseCluster

Anger att den här cmdleten använder klustermigrering för överföring av en virtuell dator som är i ett sparat tillstånd till en värd, även om klustret stöder direktmigrering av Hyper-V.

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

-UseDiffDiskOptimization

Anger att cmdleten använder differentieringsdiskoptimering.

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

-UseLAN

Anger att denna cmdlet använder överföring över LAN även om en snabbare överföringsmekanism är tillgänglig.

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

-VM

Anger ett virtuellt datorobjekt.

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

-VMHost

Anger ett värdobjekt för en virtuell dator. VMM stöder Hyper-V-värdar, VMware ESX-värdar och Citrix XenServer-värdar.

Mer information om varje typ av värd finns i cmdleten Add-SCVMHost .

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

Utdata

VirtualMachine

Den här cmdleten returnerar ett VirtualMachine-objekt .