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:
Azure
je starší verze, která podporuje classic deployment model.AzureRM
je novější verze, která podporuje Resource Manager.
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.