Flytta en virtuell dator från regional till zonindelad tillgänglighetszon med hjälp av Azure PowerShell och CLI
Den här artikeln beskriver hur du använder Azure PowerShell- och CLI-cmdletar för att flytta virtuella Azure-instanser från regionala till zonindelade tillgänglighetszoner. En tillgänglighetszon är en fysiskt separat zon i en Azure-region. Använd tillgänglighetszoner för att skydda dina appar och data från ett osannolikt fel eller förlust av ett helt datacenter.
Om du vill använda en tillgänglighetszon skapar du din virtuella dator i en Azure-region som stöds.
Förutsättningar
Kontrollera följande krav innan du påbörjar flyttprocessen:
Krav | Beskrivning |
---|---|
Prenumerationsbehörigheter | Se till att du har ägaråtkomst för prenumerationen som innehåller de resurser som du vill flytta. Hanterad identitet behöver följande behörigheter: – Behörighet att skriva eller skapa resurser i en användarprenumeration, tillgänglig med rollen Deltagare. – Behörighet att skapa rolltilldelningar. Är vanligtvis tillgängligt med rollerna Ägare eller Administratör för användaråtkomst, eller med en anpassad roll som har Microsoft.Authorization rolltilldelningarna eller skrivbehörigheten tilldelad. Den här behörigheten behövs inte om dataresursens hanterade identitet redan har beviljats åtkomst till Azure-datalagret. Läs mer om Azure-roller. |
Stöd för virtuella datorer | Granska de regioner som stöds. – Kontrollera inställningar för beräkning, lagring och nätverk som stöds. |
Hälsostatus för virtuell dator | De virtuella datorer som du vill flytta måste vara i ett felfritt tillstånd innan du försöker flytta zonindelningen. Se till att alla väntande omstarter och obligatoriska uppdateringar är slutförda och att den virtuella datorn fungerar och är i felfritt tillstånd innan du försöker flytta den virtuella datorns zonindelning. |
Granska Kraven för PowerShell och CLI
De flesta åtgärder för att flytta resurser är desamma oavsett om du använder Azure Portal eller PowerShell eller CLI, med ett par undantag.
Åtgärd | Portalen | PowerShell/CLI |
---|---|---|
Skapa en flyttsamling | En flyttsamling (en lista över alla regionala virtuella datorer som du flyttar) skapas automatiskt. Nödvändiga identitetsbehörigheter tilldelas i serverdelen av portalen. | Du kan använda PowerShell-cmdletar eller CLI-cmdletar för att: – Tilldela en hanterad identitet till samlingen. – Lägg till regionala virtuella datorer i samlingen. |
Åtgärder för resursflytt | Verifiera steg och verifierar ändringar i användarinställningen. Initiera flytt startar flyttprocessen och skapar en kopia av den virtuella källdatorn i målzonen. Den slutför också flytten av den nyligen skapade virtuella datorn i målzonen. | PowerShell-cmdletar eller CLI-cmdletar för att: – Lägga till regionala virtuella datorer i samlingen – Lösa beroenden - Utför flytten. - Checka in flytten. |
Exempelvärden
Vi använder dessa värden i våra skriptexempel:
Inställning | Värde |
---|---|
Prenumerations-ID:t | prenumerations-ID |
Flytta region | USA, östra |
Resursgrupp (med metadata för flyttinsamling) | RegionToZone-DemoMCRG |
Flytta samlingsnamn | RegionToZone-DemoMC |
Plats för flyttsamlingen | eastus2euap |
IdentityType | SystemAssigned |
VM-namn | demoVM-MoveResource |
Flytta typ | RegionToZone |
Logga in på Azure
Logga in på din Azure-prenumeration med kommandot Connect-AzAccount
och följ anvisningarna på skärmen.
Connect-AzAccount –Subscription "<subscription-id>"
Konfigurera flyttsamlingen
MoveCollection-objektet lagrar metadata och konfigurationsinformation om de resurser som du vill flytta. Gör följande för att konfigurera en flyttsamling:
- Skapa en resursgrupp för flyttsamlingen.
- Registrera tjänstleverantören i prenumerationen så att MoveCollection-resursen kan skapas.
- Skapa MoveCollection-objektet med hanterad identitet. För att MoveCollection-objektet ska få åtkomst till prenumerationen där Resource Mover-tjänsten finns behöver det en systemtilldelad hanterad identitet (tidigare kallad Hanterad tjänstidentitet (MSI)) som är betrodd av prenumerationen.
- Bevilja åtkomst till Resource Mover-prenumerationen för den hanterade identiteten.
Skapa resursgruppen
Använd följande cmdlet för att skapa en resursgrupp för flyttsamlingens metadata och konfigurationsinformation med New-AzResourceGroup. En resursgrupp är en logisk container där Azure-resurser distribueras och hanteras.
New-AzResourceGroup -Name "RegionToZone-DemoMCRG" -Location "EastUS"
Utdata:
Utdata visar att de hanterade diskarna är i samma tillgänglighetszon som den virtuella datorn:
ResourceGroupName : RegionToZone-DemoMCRG
Location : eastus
ProvisioningState : Succeeded
Tags :
Name Value
======= ========
Created 20230908
ResourceId : /subscriptions/<Subscription-id>/resourceGroups/RegionToZone-DemoMCRG
Registrera resursprovidern
Registrera resursprovidern Microsoft.Migrate så att MoveCollection-resursen kan skapas på följande sätt:
Register-AzResourceProvider -ProviderNamespace Microsoft.Migrate
Vänta på registrering:
While(((Get-AzResourceProvider -ProviderNamespace Microsoft.Migrate)| where {$_.RegistrationState -eq "Registered" -and $_.ResourceTypes.ResourceTypeName -eq "moveCollections"}|measure).Count -eq 0) { Start-Sleep -Seconds 5 Write-Output "Waiting for registration to complete." }
Skapa ett MoveCollection-objekt
Skapa ett MoveCollection-objekt och tilldela en hanterad identitet till det på följande sätt:
New-AzResourceMoverMoveCollection -Name "RegionToZone-DemoMC" -ResourceGroupName "RegionToZone-DemoMCRG" -MoveRegion "eastus" -Location "eastus2euap" -IdentityType "SystemAssigned" -MoveType "RegionToZone"
Utdata:
Etag Location Name
---- -------- ----
"3a00c441-0000-3400-0000-64fac1b30000" eastus2euap RegionToZone-DemoMC
Kommentar
För regional till zonindelad flytt ska parametern MoveType
anges som RegionToZone och MoveRegion
parametern ska anges som den plats där resurser som genomgår zonindelning finns. Kontrollera att parametrarna SourceRegion
och TargetRegion
inte krävs och ska vara inställda på null.
Bevilja åtkomst till den hanterade identiteten
Ge den hanterade identiteten åtkomst till Resource Mover-prenumerationen på följande sätt. Du måste vara prenumerationsägare.
Hämta identitetsinformation från MoveCollection-objektet.
$moveCollection = Get-AzResourceMoverMoveCollection -Name "RegionToZone-DemoMC" -ResourceGroupName "RegionToZone-DemoMCRG" $identityPrincipalId = $moveCollection.IdentityPrincipalId
Tilldela de roller som krävs till identiteten så att Azure Resource Mover kan komma åt din prenumeration för att hjälpa till att flytta resurser. Granska listan över nödvändiga behörigheter för flytten.
New-AzRoleAssignment -ObjectId $identityPrincipalId -RoleDefinitionName Contributor -Scope "/subscriptions/<subscription-id>"" New-AzRoleAssignment -ObjectId $identityPrincipalId -RoleDefinitionName "User Access Administrator" -Scope "/subscriptions/<subscription-id>"
Lägga till regionala virtuella datorer i flyttsamlingen
Hämta ID:t för befintliga källresurser som du vill flytta. Skapa målresursinställningsobjektet och lägg sedan till resurser i flyttsamlingen.
Kommentar
Resurser som läggs till i en flyttsamling måste finnas i samma prenumeration men kan finnas i olika resursgrupper.
Skapa målresursinställningsobjekt på följande sätt:
$targetResourceSettingsObj = New-Object Microsoft.Azure.PowerShell.Cmdlets.ResourceMover.Models.Api20230801.VirtualMachineResourceSettings $targetResourceSettingsObj.ResourceType = "Microsoft.Compute/virtualMachines" $targetResourceSettingsObj.TargetResourceName = "RegionToZone-demoTargetVm" $targetResourceSettingsObj.TargetAvailabilityZone = "2"
Output
ResourceType TargetResourceGroupName TargetResourceName TargetAvailabilitySetId TargetAvailabilityZone TargetVMSize UserManagedIdentity ------------ ----------------------- ------------------ ----------------------- ---------------------- ------------ ------------------- Microsoft.Compute/virtualMachines RegionToZone-demoTargetVm 2
Lägg till resurser
Add-AzResourceMoverMoveResource -ResourceGroupName "RegionToZone-DemoMCRG" -MoveCollectionName "RegionToZone-DemoMC" -SourceId "/subscriptions/<Subscription-id>/resourcegroups/PS-demo-RegionToZone-RG/providers/Microsoft.Compute/virtualMachines/RegionToZone-demoSourceVm" -Name "demoVM-MoveResource" -ResourceSetting $targetResourceSettingsObj
Output
DependsOn : {} DependsOnOverride : {} ErrorsPropertiesCode : ErrorsPropertiesDetail : ErrorsPropertiesMessage : ErrorsPropertiesTarget : ExistingTargetId : Id : /subscriptions/<Subscription-id>/resourceGroups/RegionToZone-DemoMCRG/providers/Microsoft.Migrate/moveCollections/Re gionToZone-DemoMC/moveResources/demoVM-MoveResource IsResolveRequired : False JobStatusJobName : JobStatusJobProgress : MoveStatusErrorsPropertiesCode : DependencyComputationPending MoveStatusErrorsPropertiesDetail : {} MoveStatusErrorsPropertiesMessage : The dependency computation is not completed for resource - /subscriptions/<Subscription-id>/resourcegroups/PS-demo-R egionToZone-RG/providers/Microsoft.Compute/virtualMachines/RegionToZone-demoSourceVm'. Possible Causes: Dependency computation is pending for resource. Recommended Action: Validate dependencies to compute the dependencies. MoveStatusErrorsPropertiesTarget : MoveStatusMoveState : MovePending Name : demoVM-MoveResource ProvisioningState : Succeeded ResourceSetting : Microsoft.Azure.PowerShell.Cmdlets.ResourceMover.Models.Api20230801.VirtualMachineResourceSettings SourceId : /subscriptions/<Subscription-id>/resourcegroups/PS-demo-RegionToZone-RG/providers/Microsoft.Compute/virtualMachines/ RegionToZone-demoSourceVm SourceResourceSetting : Microsoft.Azure.PowerShell.Cmdlets.ResourceMover.Models.Api20230801.VirtualMachineResourceSettings SystemDataCreatedAt : 9/8/2023 6:48:11 AM SystemDataCreatedBy : xxxxx@microsoft.com SystemDataCreatedByType : User SystemDataLastModifiedAt : 9/8/2023 6:48:11 AM SystemDataLastModifiedBy : xxxxx@microsoft.com SystemDataLastModifiedByType : User TargetId : Type :
Ändra inställningar
Du kan ändra målinställningarna när du flyttar virtuella Azure-datorer och associerade resurser. Vi rekommenderar att du bara ändrar målinställningarna innan du verifierar flyttsamlingen.
Inställningar som du kan ändra är:
- Inställningar för virtuell dator: Resursgrupp, VM-namn, VM-tillgänglighetszon, VM SKU, VM-nyckelvalv och Diskkrypteringsuppsättning.
- Nätverksresursinställningar: För nätverksgränssnitt, virtuella nätverk (VNet/) och nätverkssäkerhetsgrupper/nätverksgränssnitt kan du antingen:
- Använd en befintlig nätverksresurs i målregionen.
- Skapa en ny resurs med ett annat namn.
- Offentlig IP/lastbalanserare: SKU och zon
Ändra inställningarna på följande sätt:
Hämta flyttresursen som du vill redigera egenskaper för. Om du till exempel vill hämta en virtuell dator kör du:
$moveResourceObj = Get-AzResourceMoverMoveResource -MoveCollectionName " RegionToZone-DemoMCRG " -ResourceGroupName " RegionToZone-DemoMC " -Name "PSDemoVM"
Kopiera resursinställningen till ett målresursinställningsobjekt.
$TargetResourceSettingObj = $moveResourceObj.ResourceSetting
Ange parametern i målresursinställningsobjektet. Om du till exempel vill ändra namnet på den virtuella måldatorn:
$TargetResourceSettingObj.TargetResourceName="PSDemoVM-target"
Uppdatera inställningarna för flyttresursens mål. I det här exemplet ändrar vi namnet på den virtuella datorn från PSDemoVM till PSDemoVMTarget.
Update-AzResourceMoverMoveResource -ResourceGroupName " RegionToZone-DemoMCRG " -MoveCollectionName " RegionToZone-DemoMC -SourceId "/subscriptions/<Subscription-d>/resourceGroups/PSDemoRM/providers/Microsoft.Compute/virtualMachines/PSDemoVM" -Name "PSDemoVM" -ResourceSetting $TargetResourceSettingObj
Lösa beroenden
Kontrollera om de regionala virtuella datorer som du har lagt till har några beroenden för andra resurser och lägg till efter behov.
Lös beroenden på följande sätt:
Resolve-AzResourceMoverMoveCollectionDependency -ResourceGroupName "RegionToZone-DemoMCRG" -MoveCollectionName "RegionToZone-DemoMC"
Utdata (när beroenden finns)
AdditionalInfo : Code : Detail : EndTime : EndTime : 9/8/2023 6:52:14 AM Id : /subscriptions/<Subscription-id>/resourceGroups/RegionToZone-DemoMCRG/providers/Microsoft.Migrate/moveCollections/RegionToZone-DemoMC/operations/bc68354b-ec1f-44cb-92ab-fb3b4ad90229 Message : Name : bc68354b-ec1f-44cb-92ab-fb3b4ad90229 Property : Microsoft.Azure.PowerShell.Cmdlets.ResourceMover.Models.Any StartTime : 9/8/2023 6:51:50 AM Status : Succeeded
Så här hämtar du en lista över resurser som lagts till i flyttsamlingen:
$list = Get-AzResourceMoverMoveResource -ResourceGroupName "RegionToZone-DemoMCRG" -MoveCollectionName "RegionToZone-DemoMC" $list.Name
Utdata:
demoVM-MoveResource mr_regiontozone-demosourcevm661_d6f18900-3b87-4fb5-9bdf-12da2f9fb185 mr_regiontozone-demosourcevm-vnet_d8536bf5-2d5f-4778-9650-32d0570bc41a mr_regiontozone-demosourcevm-ip_6af03f1f-eae8-4541-83f5-97a2506cfc3e mr_regiontozone-demosourcevm-nsg_98d68420-d7ff-4e2d-b758-25a6df80fca7 mr_nrms-timkbo3hy3nnmregiontozone-demosourcevm-vnet_f474c880-4823-4ed3-b761-96df6500f6a3
Följ de här anvisningarna om du vill ta bort resurser från resurssamlingen.
Tillgänglighetszoner VM SKU, kvot och kapacitetsvalidering
Azure ger rekommendationer när den valda tillgänglighetszonen inte har den virtuella datorns SKU, eller när det inte finns tillräckligt med kvot eller kapacitet tillgänglig. Här är några exempel på dessa rekommendationer och de åtgärder som bör vidtas om den virtuella datorns SKU inte är tillgänglig.
VM-SKU:n är inte tillgänglig
När den virtuella källdatorns storlek Standard_DC1ds_v3
inte är tillgänglig i den valda tillgänglighetszonen 1
.
Rekommenderad åtgärd: Välj en annan storlek på den virtuella datorn i samma tillgänglighetszon eller välj en annan tillgänglighetszon med motsvarande rekommenderad VM-storlek.
Rekommendationer:
- SKU: Standard_DC1ds_v3, zoner: [ 2 ]
- SKU: Standard_DC2ds_v3, zoner: [ 2 ]
- SKU: Standard_DC4ds_v3, zoner: [ 2 ]
- SKU: Standard_DC1s_v3, zoner: [ 2 ]
- SKU: Standard_D2ds_v5, zoner: [ 2, 3 ]
- SKU: Standard_D2as_v4, zoner: [ 1, 2, 3 ]
- SKU: Standard_D2s_v3, zoner: [ 1, 2, 3 ]
- SKU: Standard_D2as_v5, zoner: [ 1, 2, 3 ]
- SKU: Standard_D2s_v5, Zoner: [ 2, 3 ]
Kapacitetsrekommendationer
Kapacitetsrekommendationer för den aktuella urvalsstorleken Standard_DC1ds_v3
för virtuella datorer i den valda tillgänglighetszonen 1
.
Rekommenderad åtgärd: För att öka sannolikheten för en lyckad distribution har Azure identifierat andra rekommenderade storlekar och zoner för virtuella datorer. Om du vill distribuera sömlöst väljer du en annan VM-storlek i samma tillgänglighetszon eller en annan tillgänglighetszon med motsvarande storlek på virtuella datorer.
Rekommendationer:
- SKU: Standard_DC1ds_v3, zoner: [ 2 ]
- SKU: Standard_DC2ds_v3, zoner: [ 2 ]
- SKU: Standard_DC4ds_v3, zoner: [ 2 ]
- SKU: Standard_DC1s_v3, zoner: [ 2 ]
- SKU: Standard_D2ds_v5, zoner: [ 2, 3 ]
- SKU: Standard_D2as_v4, zoner: [ 1, 2, 3 ]
- SKU: Standard_D2s_v3, zoner: [ 1, 2, 3 ]
- SKU: Standard_D2as_v5, zoner: [ 1, 2, 3 ]
- SKU: Standard_D2s_v5, Zoner: [ 2, 3 ]
Åtgärda rekommendationerna
Om du vill hantera situationer där den virtuella datorns SKU inte hittas eller om det finns ett kapacitetsproblem uppdaterar du flyttresursen och kör sedan lös igen. Här är ett exempel på referens:
Uppdatera den virtuella datorn och flytta resursobjektet till den nya zonen eller SKU:n enligt rekommendationerna.
$targetResourceSettingsObj.TargetVmSize = "Standard_DC1ds_v3" $targetResourceSettingsObj.TargetAvailabilityZone = "3"
Uppdatera flyttresurs för virtuella datorer
Add-AzResourceMoverMoveResource -ResourceGroupName "RegionToZone-DemoMCRG" -MoveCollectionName "RegionToZone-DemoMC" -SourceId "/subscriptions/<Subscription ID>/resourceGroups/<Resource Group Name>/providers/Microsoft.Compute/virtualMachines/vmtwo" -Name "demoVM-MoveResource2" -ResourceSetting $targetResourceSettingsObj
Kör matchning igen
Resolve-AzResourceMoverMoveCollectionDependency -ResourceGroupName "RegionToZone-DemoMCRG" -MoveCollectionName "RegionToZone-DemoMC"
Otillräcklig kvot
Den valda virtuella datorn kan inte flyttas till tillgänglighetszonen på grund av otillräcklig kvot.
Rekommenderad åtgärd: Otillräcklig kvot hittades. Se länk och kontakta supporten.
Initiera flytt av VM-resurser
Invoke-AzResourceMoverInitiateMove -ResourceGroupName "RegionToZone-DemoMCRG" -MoveCollectionName "RegionToZone-DemoMC" -MoveResource $("demoVM-MoveResource") -MoveResourceInputType "MoveResourceId"
Output
AdditionalInfo :
Code :
Detail :
EndTime : 9/8/2023 7:07:58 AM
Id : /subscriptions/<Subscription-id>/resourceGroups/RegionToZone-DemoMCRG/providers/Microsoft.Migrate/moveCollections/RegionToZone-DemoMC/o
perations/d3e06ac3-a961-4045-8301-aee7f6911160
Message :
Name : d3e06ac3-a961-4045-8301-aee7f6911160
Property : Microsoft.Azure.PowerShell.Cmdlets.ResourceMover.Models.Any
StartTime : 9/8/2023 7:01:31 AM
Status : Succeeded
Checka in
Efter den första flytten måste du checka in flytten eller ignorera den. Incheckningen slutför flytten till målregionen.
Genomför flytten på följande sätt:
Invoke-AzResourceMover-VMZonalMoveCommit -ResourceGroupName "RG-MoveCollection-demoRMS" -MoveCollectionName "PS-centralus-westcentralus-demoRMS" -MoveResource $('psdemovm111', 'PSDemoRM-vnet','PSDemoVM-nsg', ‘PSDemoVM’) -MoveResourceInputType "MoveResourceId"
Utdata:
AdditionalInfo :
Code :
Detail :
EndTime : 9/22/2023 5:26:55 AM
Id : /subscriptions/e80eb9fa-c996-4435-aa32-5af6f3d3077c/resourceGroups/RegionToZone-DemoMCRG/providers/Microsoft.Migrate/moveCollections/RegionToZone-DemoMC/operations/35dd1d93-ba70-4dc9-a17f-7d8ba48678d8
Message :
Name : 35dd1d93-ba70-4dc9-a17f-7d8ba48678d8
Property : Microsoft.Azure.PowerShell.Cmdlets.ResourceMover.Models.Any
StartTime : 9/22/2023 5:26:54 AM
Status : Succeeded
Ta bort en resurs
Du kan ta bort en enskild resurs eller flera resurser från en MoveCollection
med hjälp av följande cmdletar:
Hämta en lista över de flyttresurser som läggs till i flyttsamlingen:
$list = Get-AzResourceMoverMoveResource -ResourceGroupName "<MoveCollectionResourceGroupName>" -MoveCollectionName "<MoveCollectionName>"
Ta bort flyttresurserna som du hittade:
Invoke-AzResourceMoverBulkRemove -ResourceGroupName "<MoveCollectionResourceGroupName>" -MoveCollectionName "<MoveCollectionName>" -MoveResource $($list.Name)
Ta bort flyttsamlingen:
Remove-AzResourceMoverMoveCollection -ResourceGroupName "<MoveCollectionResourceGroupName>" -MoveCollectionName "<MoveCollectionName>"
Kommentar
Om du ser problem med auktorisering av hanterade identiteter aktiverar du åtkomsten till hanterade identiteter igen genom att följa dessa steg igen.
Ta bort regionala källdatorer
När du checkar in flytten och kontrollerar att resurserna fungerar som förväntat i målregionen kan du ta bort varje källresurs med hjälp av:
Nästa steg
Lär dig hur du flyttar virtuella Azure-instanser från regional till zonindelad konfiguration via portalen.