Migrare dal Classic Model al Resource Manager Model in Microsoft Azure

Resource Manager è la nuova modalità per amministrare le risorse in Microsoft Azure. Fondamentale è capirne le potenzialità e sopratutto capire come funziona il nuovo modello di gestione.

In questo articolo vedremo come sia possibile migrare le risorse IAAS (Infrastructure As A Service) di Microsoft Azure dal vecchio modello Classico al nuovo modello di gestione ARM (Azure Resource Manager) senza nessun tipo di downtime.

Gli attuali scenari supportati sono 3:

  • Migrazione di VM senza rete virtuale
  • Migrazione di VM collegate ad una rete virtuale
  • Migrazione degli storage account

Tutte le operazioni di migrazione dovranno essere fatte utilizzando delle cmdlet Powershell. Quindi come prima operazione collegatevi al link Azure PowerShell e installate le cmdlet di Azure.

Figura 1: Installazione di Azure Powershell

Terminata l’installazione loggatevi al vostro Tenant di Azure utilizzando la cmdlet

Login-AzureRmAccount

Figura 2: Connessione al tenant di Azure

Nel caso abbiate più sottoscrizioni potete usare la cmdlet

Get-AzureRMSubscription

per poterle visualizzare e la cmdlet

Get-AzureRmSubscription –SubscriptionName NomeDellaSottoscrizione Select-AzureRmSubscription

per poter selezionare la sottoscrizione di vostro interesse

Figura 3: Sottoscrizioni disponibili

Come prima operazione è necessario registrare la sottoscrizione per la migrazione con la cmdlet

Register-AzureRmResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate

È possibile verificare che la sottoscrizione sia stata registrata correttamente lanciando la cmdlet

Get-AzureRmResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate

Figura 4: Sottoscrizione registrata per la migrazione

Dovete collegarvi contemporaneamente utilizzando anche il Classic Model. Per farlo vi basta lanciare la cmdlet
Add-AzureAccount
, inserire le credenziali di autenticazione, visualizzare tutte le sottoscrizioni con la cmdlet
Get-AzureSubscription
e selezionare quella che vi interessa con la cmdlet
Select-AzureSubscription -SubscriptionName NomeDellaSottoscrizione

Figura 5: Collegamento al Classic model

Adesso che siete loggati ad entrambi i modelli di gestione (Classic e ARM) potete procedere alla migrazione.

Migrazione di macchine virtuali senza una VNET collegata

Se avete delle macchine virtuali che non sono collegate a delle VNET dovete, come prima operazione, ottenere la lista di tutti i Cloud Service eseguendo la cmdlet

Get-AzureService ft Servicename

Una volta individuato il Cloud Service che vi interessa (nel mio caso ho un Cloud Service chiamato NICVM00), ottenete il DeploymentName utilizzando la cmdlet

(Get-AzureDeployment -ServiceName NICVM00).DeploymentName

Figura 6: Cloud Service Name e Deployment Name

Nel mio caso per preparare la migrazione mi basta lanciare la cmdlet

Move-AzureService -Prepare -ServiceName NICVM00 -DeploymentName NICVM00 -CreateNewVirtualNetwork

Questa cmdlet ci metterà un po’ a completarsi. Vengono eseguite diverse operazioni, tra cui quella di verificare se ci sono i prerequisiti per la migrazione sia a livello di VM, di configurazione e di storage, per poter essere certi che non ci sarà nessun tipo di downtime durante la migrazione.

Ad operazione terminata vi apparirà il messaggio mostrato in figura:

Figura 7: Preparazione della migrazione effettuata con successo

Durante la fase di preparazione sono stati creati due endpoint diversi che puntano alla stessa risorsa (in questo caso la macchina virtuale NICVM00). In questo modo la macchina ora è accessibile da entrambe le modalità di management (Classic mode e ARM):

Figura 8: Preparazione della migrazione e accessibilità da entrambe le modalità di management

La macchina è visibile dal nuovo portale https://portal.azure.com e risulta inserita in un nuovo Resource Group chiamato NICVM00-Migrated

Figura 9: macchina “migrata” in un nuovo Resource Group

Termine della procedura di migrazione della macchina virtuale

Siamo pronti per terminare la procedura di migrazione. Per poterlo fare possiamo confermare con Commit o annullare con Abort. Confermo con la cmdlet

Move-AzureService -Commit -ServiceName NICVM00 -DeploymentName NICVM00

E ottengo il risultato mostrato in figura:

Figura 10: Operazione di Commit completata con successo

Tutte le dipendenze della macchina virtuale sono state migrate e la macchina non sarà più visibile dal vecchio portale. Dal nuovo portale invece potete vedere il nuovo Resource Group creato dopo la migrazione:

Figura 11: Nuovo Resource Group creato dopo la migrazinoe

Migrazione di una VNET con tutte le VM ad essa collegate

Per poter migrare una rete virtuale con tutte le macchine virtuali collegate occorre seguire pochi semplici passaggi. Nel mio caso la rete da migrare si chiama nicvnet2016, a cui è collegata una macchina virtuale chiamata NICVM01

Figura 12: rete da migrare

Come prima operazione ho lanciato la cmdlet
Move-AzureVirtualNetwork -Prepare -VirtualNetworkName nicvnet2016
per preparare la migrazione.

Figura 13: Preparazione della rete

In questo modo adesso la macchina virtuale a cui era collegata la rete è visibile da entrambi i portali. Basta infatti andare nel nodo Virtual Machines del nuovo portale di Azure (https://portal.azure.com) e verificare che la macchina NICVM01 risulta in stato di Updating ed è collegata al Resource Group NICVM01-Migrated

Figura 14: VM visibile nel nuovo portale

Adesso che la macchina è visibile dal nuovo portale mi sono collegato in desktop remoto e ne ho verificato tutte le funzionalità.

Termine della procedura di migrazione della rete virtuale

Siamo pronti per terminare la procedura di migrazione. Per poterlo fare possiamo confermare con Commit o annullare con Abort. Confermiamo con la cmdlet

Move-AzureVirtualNetwork -Commit -VirtualNetworkName nicvnet2016

E dopo qualche minuto la rete virtuale con tutte le macchine virtuali collegate sarà stata migrata al nuovo modello di management basato su Azure Resource Manager (ARM).

Figura 15: Conferma della migrazione al nuovo modello di gestione di Azure

Nel vecchio portale non vedrete più né la rete virtuale né le VM collegate e d’ora in poi tutta la gestione verrà fatta dal nuovo portale di Azure. Infatti troverete un nuovo Resource Group con il nome del Cloud Service seguito dalla parola –Migrated

Migrazione dello storage account

Dopo aver migrato le macchine virtuali è consigliato migrare anche lo storage account che le contiene. Come prima operazione prepariamo lo storage account per la migrazione seguendo la cmdlet

Move-AzureStorageAccount -Prepare -StorageAccountName NomeDelloStorageAccount

Esattamente come nel caso della rete, potete decidere se confermare con Commit o annullare con Abort. Confermiamo con la cmdlet

Move-AzureStorageAccount -Commit -StorageAccountName NomeDelloStorageAccount

Conclusioni

Migrare al nuovo modello di management di Azure è velocissimo, non prevede nessun tipo di downtime e si può fare con poche cmdlet Powershell. Per maggiori informazioni vi rimando al link http://aka.ms/classicmigration