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