Migrera IaaS-resurser från klassisk till Azure Resource Manager med hjälp av PowerShell

Gäller för: ✔️ Virtuella Linux-datorer ✔️ med Windows

Viktigt

Idag använder cirka 90 % av de virtuella IaaS-datorerna Azure Resource Manager. Från och med den 28 februari 2020 har klassiska virtuella datorer blivit inaktuella och kommer att dras tillbaka helt den 6 september 2023. Läs mer om utfasningen och hur den påverkar dig.

De här stegen visar hur du använder Azure PowerShell kommandon för att migrera IaaS-resurser (infrastruktur som en tjänst) från den klassiska distributionsmodellen till Azure Resource Manager-distributionsmodellen.

Om du vill kan du även migrera resurser med hjälp av Azure CLI.


Här är ett flödesschema för att identifiera i vilken ordning stegen måste utföras under en migreringsprocess.

Skärmbild som visar migreringsstegen

Steg 1: Planera för migrering

Här följer några metodtips som vi rekommenderar när du utvärderar om du vill migrera IaaS-resurser från klassisk till Resource Manager:

  • Läs igenom funktioner och konfigurationer som stöds och inte stöds. Om du har virtuella datorer som använder konfigurationer eller funktioner som inte stöds väntar du tills konfigurations- eller funktionsstödet har meddelats. Om den passar dina behov kan du också ta bort den funktionen eller flytta ut från den konfigurationen för att aktivera migrering.
  • Om du har automatiserade skript som distribuerar din infrastruktur och dina program i dag kan du försöka skapa en liknande testkonfiguration med hjälp av dessa skript för migrering. Du kan också konfigurera exempelmiljöer med hjälp av Azure Portal.

Viktigt

Programgatewayer stöds för närvarande inte för migrering från klassisk till Resource Manager. Om du vill migrera ett virtuellt nätverk med en programgateway tar du bort gatewayen innan du kör en Förberedelse-åtgärd för att flytta nätverket. När du har slutfört migreringen återansluter du gatewayen i Azure Resource Manager.

Azure ExpressRoute-gatewayer som ansluter till ExpressRoute-kretsar i en annan prenumeration kan inte migreras automatiskt. I sådana fall tar du bort ExpressRoute-gatewayen, migrerar det virtuella nätverket och återskapar gatewayen. Mer information finns i Migrera ExpressRoute-kretsar och associerade virtuella nätverk från den klassiska till Resource Manager distributionsmodellen.

Steg 2: Installera den senaste versionen av PowerShell

Det finns två huvudsakliga alternativ för att installera Azure PowerShell: PowerShell-galleriet eller WebPI (Web PLATFORM Installer). WebPI tar emot månatliga uppdateringar. PowerShell-galleriet tar emot uppdateringar kontinuerligt. Den här artikeln baseras på Azure PowerShell version 2.1.0.

Installationsanvisningar finns i Installera och konfigurera Azure PowerShell.

Steg 3: Kontrollera att du är administratör för prenumerationen

För att utföra den här migreringen måste du läggas till som en medadministratör för prenumerationen i Azure Portal.

  1. Logga in på Azure-portalen.
  2. hubbmenyn väljer du Prenumeration. Om du inte ser den väljer du Alla tjänster.
  3. Leta rätt prenumerationspost och titta sedan på fältet MIN ROLL . För en medadministratör ska värdet vara Kontoadministratör.

Om du inte kan lägga till en medadministratör kontaktar du en tjänstadministratör eller medadministratör för prenumerationen för att lägga till dig själv.

Steg 4: Konfigurera din prenumeration och registrera dig för migrering

Starta först en PowerShell-kommandotolk. Konfigurera din miljö för både klassiska och Resource Manager för migrering.

Logga in på ditt konto för Resource Manager-modellen.

    Connect-AzAccount

Hämta tillgängliga prenumerationer med hjälp av följande kommando:

    Get-AzSubscription | Sort Name | Select Name

Ange din Azure-prenumeration för den aktuella sessionen. I det här exemplet anges standardprenumerationsnamnet till Min Azure-prenumeration. Ersätt namnet på exempelprenumerationen med ditt eget.

    Select-AzSubscription –SubscriptionName "My Azure Subscription"

