Migrace prostředků IaaS z modelu Classic do Azure Resource Manageru pomocí PowerShellu

Platí pro: ✔️ Virtuální počítače s Linuxem ✔️ s Windows

Důležité

Azure Resource Manager dnes používá přibližně 90 % virtuálních počítačů IaaS. Od 28. února 2020 jsou klasické virtuální počítače zastaralé a 6. září 2023 budou zcela vyřazeny. Přečtěte si další informace o tomto vyřazení a o tom, jak vás ovlivňuje.

Tyto kroky ukazují, jak pomocí příkazů Azure PowerShell migrovat prostředky infrastruktury jako služby (IaaS) z modelu nasazení Classic do modelu nasazení Azure Resource Manager.

Pokud chcete, můžete také migrovat prostředky pomocí Azure CLI.


Tady je vývojový diagram, ve kterém zjistíte pořadí, ve kterém je potřeba během procesu migrace provést kroky.

Snímek obrazovky, který ukazuje kroky migrace

Krok 1: Plánování migrace

Tady je několik osvědčených postupů, které doporučujeme při vyhodnocování, jestli se mají migrovat prostředky IaaS z klasických na Resource Manager:

  • Přečtěte si podporované a nepodporované funkce a konfigurace. Pokud máte virtuální počítače, které používají nepodporované konfigurace nebo funkce, počkejte na oznámení o podpoře konfigurace nebo funkcí. Případně, pokud to vyhovuje vašim potřebám, odeberte tuto funkci nebo se z této konfigurace přesuňte, abyste povolili migraci.
  • Pokud máte dnes automatizované skripty, které nasazují infrastrukturu a aplikace, zkuste vytvořit podobné testovací nastavení pomocí těchto skriptů pro migraci. Případně můžete pomocí Azure Portal nastavit ukázková prostředí.

Důležité

Aplikační brány se v současné době nepodporují pro migraci z klasické na Resource Manager. Pokud chcete migrovat virtuální síť s aplikační bránou, odeberte bránu před spuštěním operace přípravy k přesunu sítě. Po dokončení migrace znovu připojte bránu v Azure Resource Manager.

Brány Azure ExpressRoute, které se připojují k okruhům ExpressRoute v jiném předplatném, není možné migrovat automaticky. V takových případech odeberte bránu ExpressRoute, migrujte virtuální síť a znovu ji vytvořte. Další informace najdete v tématu Migrace okruhů ExpressRoute a přidružených virtuálních sítí z modelu nasazení Classic na model nasazení Resource Manager.

Krok 2: Instalace nejnovější verze PowerShellu

Existují dvě hlavní možnosti instalace Azure PowerShell: Galerie prostředí PowerShell nebo Web Platform Installer (WebPI). WebPI dostává měsíční aktualizace. Galerie prostředí PowerShell průběžně dostává aktualizace. Tento článek je založený na Azure PowerShell verzi 2.1.0.

Pokyny k instalaci najdete v tématu Postup instalace a konfigurace Azure PowerShell.

Krok 3: Ujistěte se, že jste správcem předplatného.

Chcete-li provést tuto migraci, musíte být přidáni jako spolusprávce předplatného v Azure Portal.

  1. Přihlaste se k webu Azure Portal.
  2. V nabídce Centra vyberte Předplatné. Pokud ho nevidíte, vyberte Všechny služby.
  3. Vyhledejte příslušnou položku předplatného a pak se podívejte do pole MOJE ROLE . Pro spolusprávce by hodnota měla být Správce účtu.

Pokud nemůžete přidat spolusprávce, obraťte se na správce služby nebo spolusprávce předplatného a požádejte ho o přidání.

Krok 4: Nastavení předplatného a registrace k migraci

Nejprve spusťte výzvu PowerShellu. Pro migraci nastavte prostředí pro klasické i Resource Manager.

Přihlaste se ke svému účtu pro model Resource Manager.

    Connect-AzAccount

Dostupná předplatná získáte pomocí následujícího příkazu:

    Get-AzSubscription | Sort Name | Select Name

Nastavte předplatné Azure pro aktuální relaci. Tento příklad nastaví výchozí název předplatného na Moje předplatné Azure. Nahraďte ukázkový název předplatného vlastním.

    Select-AzSubscription –SubscriptionName "My Azure Subscription"

Poznámka

Registrace je jednorázový krok, ale před pokusem o migraci to musíte udělat jednou. Bez registrace se zobrazí následující chybová zpráva:

BadRequest: Předplatné není zaregistrované pro migraci.

Zaregistrujte se u poskytovatele prostředků migrace pomocí následujícího příkazu:

    Register-AzResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate

Počkejte pět minut, než se registrace dokončí. Pomocí následujícího příkazu zkontrolujte stav schválení:

    Get-AzResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate

Než budete pokračovat, ujistěte se, že je Registered RegistrationState .

