IaaS-resources migreren van klassiek naar Azure Resource Manager met behulp van PowerShell
Van toepassing op: ✔️ Virtuele Linux-machines ✔️ van Windows
Belangrijk
Tegenwoordig gebruiken ongeveer 90% van de IaaS-VM's Azure Resource Manager. Vanaf 28 februari 2020 zijn klassieke VM's afgeschaft en worden deze volledig buiten gebruik gesteld op 6 september 2023. Meer informatie over deze afschaffing en hoe dit van invloed is op u.
Deze stappen laten zien hoe u Azure PowerShell-opdrachten gebruikt om IaaS-resources (Infrastructure as a Service) te migreren van het klassieke implementatiemodel naar het Azure Resource Manager-implementatiemodel.
Als u wilt, kunt u ook resources migreren met behulp van de Azure CLI.
- Zie voor achtergrondinformatie over ondersteunde migratiescenario's de migratie van IaaS-resources die door het platform worden ondersteund van klassiek naar Azure Resource Manager.
- Voor gedetailleerde richtlijnen en een overzicht van de migratie raadpleegt u technische gedetailleerde informatie over migratie die wordt ondersteund door het platform van klassiek naar Azure Resource Manager.
- Bekijk de meest voorkomende migratiefouten.
Hier volgt een stroomdiagram om de volgorde te bepalen waarin de stappen moeten worden uitgevoerd tijdens een migratieproces.
Stap 1: Migratie plannen
Hier volgen enkele aanbevolen procedures die u kunt aanbevelen wanneer u evalueert of IaaS-resources van klassiek naar Resource Manager moeten worden gemigreerd:
- Lees de ondersteunde en niet-ondersteunde functies en configuraties door. Als u virtuele machines hebt die gebruikmaken van niet-ondersteunde configuraties of functies, wacht u totdat de configuratie- of functieondersteuning wordt aangekondigd. Als dit bij uw behoeften past, verwijdert u deze functie of verplaatst u deze configuratie uit om migratie mogelijk te maken.
- Als u geautomatiseerde scripts hebt die uw infrastructuur en toepassingen vandaag implementeren, probeert u een vergelijkbare testinstallatie te maken met behulp van deze scripts voor migratie. U kunt ook voorbeeldomgevingen instellen met behulp van Azure Portal.
Belangrijk
Toepassingsgateways worden momenteel niet ondersteund voor migratie van klassiek naar Resource Manager. Als u een virtueel netwerk met een toepassingsgateway wilt migreren, verwijdert u de gateway voordat u een voorbereidingsbewerking uitvoert om het netwerk te verplaatsen. Nadat u de migratie hebt voltooid, maakt u opnieuw verbinding met de gateway in Azure Resource Manager.
Azure ExpressRoute-gateways die verbinding maken met ExpressRoute-circuits in een ander abonnement, kunnen niet automatisch worden gemigreerd. In dergelijke gevallen verwijdert u de ExpressRoute-gateway, migreert u het virtuele netwerk en maakt u de gateway opnieuw. Zie ExpressRoute-circuits en gekoppelde virtuele netwerken migreren van het klassieke naar het Resource Manager-implementatiemodel voor meer informatie.
Stap 2: De nieuwste versie van PowerShell installeren
Er zijn twee hoofdopties voor het installeren van Azure PowerShell: PowerShell Gallery of Web Platform Installer (WebPI). WebPI ontvangt maandelijkse updates. PowerShell Gallery ontvangt continu updates. Dit artikel is gebaseerd op Azure PowerShell versie 2.1.0.
Zie Azure PowerShell installeren en configureren voor de installatie-instructies.
Stap 3: Zorg ervoor dat u een beheerder bent van het abonnement
Als u deze migratie wilt uitvoeren, moet u worden toegevoegd als coadministrator voor het abonnement in Azure Portal.
- Meld u aan bij het Azure-portaal.
- Selecteer Abonnement in het menu Hub. Als u deze niet ziet, selecteert u Alle services.
- Zoek de juiste abonnementsvermelding en kijk vervolgens naar het veld MIJN ROL . Voor een coadministrator moet de waarde accountbeheerder zijn.
Als u geen medebeheerder kunt toevoegen, neemt u contact op met een servicebeheerder of medebeheerder voor het abonnement om uzelf toe te voegen.
Stap 4: Uw abonnement instellen en u registreren voor migratie
Start eerst een PowerShell-prompt. Voor migratie stelt u uw omgeving in voor zowel klassiek als Resource Manager.
Meld u aan bij uw account voor het Resource Manager-model.
Connect-AzAccount
Haal de beschikbare abonnementen op met behulp van de volgende opdracht:
Get-AzSubscription | Sort Name | Select Name
Stel uw Azure-abonnement in voor de huidige sessie. In dit voorbeeld wordt de standaardnaam van het abonnement ingesteld op Mijn Azure-abonnement. Vervang de naam van het voorbeeldabonnement door uw eigen abonnement.
Select-AzSubscription –SubscriptionName "My Azure Subscription"
Notitie
Registratie is een eenmalige stap, maar u moet dit eenmaal doen voordat u de migratie uitvoert. Zonder registratie ziet u het volgende foutbericht:
BadRequest: Abonnement is niet geregistreerd voor migratie.
Registreer u bij de migratieresourceprovider met behulp van de volgende opdracht:
Register-AzResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate
Wacht vijf minuten totdat de registratie is voltooid. Controleer de status van de goedkeuring met behulp van de volgende opdracht:
Get-AzResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate
Zorg ervoor dat RegistrationState zich bevindt Registered
voordat u verdergaat.
Voordat u overschakelt naar het klassieke implementatiemodel, moet u ervoor zorgen dat u voldoende vCPU's voor virtuele Machines van Azure Resource Manager in de Azure-regio van uw huidige implementatie of virtueel netwerk hebt. U kunt de volgende PowerShell-opdracht gebruiken om het huidige aantal vCPU's te controleren dat u hebt in Azure Resource Manager. Zie Limieten en Azure Resource Manager voor meer informatie over vCPU-quota.
In dit voorbeeld wordt de beschikbaarheid in de regio VS - west gecontroleerd. Vervang de naam van de voorbeeldregio door uw eigen regio.
Get-AzVMUsage -Location "West US"
Meld u nu aan bij uw account voor het klassieke implementatiemodel.
Add-AzureAccount
Haal de beschikbare abonnementen op met behulp van de volgende opdracht:
Get-AzureSubscription | Sort SubscriptionName | Select SubscriptionName
Stel uw Azure-abonnement in voor de huidige sessie. In dit voorbeeld wordt het standaardabonnement ingesteld op Mijn Azure-abonnement. Vervang de naam van het voorbeeldabonnement door uw eigen abonnement.
Select-AzureSubscription –SubscriptionName "My Azure Subscription"
Stap 5: Opdrachten uitvoeren om uw IaaS-resources te migreren
- VM's migreren in een cloudservice (niet in een virtueel netwerk)
- VIRTUELE machines in een virtueel netwerk migreren
- Een opslagaccount migreren
Notitie
Alle hier beschreven bewerkingen zijn idempotent. Als u een ander probleem hebt dan een niet-ondersteunde functie of een configuratiefout, wordt u aangeraden de bewerking voorbereiden, afbreken of doorvoeren opnieuw uit te voeren. Het platform probeert vervolgens de actie opnieuw uit te voeren.
Stap 5a: optie 1: virtuele machines migreren in een cloudservice (niet in een virtueel netwerk)
Haal de lijst met cloudservices op met behulp van de volgende opdracht. Kies vervolgens de cloudservice die u wilt migreren. Als de VIRTUELE machines in de cloudservice zich in een virtueel netwerk bevinden of als ze web- of werkrollen hebben, retourneert de opdracht een foutbericht.
Get-AzureService | ft Servicename
Haal de implementatienaam voor de cloudservice op. In dit voorbeeld is de servicenaam Mijn service. Vervang de voorbeeldservicenaam door uw eigen servicenaam.
$serviceName = "My Service"
$deployment = Get-AzureDeployment -ServiceName $serviceName
$deploymentName = $deployment.DeploymentName
Bereid de virtuele machines in de cloudservice voor op migratie. U hebt twee opties waaruit u kunt kiezen.
Optie 1: migreer de VM's naar een virtueel netwerk dat door het platform is gemaakt.
Valideer eerst of u de cloudservice kunt migreren met behulp van de volgende opdrachten:
$validate = Move-AzureService -Validate -ServiceName $serviceName ` -DeploymentName $deploymentName -CreateNewVirtualNetwork $validate.ValidationMessages
Met de volgende opdracht worden eventuele waarschuwingen en fouten weergegeven die de migratie blokkeren. Als validatieberichten geen bericht van het typefout bevatten, kunt u doorgaan met de stap Voorbereiden.
Move-AzureService -Prepare -ServiceName $serviceName ` -DeploymentName $deploymentName -CreateNewVirtualNetwork
Optie 2: Migreren naar een bestaand virtueel netwerk in het Resource Manager-implementatiemodel.
In dit voorbeeld wordt de naam van de resourcegroep ingesteld op myResourceGroup, de naam van het virtuele netwerk op myVirtualNetwork en de subnetnaam op mySubNet. Vervang de namen in het voorbeeld door de namen van uw eigen resources.
$existingVnetRGName = "myResourceGroup" $vnetName = "myVirtualNetwork" $subnetName = "mySubNet"
Controleer eerst of u het virtuele netwerk kunt migreren met behulp van de volgende opdracht:
$validate = Move-AzureService -Validate -ServiceName $serviceName ` -DeploymentName $deploymentName -UseExistingVirtualNetwork -VirtualNetworkResourceGroupName $existingVnetRGName -VirtualNetworkName $vnetName -SubnetName $subnetName $validate.ValidationMessages
Met de volgende opdracht worden eventuele waarschuwingen en fouten weergegeven die de migratie blokkeren. Als validatieberichten geen fouten bevatten, kunt u doorgaan met de volgende stap Voorbereiden:
Move-AzureService -Prepare -ServiceName $serviceName -DeploymentName $deploymentName ` -UseExistingVirtualNetwork -VirtualNetworkResourceGroupName $existingVnetRGName ` -VirtualNetworkName $vnetName -SubnetName $subnetName
Nadat de bewerking Voorbereiden is geslaagd met een van de voorgaande opties, voert u een query uit op de migratiestatus van de VM's. Zorg ervoor dat ze in de Prepared
staat zijn.
In dit voorbeeld wordt de naam van de virtuele machine ingesteld op myVM. Vervang de voorbeeldnaam door uw eigen VM-naam.
$vmName = "myVM"
$vm = Get-AzureVM -ServiceName $serviceName -Name $vmName
$vm.VM.MigrationState
Controleer de configuratie voor de voorbereide resources met behulp van PowerShell of Azure Portal. Als u nog niet klaar bent voor migratie en u wilt teruggaan naar de oude status, gebruikt u de volgende opdracht:
Move-AzureService -Abort -ServiceName $serviceName -DeploymentName $deploymentName
Als de voorbereide configuratie er goed uitziet, kunt u verdergaan en de resources doorvoeren met behulp van de volgende opdracht:
Move-AzureService -Commit -ServiceName $serviceName -DeploymentName $deploymentName
Stap 5a: optie 2: virtuele machines migreren in een virtueel netwerk
Als u virtuele machines in een virtueel netwerk wilt migreren, migreert u het virtuele netwerk. De virtuele machines worden automatisch gemigreerd met het virtuele netwerk. Kies het virtuele netwerk dat u wilt migreren.
Notitie
Migreer één virtuele machine die is gemaakt met het klassieke implementatiemodel door een nieuwe virtuele Resource Manager-machine met Managed Disks te maken met behulp van de VHD-bestanden (OS en gegevens) van de virtuele machine.
Notitie
De naam van het virtuele netwerk kan verschillen van wat wordt weergegeven in de nieuwe portal. In de nieuwe Azure-portal wordt de naam weergegeven als [vnet-name]
, maar de werkelijke naam van het virtuele netwerk is van het type Group [resource-group-name] [vnet-name]
. Voordat u de migratie start, zoekt u de werkelijke naam van het virtuele netwerk op met behulp van de opdracht Get-AzureVnetSite | Select -Property Name
of bekijkt u deze in de oude Azure-portal.
In dit volgende voorbeeld wordt de naam van het virtuele netwerk ingesteld op Groep [resource-group-name] [vnet-name]. Vervang de naam van het virtuele netwerk in het voorbeeld door een naam die is geretourneerd door de opdracht uit te voeren in de sectie Opmerking hierboven.
$vnetName = "Group [resource-group-name] [vnet-name]"
Notitie
Als het virtuele netwerk web- of werkrollen of VM's met niet-ondersteunde configuraties bevat, wordt er een validatiefout weergegeven.
Controleer eerst of u het virtuele netwerk kunt migreren met behulp van de volgende opdracht:
Move-AzureVirtualNetwork -Validate -VirtualNetworkName $vnetName
Met de volgende opdracht worden eventuele waarschuwingen en fouten weergegeven die de migratie blokkeren. Als de validatie is geslaagd, kunt u doorgaan met de volgende stap Voorbereiden:
Move-AzureVirtualNetwork -Prepare -VirtualNetworkName $vnetName
Controleer de configuratie voor de voorbereide virtuele machines met behulp van Azure PowerShell of Azure Portal. Als u nog niet klaar bent voor migratie en u wilt teruggaan naar de oude status, gebruikt u de volgende opdracht:
Move-AzureVirtualNetwork -Abort -VirtualNetworkName $vnetName
Als de voorbereide configuratie er goed uitziet, kunt u verdergaan en de resources doorvoeren met behulp van de volgende opdracht:
Move-AzureVirtualNetwork -Commit -VirtualNetworkName $vnetName
Stap 5b: Een opslagaccount migreren
Nadat u de virtuele machines hebt gemigreerd, moet u de volgende vereiste controles uitvoeren voordat u de opslagaccounts migreert.
Notitie
Als uw opslagaccount geen gekoppelde schijven of VM-gegevens heeft, kunt u rechtstreeks doorgaan naar de sectie Opslagaccounts valideren en migratie starten. Houd er ook rekening mee dat als u de klassieke schijven, VM-installatiekopieën of installatiekopieën van het besturingssysteem verwijdert, de bron-VHD-bestanden in het opslagaccount niet worden verwijderd. De lease op deze VHD-bestanden wordt echter verbroken, zodat ze na de migratie opnieuw kunnen worden gebruikt om ARM-schijven of installatiekopieën te maken.
Vereisten controleert of u vm's hebt gemigreerd of uw opslagaccount schijfbronnen heeft:
Virtuele machines migreren waarvan de schijven zijn opgeslagen in het opslagaccount.
Met de volgende opdracht worden de eigenschappen RoleName en DiskName van alle VM-schijven in het opslagaccount geretourneerd. RoleName is de naam van de virtuele machine waaraan een schijf is gekoppeld. Als deze opdracht schijven retourneert, moet u ervoor zorgen dat virtuele machines waaraan deze schijven zijn gekoppeld, worden gemigreerd voordat u het opslagaccount migreert.
$storageAccountName = 'yourStorageAccountName' Get-AzureDisk | where-Object {$_.MediaLink.Host.Contains($storageAccountName)} | Select-Object -ExpandProperty AttachedTo -Property ` DiskName | Format-List -Property RoleName, DiskName
Verwijder niet-gekoppelde VM-schijven die zijn opgeslagen in het opslagaccount.
Zoek niet-gekoppelde VM-schijven in het opslagaccount met behulp van de volgende opdracht:
$storageAccountName = 'yourStorageAccountName' Get-AzureDisk | where-Object {$_.MediaLink.Host.Contains($storageAccountName)} | Where-Object -Property AttachedTo -EQ $null | Format-List -Property DiskName
Als de vorige opdracht schijven retourneert, verwijdert u deze schijven met behulp van de volgende opdracht:
Remove-AzureDisk -DiskName 'yourDiskName'
VM-installatiekopieën verwijderen die zijn opgeslagen in het opslagaccount.
Met de volgende opdracht worden alle VM-installatiekopieën geretourneerd met besturingssysteemschijven die zijn opgeslagen in het opslagaccount.
Get-AzureVmImage | Where-Object { $_.OSDiskConfiguration.MediaLink -ne $null -and $_.OSDiskConfiguration.MediaLink.Host.Contains($storageAccountName)` } | Select-Object -Property ImageName, ImageLabel
Met de volgende opdracht worden alle VM-installatiekopieën geretourneerd met gegevensschijven die zijn opgeslagen in het opslagaccount.
Get-AzureVmImage | Where-Object {$_.DataDiskConfigurations -ne $null ` -and ($_.DataDiskConfigurations | Where-Object {$_.MediaLink -ne $null -and $_.MediaLink.Host.Contains($storageAccountName)}).Count -gt 0 ` } | Select-Object -Property ImageName, ImageLabel
Verwijder alle VM-installatiekopieën die zijn geretourneerd door de vorige opdrachten met behulp van deze opdracht:
Remove-AzureVMImage -ImageName 'yourImageName'
Valideer opslagaccounts en start de migratie.
Valideer elk opslagaccount voor migratie met behulp van de volgende opdracht. In dit voorbeeld is de naam van het opslagaccount myStorageAccount. Vervang de voorbeeldnaam door de naam van uw eigen opslagaccount.
$storageAccountName = "myStorageAccount" Move-AzureStorageAccount -Validate -StorageAccountName $storageAccountName
De volgende stap is het voorbereiden van het opslagaccount voor migratie.
$storageAccountName = "myStorageAccount" Move-AzureStorageAccount -Prepare -StorageAccountName $storageAccountName
Controleer de configuratie voor het voorbereide opslagaccount met behulp van Azure PowerShell of Azure Portal. Als u nog niet klaar bent voor migratie en u wilt teruggaan naar de oude status, gebruikt u de volgende opdracht:
Move-AzureStorageAccount -Abort -StorageAccountName $storageAccountName
Als de voorbereide configuratie er goed uitziet, kunt u verdergaan en de resources doorvoeren met behulp van de volgende opdracht:
Move-AzureStorageAccount -Commit -StorageAccountName $storageAccountName
Volgende stappen
- Overzicht van door het platform ondersteunde migratie van IaaS-resources van klassiek naar Azure Resource Manager
- Technische details over door platforms ondersteunde migratie van klassiek naar Azure Resource Manager
- Planning voor de migratie van IaaS-resources van het klassieke implementatiemodel naar Azure Resource Manager
- CLI gebruiken om IaaS-resources van klassiek naar Azure Resource Manager te migreren
- Communityhulpprogramma's voor hulp bij de migratie van IaaS-resources van klassiek naar Azure Resource Manager
- Bekijk de meest voorkomende migratiefouten
- Bekijk de meestgestelde vragen over het migreren van IaaS-resources van klassiek naar Azure Resource Manager