Anteckning

Registreringen är ett engångssteg, men du måste göra det en gång innan du försöker migrera. Utan registrering visas följande felmeddelande:

BadRequest: Prenumerationen är inte registrerad för migrering.

Registrera med migreringsresursprovidern med hjälp av följande kommando:

    Register-AzResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate

Vänta fem minuter tills registreringen har slutförts. Kontrollera statusen för godkännandet med hjälp av följande kommando:

    Get-AzResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate

Kontrollera att RegistrationState är Registered innan du fortsätter.

Innan du växlar till den klassiska distributionsmodellen ska du se till att du har tillräckligt med Virtuella processorer för virtuella Azure-Resource Manager datorer i Azure-regionen för den aktuella distributionen eller det virtuella nätverket. Du kan använda följande PowerShell-kommando för att kontrollera det aktuella antalet vCPU:er som du har i Azure Resource Manager. Mer information om vCPU-kvoter finns i Gränser och Azure Resource Manager.

Det här exemplet kontrollerar tillgängligheten i regionen USA, västra . Ersätt namnet på exempelregionen med ditt eget.

    Get-AzVMUsage -Location "West US"

Logga nu in på ditt konto för den klassiska distributionsmodellen.

    Add-AzureAccount

Hämta tillgängliga prenumerationer med hjälp av följande kommando:

    Get-AzureSubscription | Sort SubscriptionName | Select SubscriptionName

Ange din Azure-prenumeration för den aktuella sessionen. I det här exemplet anges standardprenumerationen till Min Azure-prenumeration. Ersätt namnet på exempelprenumerationen med ditt eget.

    Select-AzureSubscription –SubscriptionName "My Azure Subscription"

Steg 5: Kör kommandon för att migrera dina IaaS-resurser

Anteckning

Alla åtgärder som beskrivs här är idempotent. Om du har ett annat problem än en funktion som inte stöds eller ett konfigurationsfel rekommenderar vi att du försöker förbereda, avbryta eller checka in igen. Plattformen försöker sedan åtgärden igen.

Steg 5a: Alternativ 1 – Migrera virtuella datorer i en molntjänst (inte i ett virtuellt nätverk)

Hämta listan över molntjänster med hjälp av följande kommando. Välj sedan den molntjänst som du vill migrera. Om de virtuella datorerna i molntjänsten finns i ett virtuellt nätverk eller om de har webb- eller arbetsroller returnerar kommandot ett felmeddelande.

    Get-AzureService | ft Servicename

Hämta distributionsnamnet för molntjänsten. I det här exemplet är tjänstnamnet Min tjänst. Ersätt namnet på exempeltjänsten med ditt eget tjänstnamn.

    $serviceName = "My Service"
    $deployment = Get-AzureDeployment -ServiceName $serviceName
    $deploymentName = $deployment.DeploymentName

