Pokud používáte Azure již nějakou dobu, nejspíš máte řadu Azure Storage účtů ve starém režimu "Classic". Většina nových nástrojů a služeb nicméně předpokládá, že vaše účty budou již v novém režimu, který používá Azure Resource Manager (ARM).

Storage účty, které jsou ve starém režimu poznáte ve webovém rozhraní podle toho, že jejich ikonka je modrá a jejich typ je Storage account (classic). Účty s podporou ARM mají ikonku zelenou na typ Storage account.

Jak na migraci

Migraci nelze provádět z webového portálu, ale jenom přes API - například z Azure CLI nebo PowerShellu. Návodů na to najdete spoustu (tento článek hodně vychází z toho, který napsal můj MVP kolega Paris Polyzos). Bohužel, všechny mnou nalezené návody pomíjejí některé důležité aspekty, jako instalaci PS modulů nebo práci s resource groups.

Instalace potřebných PowerShell modulů

Nejprve je nutné nainstalovat patřičné moduly pro PowerShell, a to hned dva:

Pro migraci jsou potřeba oba. Spusťte si PowerShell jako administrátor a zadejte následující příkazy, kterými moduly nainstalujete:

Install-Module AzureRM
Install-Module Azure -AllowClobber

Příprava účtů

Začněte tím, že naimportujete oba moduly:

Import-Module AzureRM
Import-Module Azure

Poté se přihlašte k Azure v obou modulech:

Login-AzureRmAccount
Add-AzureAccount

Poté zaregistrujte providera pro migraci:

Register-AzureRmResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate

Registrace může chvíli trvat. Vyčkejte, dokud není dokončena, což si ověříte následujícím příkazem:

Get-AzureRmResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate

Počkejte, dokud hodnota RegistrationState nebude Registered.

Vlastní migrace

Nyní jste připraveni zahájit vlastní migraci. V následujícím příkladu budeme migrovat storage account, který se jmenuje altairis a nachází se v resource group GeneralStorage.

Migrace probíhá ve dvou krocích. Nejprve je nutno ji připravit (-Prepare), poté můžete zkontrolovat její výsledky a potvrdit ji (-Commit). Příkazy pro obojí v našem případě vypadají takto:

Move-AzureStorageAccount -Prepare -StorageAccountName "altairis"
Move-AzureStorageAccount -Commit -StorageAccountName "altairis"

Tato operace nějakou dobu trvá (v mém případě několik desítek sekund) a po jejím dokončení je účet zmigrován.

Nicméně v rámci migrace je vytvořena nová resource group, která se jmenuje jako název účtu se suffixem -Migrated, v našem případě tedy altairis-Migrated jak se lze přesvědčit ve webovém rozhraní portálu:

Pro migraci zpět do původní resource group a odstranění dočasné RG lze použít následující příkaz:

$resource = Get-AzureRmResource -ResourceGroupName "altairis-Migrated" -ResourceName "altairis"
Move-AzureRmResource -DestinationResourceGroupName "GeneralStorage" -ResourceId $resource.ResourceId
Remove-AzureRmResourceGroup -Name "altairis-Migrated"

Změna resource group opět trvá několik desítek sekund.

Po dokončení migrace uvidíte storage účty v portálu dvakrát. Jednou jako classic a jednou jako nové. Původní classic účty můžete po migraci smazat a ponechat jenom nové, spravované pomocí resource manageru.