Před přechodem na model nasazení Classic se ujistěte, že máte dostatek virtuálních procesorů virtuálních počítačů Azure Resource Manager v oblasti Azure vašeho aktuálního nasazení nebo virtuální sítě. Pomocí následujícího příkazu PowerShellu můžete zkontrolovat aktuální počet virtuálních procesorů, které máte v Azure Resource Manager. Další informace o kvótách virtuálních procesorů najdete v tématu Limity a Resource Manager Azure.

Tento příklad zkontroluje dostupnost v oblasti USA – západ . Nahraďte ukázkový název oblasti vlastním názvem.

    Get-AzVMUsage -Location "West US"

Teď se přihlaste ke svému účtu pro model nasazení Classic.

    Add-AzureAccount

Dostupná předplatná získáte pomocí následujícího příkazu:

    Get-AzureSubscription | Sort SubscriptionName | Select SubscriptionName

Nastavte předplatné Azure pro aktuální relaci. Tento příklad nastaví výchozí předplatné na Moje předplatné Azure. Nahraďte ukázkový název předplatného vlastním.

    Select-AzureSubscription –SubscriptionName "My Azure Subscription"

Krok 5: Spuštění příkazů pro migraci prostředků IaaS

Poznámka

Všechny zde popsané operace jsou idempotentní. Pokud máte jiný problém než nepodporovanou funkci nebo chybu konfigurace, doporučujeme zkusit operaci přípravy, přerušení nebo potvrzení zopakovat. Platforma pak akci zkusí znovu.

Krok 5a: Možnost 1 – Migrace virtuálních počítačů v cloudové službě (ne ve virtuální síti)

Seznam cloudových služeb získáte pomocí následujícího příkazu. Pak vyberte cloudovou službu, kterou chcete migrovat. Pokud jsou virtuální počítače v cloudové službě ve virtuální síti nebo pokud mají webové role nebo role pracovního procesu, příkaz vrátí chybovou zprávu.

    Get-AzureService | ft Servicename

Získejte název nasazení cloudové služby. V tomto příkladu je název služby Moje služba. Nahraďte ukázkový název služby vlastním názvem služby.

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

