Een virtuele machine verplaatsen van regionale naar zonegebonden beschikbaarheid met behulp van Azure PowerShell en CLI
In dit artikel vindt u informatie over het gebruik van Azure PowerShell- en CLI-cmdlets om vm's met één exemplaar van Azure te verplaatsen van regionale naar zonegebonden beschikbaarheidszones. Een beschikbaarheidszone is een fysiek afgescheiden zone in een Azure-regio. Gebruik beschikbaarheidszones om uw apps en gegevens te beschermen tegen een onwaarschijnlijke fout of verlies van een volledig datacenter.
Als u een beschikbaarheidszone wilt gebruiken, maakt u een virtuele machine in een ondersteunde Azure-regio.
Vereisten
Controleer de volgende vereisten voordat u het verplaatsingsproces start:
Vereiste | Beschrijving |
---|---|
Abonnementsmachtigingen | Zorg ervoor dat u eigenaarstoegang hebt voor het abonnement met de resources die u wilt verplaatsen. Beheerde identiteit heeft deze machtigingen nodig: - Machtiging voor het schrijven of maken van resources in het gebruikersabonnement, beschikbaar met de rol Inzender. - Machtiging voor het maken van roltoewijzingen. Doorgaans beschikbaar met de rollen Eigenaar of Beheerder voor gebruikerstoegang, of met een aangepaste rol waaraan de Microsoft.Authorization roltoewijzingen of schrijfmachtigingen zijn toegewezen. Deze machtiging is niet nodig als de beheerde identiteit van de gegevensshareresource al toegang tot de Azure-gegevensopslag heeft gekregen. Meer informatie over rollen in Azure. |
VM-ondersteuning | Bekijk de ondersteunde regio's. - Controleer de ondersteunde reken-, opslag- en netwerkinstellingen . |
Status van VM | De VM's die u wilt verplaatsen, moeten in orde zijn voordat u de zonegebonden verplaatsing probeert uit te voeren. Zorg ervoor dat alle in behandeling zijnde herstarts en verplichte updates zijn voltooid en dat de virtuele machine werkt en in orde is voordat u de zonegebonden verplaatsing van de VIRTUELE machine probeert uit te voeren. |
Vereisten voor PowerShell en CLI controleren
De meeste verplaatsingsresourcebewerkingen zijn hetzelfde, ongeacht of u Azure Portal of PowerShell of CLI gebruikt, met een aantal uitzonderingen.
Notitie
Raadpleeg deze pagina voor meer informatie over de opdrachten en de bijbehorende syntaxis.
Operation | Portal | PowerShell/CLI |
---|---|---|
Een verplaatsingsverzameling maken | Er wordt automatisch een verzameling verplaatsingen (een lijst met alle regionale VM's die u verplaatst) gemaakt. Vereiste identiteitsmachtigingen worden door de portal toegewezen in de back-end. | U kunt PowerShell-cmdlets of CLI-cmdlets gebruiken om: - Wijs een beheerde identiteit toe aan de verzameling. - Regionale VM's toevoegen aan de verzameling. |
Verplaatsingsbewerkingen voor resources | Valideer stappen en valideert de wijzigingen in de gebruikersinstelling . Initieer verplaatsing start het verplaatsingsproces en maakt een kopie van de bron-VM in de doelzone. Ook wordt de verplaatsing van de zojuist gemaakte VM in de doelzone voltooid. | PowerShell-cmdlets of CLI-cmdlets voor: - Regionale VM's toevoegen aan de verzameling - Afhankelijkheden oplossen - Voer de verplaatsing uit. - Voer de verplaatsing door. |
Voorbeeldwaarden
We gebruiken deze waarden in onze scriptvoorbeelden:
Instelling | Weergegeven als |
---|---|
Abonnements-id | subscription-id |
Regio verplaatsen | VS - oost |
Resourcegroep (met metagegevens voor verplaatsingsverzameling) | RegionToZone-DemoMCRG |
Naam van verzameling verplaatsen | RegionToZone-DemoMC |
Locatie van de verplaatsingsverzameling | eastus2euap |
IdentityType | SystemAssigned |
VM-naam | demoVM-MoveResource |
Type verplaatsing | RegionToZone |
Aanmelden bij Azure
Meld u aan bij uw Azure-abonnement met de opdracht Connect-AzAccount
en volg de instructies op het scherm.
Abonnements-id instellen:
Set-AzContext -SubscriptionId " <subscription-id> "
Verbinding maken met abonnements-id:
Connect-AzAccount –Subscription "<subscription-id>"
De verplaatsingsverzameling instellen
In het Object MoveCollection worden metagegevens en configuratiegegevens opgeslagen over de resources die u wilt verplaatsen. Ga als volgt te werk om een verplaatsingsverzameling in te stellen:
- Maak een resourcegroep voor de verplaatsingsverzameling.
- Registreer de serviceprovider bij het abonnement, zodat de MoveCollection-resource kan worden gemaakt.
- Maak het MoveCollection-object met beheerde identiteit. Voor het MoveCollection-object om toegang te krijgen tot het abonnement waarin de Resource Mover-service zich bevindt, heeft het een door het systeem toegewezen beheerde identiteit (voorheen bekend als Managed Service Identity (MSI)) nodig die wordt vertrouwd door het abonnement.
- Verdeel toegang tot het Resource Mover-abonnement voor de beheerde identiteit.
De resourcegroep maken
Gebruik de volgende cmdlet om een resourcegroep te maken voor de metagegevens en configuratiegegevens van de verzameling verplaatsen met New-AzResourceGroup. Een resourcegroep is een logische container waarin Azure-resources worden geïmplementeerd en beheerd.
New-AzResourceGroup -Name "RegionToZone-DemoMCRG" -Location "EastUS"
Uitvoer:
In de uitvoer ziet u dat de beheerde schijf zich in dezelfde beschikbaarheidszone bevindt als de virtuele machine:
ResourceGroupName : RegionToZone-DemoMCRG
Location : eastus
ProvisioningState : Succeeded
Tags :
Name Value
======= ========
Created 20230908
ResourceId : /subscriptions/<Subscription-id>/resourceGroups/RegionToZone-DemoMCRG
De resourceprovider registreren
Registreer de resourceprovider Microsoft.Migrate, zodat de MoveCollection-resource als volgt kan worden gemaakt:
Register-AzResourceProvider -ProviderNamespace Microsoft.Migrate
Wacht op registratie:
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." }
Een MoveCollection-object maken
Maak een MoveCollection-object en wijs er als volgt een beheerde identiteit aan toe:
New-AzResourceMoverMoveCollection -Name "RegionToZone-DemoMC" -ResourceGroupName "RegionToZone-DemoMCRG" -MoveRegion "eastus" -Location "eastus2euap" -IdentityType "SystemAssigned" -MoveType "RegionToZone"
Uitvoer:
Etag Location Name
---- -------- ----
"3a00c441-0000-3400-0000-64fac1b30000" eastus2euap RegionToZone-DemoMC
Notitie
Voor regionale naar zonegebonden verplaatsing moet de MoveType
parameter worden ingesteld als RegionToZone en MoveRegion
de parameter moet worden ingesteld als de locatie waar resources zich in de zonegebonden verplaatsing bevinden. Zorg ervoor dat de parameters SourceRegion
niet vereist zijn en TargetRegion
moet worden ingesteld op null.
Toegang verlenen tot de beheerde identiteit
Verdeel de beheerde identiteit als volgt toegang tot het Resource Mover-abonnement. U moet de eigenaar van het abonnement zijn.
Identiteitsgegevens ophalen uit het MoveCollection-object.
$moveCollection = Get-AzResourceMoverMoveCollection -Name "RegionToZone-DemoMC" -ResourceGroupName "RegionToZone-DemoMCRG" $identityPrincipalId = $moveCollection.IdentityPrincipalId
Wijs de vereiste rollen toe aan de identiteit, zodat Azure Resource Mover toegang heeft tot uw abonnement om resources te verplaatsen. Bekijk de lijst met vereiste machtigingen voor de verplaatsing.
New-AzRoleAssignment -ObjectId $identityPrincipalId -RoleDefinitionName Contributor -Scope "/subscriptions/<subscription-id>" New-AzRoleAssignment -ObjectId $identityPrincipalId -RoleDefinitionName "User Access Administrator" -Scope "/subscriptions/<subscription-id>"
Regionale VM's toevoegen aan de verplaatsingsverzameling
Haal de id's op voor bestaande bronbronnen die u wilt verplaatsen. Maak het doelresource-instellingenobject en voeg vervolgens resources toe aan de verplaatsingsverzameling.
Notitie
Resources die zijn toegevoegd aan een verplaatsingsverzameling, moeten zich in hetzelfde abonnement bevinden, maar kunnen zich in verschillende resourcegroepen bevinden.
Maak het doelresource-instellingsobject als volgt:
$targetResourceSettingsObj = New-Object Microsoft.Azure.PowerShell.Cmdlets.ResourceMover.Models.Api20230801.VirtualMachineResourceSettings $targetResourceSettingsObj.ResourceType = "Microsoft.Compute/virtualMachines" $targetResourceSettingsObj.TargetResourceName = "RegionToZone-demoTargetVm" $targetResourceSettingsObj.TargetAvailabilityZone = "2"
Uitvoer
ResourceType TargetResourceGroupName TargetResourceName TargetAvailabilitySetId TargetAvailabilityZone TargetVMSize UserManagedIdentity ------------ ----------------------- ------------------ ----------------------- ---------------------- ------------ ------------------- Microsoft.Compute/virtualMachines RegionToZone-demoTargetVm 2
Resources toevoegen
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
Uitvoer
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 :
Instellingen wijzigen
U kunt doelinstellingen wijzigen bij het verplaatsen van Virtuele Azure-machines en bijbehorende resources. U wordt aangeraden alleen doelinstellingen te wijzigen voordat u de verplaatsingsverzameling valideert.
Instellingen die u kunt wijzigen, zijn:
- Instellingen voor virtuele machines: resourcegroep, VM-naam, VM-beschikbaarheidszone, VM-SKU, VM-sleutelkluis en schijfversleutelingsset.
- Netwerkresource-instellingen: Voor netwerkinterfaces, virtuele netwerken (VNets/) en netwerkbeveiligingsgroepen/netwerkinterfaces kunt u het volgende doen:
- Gebruik een bestaande netwerkresource in de doelregio.
- Maak een nieuwe resource met een andere naam.
- Openbaar IP/load balancer: SKU en zone
Wijzig de instellingen als volgt:
Haal de verplaatsingsresource op waarvoor u eigenschappen wilt bewerken. Bijvoorbeeld om een VM-uitvoering op te halen:
$moveResourceObj = Get-AzResourceMoverMoveResource -MoveCollectionName " RegionToZone-DemoMCRG " -ResourceGroupName " RegionToZone-DemoMC " -Name "PSDemoVM"
Kopieer de resource-instelling naar een doelresource-instellingsobject.
$TargetResourceSettingObj = $moveResourceObj.ResourceSetting
Stel de parameter in het doelresource-instellingsobject in. Als u bijvoorbeeld de naam van de doel-VM wilt wijzigen:
$TargetResourceSettingObj.TargetResourceName="PSDemoVM-target"
Werk de doelinstellingen voor het verplaatsen van resources bij. In dit voorbeeld wijzigen we de naam van de VIRTUELE machine van PSDemoVM in PSDemoVMTarget.
Update-AzResourceMoverMoveResource -ResourceGroupName " RegionToZone-DemoMCRG " -MoveCollectionName " RegionToZone-DemoMC -SourceId "/subscriptions/<Subscription-d>/resourceGroups/PSDemoRM/providers/Microsoft.Compute/virtualMachines/PSDemoVM" -Name "PSDemoVM" -ResourceSetting $TargetResourceSettingObj
Afhankelijkheden oplossen
Controleer of de regionale VM's die u hebt toegevoegd, afhankelijk zijn van andere resources en voeg indien nodig toe.
Los afhankelijkheden als volgt op:
Resolve-AzResourceMoverMoveCollectionDependency -ResourceGroupName "RegionToZone-DemoMCRG" -MoveCollectionName "RegionToZone-DemoMC"
Uitvoer (wanneer afhankelijkheden bestaan)
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
Een lijst met resources ophalen die zijn toegevoegd aan de verplaatsingsverzameling:
$list = Get-AzResourceMoverMoveResource -ResourceGroupName "RegionToZone-DemoMCRG" -MoveCollectionName "RegionToZone-DemoMC"
$list.Name
Uitvoer:
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
Volg deze instructies om resources uit de resourceverzameling te verwijderen.
Beschikbaarheidszones VM-SKU, quotum- en capaciteitsvalidaties
Azure biedt aanbevelingen wanneer de geselecteerde beschikbaarheidszone niet beschikt over de SKU van de virtuele machine of wanneer er onvoldoende quotum of capaciteit beschikbaar is. Hier volgen enkele voorbeelden van deze aanbevelingen en de acties die moeten worden uitgevoerd als de SKU van de virtuele machine niet beschikbaar is.
VM-SKU niet beschikbaar
Wanneer de grootte Standard_DC1ds_v3
van de virtuele bronmachine niet beschikbaar is in de geselecteerde beschikbaarheidszone 1
.
Aanbevolen actie: kies een andere grootte van de virtuele machine in dezelfde beschikbaarheidszone of selecteer een andere beschikbaarheidszone met de bijbehorende aanbevolen VM-grootte.
Aanbevelingen:
- SKU: Standard_DC1ds_v3, Zones: [ 2 ]
- SKU: Standard_DC2ds_v3, Zones: [ 2 ]
- SKU: Standard_DC4ds_v3, Zones: [ 2 ]
- SKU: Standard_DC1s_v3, Zones: [ 2 ]
- SKU: Standard_D2ds_v5, Zones: [ 2, 3 ]
- SKU: Standard_D2as_v4, Zones: [ 1, 2, 3 ]
- SKU: Standard_D2s_v3, Zones: [ 1, 2, 3 ]
- SKU: Standard_D2as_v5, Zones: [ 1, 2, 3 ]
- SKU: Standard_D2s_v5, Zones: [ 2, 3 ]
Aanbevelingen voor capaciteit
Aanbevelingen voor capaciteit voor de huidige grootte van de virtuele selectiemachine Standard_DC1ds_v3
in de geselecteerde beschikbaarheidszone 1
.
Aanbevolen actie: Om de kans op een geslaagde implementatie te vergroten, heeft Azure andere aanbevolen grootten en zones van virtuele machines geïdentificeerd. Als u naadloos wilt implementeren, kiest u een andere VM-grootte in dezelfde beschikbaarheidszone of een andere beschikbaarheidszone met de bijbehorende grootte van de virtuele machine.
Aanbevelingen:
- SKU: Standard_DC1ds_v3, Zones: [ 2 ]
- SKU: Standard_DC2ds_v3, Zones: [ 2 ]
- SKU: Standard_DC4ds_v3, Zones: [ 2 ]
- SKU: Standard_DC1s_v3, Zones: [ 2 ]
- SKU: Standard_D2ds_v5, Zones: [ 2, 3 ]
- SKU: Standard_D2as_v4, Zones: [ 1, 2, 3 ]
- SKU: Standard_D2s_v3, Zones: [ 1, 2, 3 ]
- SKU: Standard_D2as_v5, Zones: [ 1, 2, 3 ]
- SKU: Standard_D2s_v5, Zones: [ 2, 3 ]
De aanbevelingen aanpakken
Als u de situaties wilt oplossen waarin de VM-SKU niet wordt gevonden of er een capaciteitsprobleem is, werkt u de verplaatsingsresource bij en voert u de oplossing opnieuw uit. Hier volgt een voorbeeld voor naslaginformatie:
Werk het resourceobject van de virtuele machine bij naar een nieuwe zone of SKU volgens de aanbevelingen.
$targetResourceSettingsObj.TargetVmSize = "Standard_DC1ds_v3" $targetResourceSettingsObj.TargetAvailabilityZone = "3"
Resource verplaatsen van virtuele machine bijwerken
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
Oplossen opnieuw uitvoeren
Resolve-AzResourceMoverMoveCollectionDependency -ResourceGroupName "RegionToZone-DemoMCRG" -MoveCollectionName "RegionToZone-DemoMC"
Onvoldoende quotum
De geselecteerde virtuele machine kan niet worden verplaatst naar de beschikbaarheidszone vanwege onvoldoende quotum.
Aanbevolen actie: Onvoldoende quotum gevonden. Raadpleeg de koppeling en neem contact op met de ondersteuning.
Verplaatsing van VM-resources initiëren
Invoke-AzResourceMoverInitiateMove -ResourceGroupName "RegionToZone-DemoMCRG" -MoveCollectionName "RegionToZone-DemoMC" -MoveResource $("demoVM-MoveResource") <remove-MoveResourceInputType "MoveResourceId">
Uitvoer
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
Doorvoeren
Na de eerste verplaatsing moet u de verplaatsing doorvoeren of verwijderen. Doorvoering voltooit de verplaatsing naar de doelregio.
Voer de verplaatsing als volgt uit:
Invoke-AzResourceMoverCommit "RegionToZone-DemoMCRG" -MoveCollectionName "RegionToZone-DemoMC" -MoveResource $("demoVM-MoveResource")
Uitvoer:
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
Een resource verwijderen
U kunt één resource of meerdere resources verwijderen uit een MoveCollection
resource met behulp van de volgende cmdlets:
Haal een lijst op met de verplaatsingsbronnen die worden toegevoegd aan de verplaatsingsverzameling:
$list = Get-AzResourceMoverMoveResource -ResourceGroupName "<MoveCollectionResourceGroupName>" -MoveCollectionName "<MoveCollectionName>"
Verwijder de resources voor verplaatsen die u hebt gevonden:
Invoke-AzResourceMoverBulkRemove -ResourceGroupName "<MoveCollectionResourceGroupName>" -MoveCollectionName "<MoveCollectionName>" -MoveResource $($list.Name)
Verwijder de verplaatsingsverzameling:
Remove-AzResourceMoverMoveCollection -ResourceGroupName "<MoveCollectionResourceGroupName>" -MoveCollectionName "<MoveCollectionName>"
Notitie
Als u autorisatieproblemen met beheerde identiteiten ziet, schakelt u de toegang tot beheerde identiteiten opnieuw in door deze stappen opnieuw uit te voeren.
Regionale bron-VM's verwijderen
Nadat u de verplaatsing hebt doorgevoerd en hebt gecontroleerd of de resources werken zoals verwacht in de doelregio, kunt u elke bronresource verwijderen met behulp van:
Volgende stappen
Meer informatie over het verplaatsen van azure-VM's met één exemplaar van regionale naar zonegebonden configuratie via de portal.