Sdílet prostřednictvím


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

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

Důležité

V současnosti používá Azure Resource Manager přibližně 90 % virtuálních počítačů IaaS. Od 28. února 2020 byly klasické virtuální počítače zastaralé a 6. září 2023 budou plně 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 PowerShellu migrovat prostředky infrastruktury jako služby (IaaS) z modelu nasazení Classic do modelu nasazení Azure Resource Manager.

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


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

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 modelu Classic 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í podpory 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 automatizované skripty, které dnes nasazují infrastrukturu a aplikace, zkuste vytvořit podobné testovací nastavení pomocí těchto skriptů pro migraci. Ukázková prostředí můžete také nastavit pomocí webu Azure Portal.

Důležité

Služby Application Gateway se v současné době nepodporují pro migraci z modelu Classic na Resource Manager. Pokud chcete migrovat virtuální síť se službou Application Gateway, odeberte bránu před spuštěním operace Příprava pro přesunutí sítě. Po dokončení migrace znovu připojte bránu v Azure Resource Manageru.

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

Krok 2: Instalace nejnovější verze PowerShellu

Existují dvě hlavní možnosti instalace Azure PowerShellu: Galerie prostředí PowerShell nebo Instalační program webové platformy (WebPI). WebPI přijímá měsíční aktualizace. Galerie prostředí PowerShell průběžně dostává aktualizace. Tento článek je založený na Azure PowerShellu verze 2.1.0.

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

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 na webu Azure Portal.

  1. Přihlaste se k portálu Azure.
  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 podívejte se na pole MOJE ROLE . Pro spolusprávce by hodnota měla být správce účtu.

Pokud nemůžete přidat spolusprávce, požádejte o přidání předplatného správce služeb nebo spolusprávce.

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

Nejprve spusťte příkazový řádek PowerShellu. Pro migraci nastavte prostředí pro Classic i Resource Manager.

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

    Connect-AzAccount

Pomocí následujícího příkazu získejte dostupná předplatná:

    Get-AzSubscription | Sort Name | Select Name

Nastavte své 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 názvem.

    Select-AzSubscription –SubscriptionName "My Azure Subscription"

Poznámka:

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

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

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

    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 stav RegistrationState.

Před přepnutím na model nasazení Classic se ujistěte, že máte dostatek virtuálních procesorů virtuálního počítače Azure Resource Manageru 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 Manageru. Další informace o kvótách vCPU najdete v tématu Limity a Azure Resource Manager.

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

    Get-AzVMUsage -Location "West US"

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

    Add-AzureAccount

Pomocí následujícího příkazu získejte dostupná předplatná:

    Get-AzureSubscription | Sort SubscriptionName | Select SubscriptionName

Nastavte své 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 názvem.

    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ž nepodporovaná funkce nebo chyba konfigurace, doporučujeme zopakovat operaci přípravy, přerušení nebo potvrzení. 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í zprávu o chybě typu, můžete přejít k 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 v následujícím kroku přípravy:

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

Po úspěšném provedení operace Přípravy 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

Pomocí PowerShellu nebo webu Azure Portal zkontrolujte konfiguraci připravených prostředků. Pokud nejste připraveni na migraci a chcete se vrátit ke starému stavu, použijte následující příkaz:

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

Pokud připravená konfigurace vypadá dobře, můžete prostředky přesunout dopředu a potvrdit 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, provedete migraci virtuální sítě. Virtuální počítače se automaticky migrují s virtuální sítí. Vyberte virtuální síť, kterou chcete migrovat.

Poznámka:

Migrace jednoho virtuálního počítače vytvořeného pomocí modelu nasazení Classic vytvořením nového virtuálního počítače Resource Manageru 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ý web 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 skutečný název virtuální sítě pomocí příkazu Get-AzureVnetSite | Select -Property Name nebo ho zobrazte na starém webu Azure Portal.

Následující příklad nastaví název virtuální sítě na Group [resource-group-name] [vnet-name]. 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 nepodporovanými konfiguracemi, zobrazí se chybová zpráva 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 v následujícím kroku přípravy:

    Move-AzureVirtualNetwork -Prepare -VirtualNetworkName $vnetName

Pomocí Azure PowerShellu nebo webu Azure Portal zkontrolujte konfiguraci připravených virtuálních počítačů. Pokud nejste připraveni na migraci a chcete se vrátit ke starému stavu, použijte následující příkaz:

    Move-AzureVirtualNetwork -Abort -VirtualNetworkName $vnetName

Pokud připravená konfigurace vypadá dobře, můžete prostředky přesunout dopředu a potvrdit 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 následující kontroly předpokladů před migrací účtů úložiště.

Poznámka:

Pokud váš účet úložiště nemá žádné přidružené disky nebo data virtuálního počítače, můžete přejít přímo do části Ověření účtů úložiště a zahájit migraci. Všimněte si také, že odstranění klasických disků, imagí virtuálních počítačů nebo imagí operačního systému neodebere zdrojové soubory VHD v účtu úložiště. Zapůjčení těchto souborů VHD však přeruší, aby je bylo možné znovu použít k vytvoření disků NEBO imagí ARM po migraci.

  • Kontroly předpokladů, pokud 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 připojený disk. 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ě.

      K vyhledání nepřipojených disků virtuálních počítačů v účtu úložiště použijte následující příkaz:

          $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
      

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

      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 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
    

    Pomocí Azure PowerShellu nebo webu Azure Portal zkontrolujte konfiguraci připraveného účtu úložiště. Pokud nejste připraveni na migraci a chcete se vrátit ke starému stavu, použijte následující příkaz:

        Move-AzureStorageAccount -Abort -StorageAccountName $storageAccountName
    

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

        Move-AzureStorageAccount -Commit -StorageAccountName $storageAccountName
    

Další kroky