Připravte virtuální počítače v cloudové službě na migraci. Máte dvě možnosti, ze kterých si můžete vybrat.

  • Možnost 1: Migrace virtuálních počítačů do virtuální sítě vytvořené platformou

    Nejprve pomocí následujících příkazů ověřte, že můžete migrovat cloudovou službu:

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

    Následující příkaz zobrazí všechna upozornění a chyby, které blokují migraci. Pokud ověřovací zprávy neobsahují chybu typu, můžete přejít ke kroku Příprava.

    Move-AzureService -Prepare -ServiceName $serviceName `
        -DeploymentName $deploymentName -CreateNewVirtualNetwork
    
  • Možnost 2: Migrace do existující virtuální sítě v modelu nasazení Resource Manager

    Tento příklad nastaví název skupiny prostředků na myResourceGroup, název virtuální sítě na myVirtualNetwork a název podsítě na mySubNet. Názvy v příkladu nahraďte názvy vlastních prostředků.

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

    Nejprve pomocí následujícího příkazu ověřte, že můžete migrovat virtuální síť:

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

    Následující příkaz zobrazí všechna upozornění a chyby, které blokují migraci. Pokud ověřovací zprávy neobsahují chyby, můžete pokračovat následujícím krokem přípravy:

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

Jakmile operace Příprava proběhne úspěšně s některou z předchozích možností, zadejte dotaz na stav migrace virtuálních počítačů. Ujistěte se, že jsou ve Prepared stavu.

Tento příklad nastaví název virtuálního počítače na myVM. Nahraďte ukázkový název vlastním názvem virtuálního počítače.

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

Zkontrolujte konfiguraci připravených prostředků pomocí PowerShellu nebo Azure Portal. Pokud nejste připravení na migraci a chcete se vrátit do původního stavu, použijte následující příkaz:

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

Pokud připravená konfigurace vypadá dobře, můžete přejít kupředu a potvrdit prostředky pomocí následujícího příkazu:

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

Krok 5a: Možnost 2 – Migrace virtuálních počítačů ve virtuální síti

Pokud chcete migrovat virtuální počítače ve virtuální síti, můžete migrovat virtuální síť. Virtuální počítače se automaticky migrují s virtuální sítí. Vyberte virtuální síť, kterou chcete migrovat.

Poznámka

Migrujte jeden virtuální počítač vytvořený pomocí modelu nasazení Classic vytvořením nového Resource Manager virtuálního počítače s Spravované disky pomocí souborů VHD (OS a dat) virtuálního počítače.

Poznámka

Název virtuální sítě se může lišit od názvu, který se zobrazuje na novém portálu. Nový Azure Portal zobrazí název jako [vnet-name], ale skutečný název virtuální sítě je typu Group [resource-group-name] [vnet-name]. Před zahájením migrace vyhledejte pomocí příkazu Get-AzureVnetSite | Select -Property Name skutečný název virtuální sítě nebo ho zobrazte ve starém Azure Portal.

Následující příklad nastaví název virtuální sítě na Group [název_skupiny_prostředků][název_virtuální_sítě]. Nahraďte ukázkový název virtuální sítě názvem, který byl vrácen spuštěním příkazu v části Poznámka výše.

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

Poznámka

Pokud virtuální síť obsahuje webové role nebo role pracovního procesu nebo virtuální počítače s nepodporovanou konfigurací, zobrazí se chybová zpráva o ověření.

Nejprve pomocí následujícího příkazu ověřte, že můžete migrovat virtuální síť:

    Move-AzureVirtualNetwork -Validate -VirtualNetworkName $vnetName

Následující příkaz zobrazí všechna upozornění a chyby, které blokují migraci. Pokud je ověření úspěšné, můžete pokračovat následujícím krokem přípravy:

    Move-AzureVirtualNetwork -Prepare -VirtualNetworkName $vnetName

Zkontrolujte konfiguraci připravených virtuálních počítačů pomocí Azure PowerShell nebo Azure Portal. Pokud nejste připravení na migraci a chcete se vrátit do původního stavu, použijte následující příkaz:

    Move-AzureVirtualNetwork -Abort -VirtualNetworkName $vnetName

Pokud připravená konfigurace vypadá dobře, můžete přejít kupředu a potvrdit prostředky pomocí následujícího příkazu:

    Move-AzureVirtualNetwork -Commit -VirtualNetworkName $vnetName

Krok 5b: Migrace účtu úložiště

Po dokončení migrace virtuálních počítačů proveďte před migrací účtů úložiště následující kontroly požadavků.

Poznámka

Pokud váš účet úložiště nemá přidružené žádné disky nebo data virtuálních počítačů, můžete přeskočit přímo k části Ověření účtů úložiště a zahájení migrace. Upozorňujeme také, že odstraněním klasických disků, imagí virtuálních počítačů nebo imagí operačního systému nedojde k odebrání zdrojových souborů VHD v účtu úložiště. Přeruší se ale zapůjčení těchto souborů VHD, aby je bylo možné po migraci znovu použít k vytvoření disků NEBO imagí ARM.

  • Kontroly předpokladů, jestli jste migrovali nějaké virtuální počítače nebo váš účet úložiště obsahuje diskové prostředky:

    • Migrujte virtuální počítače, jejichž disky jsou uložené v účtu úložiště.

      Následující příkaz vrátí vlastnosti RoleName a DiskName všech disků virtuálních počítačů v účtu úložiště. RoleName je název virtuálního počítače, ke kterému je disk připojený. Pokud tento příkaz vrátí disky, před migrací účtu úložiště se ujistěte, že se migrují virtuální počítače, ke kterým jsou tyto disky připojené.

       $storageAccountName = 'yourStorageAccountName'
        Get-AzureDisk | where-Object {$_.MediaLink.Host.Contains($storageAccountName)} | Select-Object -ExpandProperty AttachedTo -Property `
        DiskName | Format-List -Property RoleName, DiskName
      
      
    • Odstraňte nepřipojené disky virtuálních počítačů uložené v účtu úložiště.

      Pomocí následujícího příkazu vyhledejte v účtu úložiště nepřipojené disky virtuálních počítačů:

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

      Pokud předchozí příkaz vrátí disky, odstraňte tyto disky pomocí následujícího příkazu:

         Remove-AzureDisk -DiskName 'yourDiskName'
      
    • Odstraňte image virtuálních počítačů uložené v účtu úložiště.

      Následující příkaz vrátí všechny image virtuálních počítačů s disky s operačním systémem uloženými v účtu úložiště.

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

      Následující příkaz vrátí všechny image virtuálních počítačů s datovými disky uloženými v účtu úložiště.

      
         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
      

      Odstraňte všechny image virtuálních počítačů vrácené předchozími příkazy pomocí tohoto příkazu:

      Remove-AzureVMImage -ImageName 'yourImageName'
      
  • Ověřte účty úložiště a spusťte migraci.

    Pomocí následujícího příkazu ověřte každý účet úložiště pro migraci. V tomto příkladu je název účtu úložiště myStorageAccount. Nahraďte ukázkový název názvem vašeho vlastního účtu úložiště.

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

    Dalším krokem je příprava účtu úložiště na migraci.

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

    Zkontrolujte konfiguraci připraveného účtu úložiště pomocí Azure PowerShell nebo Azure Portal. Pokud nejste připravení na migraci a chcete se vrátit do původního stavu, použijte následující příkaz:

        Move-AzureStorageAccount -Abort -StorageAccountName $storageAccountName
    

    Pokud připravená konfigurace vypadá dobře, můžete přejít kupředu a potvrdit prostředky pomocí následujícího příkazu:

        Move-AzureStorageAccount -Commit -StorageAccountName $storageAccountName
    

Další kroky