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.
- Bakgrund om migreringsscenarier som stöds finns i Plattformsstödd migrering av IaaS-resurser från klassisk till Azure Resource Manager.
- Detaljerad vägledning och en migreringsgenomgång finns i Teknisk djupdykning i plattformsstödd migrering från klassisk till Azure Resource Manager.
- Granska de vanligaste migreringsfelen.
Här är ett flödesschema för att identifiera i vilken ordning stegen måste utföras under en migreringsprocess.
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.
- Logga in på Azure-portalen.
- På hubbmenyn väljer du Prenumeration. Om du inte ser den väljer du Alla tjänster.
- 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
- Migrera virtuella datorer i en molntjänst (inte i ett virtuellt nätverk)
- Migrera virtuella datorer i ett virtuellt nätverk
- Migrera ett lagringskonto
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
- Översikt över plattformsstödd migrering av IaaS-resurser från klassiska till Azure Resource Manager
- En teknisk djupdykning i plattformsstödd migrering från klassisk distribution till Azure Resource Manager
- Planera för migrering av IaaS-resurser från klassisk till Azure Resource Manager
- Använda CLI för att migrera IaaS-resurser från klassiska till Azure Resource Manager
- Community-verktyg för migrering av IaaS-resurser från klassiska till Azure Resource Manager
- Granska de vanligaste migreringsfelen
- Läs de vanligaste frågorna om att migrera IaaS-resurser från klassiska till Azure Resource Manager