Förbered de virtuella datorerna i molntjänsten för migrering. Du har två alternativ att välja mellan.

  • Alternativ 1: Migrera de virtuella datorerna till ett plattformsskapade virtuella nätverk.

    Kontrollera först att du kan migrera molntjänsten med hjälp av följande kommandon:

    $validate = Move-AzureService -Validate -ServiceName $serviceName `
        -DeploymentName $deploymentName -CreateNewVirtualNetwork
    $validate.ValidationMessages
    

    Följande kommando visar eventuella varningar och fel som blockerar migrering. Om valideringsmeddelandena inte innehåller ett meddelande av typen error kan du gå vidare till steget Förbered.

    Move-AzureService -Prepare -ServiceName $serviceName `
        -DeploymentName $deploymentName -CreateNewVirtualNetwork
    
  • Alternativ 2: Migrera till ett befintligt virtuellt nätverk i Resource Manager distributionsmodell.

    Det här exemplet anger resursgruppens namn till myResourceGroup, det virtuella nätverksnamnet till myVirtualNetwork och undernätsnamnet till mySubNet. Ersätt namnen i exemplet med namnen på dina egna resurser.

    $existingVnetRGName = "myResourceGroup"
    $vnetName = "myVirtualNetwork"
    $subnetName = "mySubNet"
    

    Kontrollera först att du kan migrera det virtuella nätverket med hjälp av följande kommando:

    $validate = Move-AzureService -Validate -ServiceName $serviceName `
        -DeploymentName $deploymentName -UseExistingVirtualNetwork -VirtualNetworkResourceGroupName $existingVnetRGName -VirtualNetworkName $vnetName -SubnetName $subnetName
    $validate.ValidationMessages
    

    Följande kommando visar eventuella varningar och fel som blockerar migrering. Om valideringsmeddelandena inte innehåller fel kan du fortsätta med följande förberedelsesteg:

        Move-AzureService -Prepare -ServiceName $serviceName -DeploymentName $deploymentName `
        -UseExistingVirtualNetwork -VirtualNetworkResourceGroupName $existingVnetRGName `
        -VirtualNetworkName $vnetName -SubnetName $subnetName
    

När förberedelseåtgärden har slutförts med något av föregående alternativ frågar du migreringstillståndet för de virtuella datorerna. Se till att de är i Prepared tillståndet .

I det här exemplet anges namnet på den virtuella datorn till myVM. Ersätt exempelnamnet med ditt eget VM-namn.

    $vmName = "myVM"
    $vm = Get-AzureVM -ServiceName $serviceName -Name $vmName
    $vm.VM.MigrationState

Kontrollera konfigurationen för de förberedda resurserna med hjälp av antingen PowerShell eller Azure Portal. Om du inte är redo för migrering och vill återgå till det gamla tillståndet använder du följande kommando:

    Move-AzureService -Abort -ServiceName $serviceName -DeploymentName $deploymentName

Om den förberedda konfigurationen ser bra ut kan du gå vidare och checka in resurserna med hjälp av följande kommando:

    Move-AzureService -Commit -ServiceName $serviceName -DeploymentName $deploymentName

Steg 5a: Alternativ 2 – Migrera virtuella datorer i ett virtuellt nätverk

Om du vill migrera virtuella datorer i ett virtuellt nätverk migrerar du det virtuella nätverket. De virtuella datorerna migreras automatiskt med det virtuella nätverket. Välj det virtuella nätverk som du vill migrera.

Anteckning

Migrera en enskild virtuell dator som skapats med den klassiska distributionsmodellen genom att skapa en ny Resource Manager virtuell dator med Managed Disks med hjälp av VHD-filerna (OS och data) på den virtuella datorn.

Anteckning

Namnet på det virtuella nätverket kan vara ett annat än det som visas i den nya portalen. Den nya Azure Portal visar namnet som [vnet-name], men det faktiska namnet på det virtuella nätverket är av typen Group [resource-group-name] [vnet-name]. Innan du påbörjar migreringen letar du upp det faktiska namnet på det virtuella nätverket med hjälp av kommandot Get-AzureVnetSite | Select -Property Name eller visar det i det gamla Azure Portal.

I följande exempel anges namnet på det virtuella nätverket till Grupp [resource-group-name][vnet-name]. Ersätt namnet på det virtuella nätverket i exemplet med ett som returnerades från att köra kommandot i avsnittet Anteckning ovan..

    $vnetName = "Group [resource-group-name] [vnet-name]"

Anteckning

Om det virtuella nätverket innehåller webb- eller arbetsroller eller virtuella datorer med konfigurationer som inte stöds får du ett verifieringsfelmeddelande.

Kontrollera först att du kan migrera det virtuella nätverket med hjälp av följande kommando:

    Move-AzureVirtualNetwork -Validate -VirtualNetworkName $vnetName

Följande kommando visar varningar och fel som blockerar migrering. Om valideringen lyckas kan du fortsätta med följande Förbered-steg:

    Move-AzureVirtualNetwork -Prepare -VirtualNetworkName $vnetName

Kontrollera konfigurationen för de förberedda virtuella datorerna med hjälp av antingen Azure PowerShell eller Azure Portal. Om du inte är redo för migrering och vill återgå till det gamla tillståndet använder du följande kommando:

    Move-AzureVirtualNetwork -Abort -VirtualNetworkName $vnetName

Om den förberedda konfigurationen ser bra ut kan du gå vidare och checka in resurserna med hjälp av följande kommando:

    Move-AzureVirtualNetwork -Commit -VirtualNetworkName $vnetName

Steg 5b: Migrera ett lagringskonto

När du har migrerat de virtuella datorerna utför du följande nödvändiga kontroller innan du migrerar lagringskontona.

Anteckning

Om ditt lagringskonto inte har några associerade diskar eller VM-data kan du hoppa direkt till avsnittet "Verifiera lagringskonton och starta migreringen". Observera också att borttagning av klassiska diskar, VM-avbildningar eller OS-avbildningar inte tar bort käll-VHD-filerna i lagringskontot. Det bryter dock lånet för dessa VHD-filer så att de kan återanvändas för att skapa ARM-diskar eller bilder efter migreringen.

  • Kravkontroller om du har migrerat några virtuella datorer eller om ditt lagringskonto har diskresurser:

    • Migrera virtuella datorer vars diskar lagras i lagringskontot.

      Följande kommando returnerar egenskaperna RoleName och DiskName för alla vm-diskar i lagringskontot. RoleName är namnet på den virtuella dator som en disk är ansluten till. Om det här kommandot returnerar diskar ska du se till att virtuella datorer som dessa diskar är anslutna till migreras innan du migrerar lagringskontot.

       $storageAccountName = 'yourStorageAccountName'
        Get-AzureDisk | where-Object {$_.MediaLink.Host.Contains($storageAccountName)} | Select-Object -ExpandProperty AttachedTo -Property `
        DiskName | Format-List -Property RoleName, DiskName
      
      
    • Ta bort icke anslutna virtuella datordiskar som lagras i lagringskontot.

      Hitta icke anslutna virtuella datordiskar i lagringskontot med hjälp av följande kommando:

          $storageAccountName = 'yourStorageAccountName'
          Get-AzureDisk | where-Object {$_.MediaLink.Host.Contains($storageAccountName)} | Where-Object -Property AttachedTo -EQ $null | Format-List -Property DiskName  
      
      

      Om föregående kommando returnerar diskar tar du bort dessa diskar med hjälp av följande kommando:

         Remove-AzureDisk -DiskName 'yourDiskName'
      
    • Ta bort VM-avbildningar som lagras i lagringskontot.

      Följande kommando returnerar alla VM-avbildningar med OS-diskar som lagras i lagringskontot.

         Get-AzureVmImage | Where-Object { $_.OSDiskConfiguration.MediaLink -ne $null -and $_.OSDiskConfiguration.MediaLink.Host.Contains($storageAccountName)`
                                 } | Select-Object -Property ImageName, ImageLabel
      

      Följande kommando returnerar alla VM-avbildningar med datadiskar som lagras i lagringskontot.

      
         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
      

      Ta bort alla VM-avbildningar som returnerades av föregående kommandon med hjälp av det här kommandot:

      Remove-AzureVMImage -ImageName 'yourImageName'
      
  • Verifiera lagringskonton och starta migreringen.

    Verifiera varje lagringskonto för migrering med hjälp av följande kommando. I det här exemplet är lagringskontots namn myStorageAccount. Ersätt exempelnamnet med namnet på ditt eget lagringskonto.

        $storageAccountName = "myStorageAccount"
        Move-AzureStorageAccount -Validate -StorageAccountName $storageAccountName
    

    Nästa steg är att förbereda lagringskontot för migrering.

        $storageAccountName = "myStorageAccount"
        Move-AzureStorageAccount -Prepare -StorageAccountName $storageAccountName
    

    Kontrollera konfigurationen för det förberedda lagringskontot med hjälp av antingen Azure PowerShell eller Azure Portal. Om du inte är redo för migrering och vill återgå till det gamla tillståndet använder du följande kommando:

        Move-AzureStorageAccount -Abort -StorageAccountName $storageAccountName
    

    Om den förberedda konfigurationen ser bra ut kan du gå vidare och checka in resurserna med hjälp av följande kommando:

        Move-AzureStorageAccount -Commit -StorageAccountName $storageAccountName
    

Nästa steg