Share via


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.


Hier volgt een stroomdiagram om de volgorde te bepalen waarin de stappen moeten worden uitgevoerd tijdens een migratieproces.

Schermafbeelding van de migratiestappen

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.

  1. Meld u aan bij het Azure-portaal.
  2. Selecteer Abonnement in het menu Hub. Als u deze niet ziet, selecteert u Alle services.
  3. 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

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