Gestire i dischi di Azure con l'interfaccia della riga di comando di Azure

Le macchine virtuali di Azure usano dischi per archiviare sistema operativo, applicazioni e dati di macchine virtuali. Quando si crea una VM, è importante scegliere dimensione del disco e configurazione appropriate per il carico di lavoro previsto. Questa esercitazione illustra la distribuzione e la gestione dei dischi di VM. Vengono fornite informazioni su:

  • Dischi del sistema operativo e dischi temporanei
  • Dischi dati
  • Dischi Standard e Premium
  • Prestazioni dei dischi
  • Collegamento e preparazione dei dischi dati
  • Ridimensionamento dei dischi
  • Snapshot dei dischi

Avviare Azure Cloud Shell

Azure Cloud Shell è una shell Bash gratuita che può essere eseguita direttamente nel portale di Azure. Include l'interfaccia della riga di comando di Azure preinstallata e configurata per l'uso con l'account. Fare clic sul pulsante Cloud Shell nel menu nel riquadro in alto a destra nel portale di Azure.

Cloud Shell

Il pulsante avvia una shell interattiva che è possibile usare per eseguire tutti i passaggi in questo argomento:

Screenshot che mostra la finestra di Cloud Shell nel portale

Se si sceglie di installare e usare l'interfaccia della riga di comando in locale, per questa esercitazione è necessario eseguire l'interfaccia della riga di comando di Azure versione 2.0.4 o successiva. Eseguire az --version per trovare la versione. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure 2.0.

Dischi di Azure predefiniti

Quando viene creata una macchina virtuale di Azure, due dischi vengono automaticamente collegati alla macchina virtuale.

Disco del sistema operativo: i dischi del sistema operativo possono essere ridimensionati fino a 1 terabyte e ospitano il sistema operativo delle macchine virtuali. Il disco del sistema operativo viene etichettato come /dev/sda per impostazione predefinita. La configurazione della memorizzazione nella cache del disco del sistema operativo è ottimizzata per le prestazioni del sistema operativo. A causa di questa configurazione, il disco del sistema operativo non deve ospitare applicazioni o i dati. Per le applicazioni e i dati, usare un disco dati, descritto in dettaglio più avanti in questo articolo.

Disco temporaneo: i dischi temporanei usano un'unità SSD che si trova nello stesso host della macchina virtuale di Azure. I dischi temporanei sono altamente efficienti e possono essere usati per operazioni quali l'elaborazione dei dati temporanei. Tuttavia, se la macchina virtuale viene spostata in un nuovo host, tutti i dati memorizzati su un disco temporaneo vengono rimossi. Le dimensioni del disco temporaneo sono determinate dalle dimensioni della macchina virtuale. I dischi temporanei vengono etichettati come /dev/sdb e hanno un punto di montaggio /mnt.

Dimensioni del disco temporaneo

Tipo Dimensioni macchina virtuale Dimensioni massime del disco temporaneo (GB)
Utilizzo generico Serie A e D 800
Ottimizzate per il calcolo Serie F 800
Ottimizzate per la memoria Serie D e G 6144
Ottimizzate per l'archiviazione Serie L 5630
GPU Serie N 1.440
Prestazioni elevate Serie A e H 2000

Dischi dati di Azure

È possibile aggiungere altri dischi dati per l'installazione di applicazioni e l'archiviazione dei dati. I dischi dati devono essere usati in qualsiasi situazione in cui si desidera un'archiviazione dei dati durevoli e reattiva. Ciascun disco dati ha una capacità massima di 1 terabyte. Le dimensione della macchina virtuale determinano il numero di dischi dati possono essere collegati a una macchina virtuale. Per ogni core della macchina virtuale, è possibile collegare due dischi dati.

Numero massimo di dischi di dati per macchina virtuale

Tipo Dimensioni macchina virtuale Numero massimo di dischi di dati per macchina virtuale
Utilizzo generico Serie A e D 32
Ottimizzate per il calcolo Serie F 32
Ottimizzate per la memoria Serie D e G 64
Ottimizzate per l'archiviazione Serie L 64
GPU Serie N 48
Prestazioni elevate Serie A e H 32

Tipi di dischi per la VM

Azure offre due tipi di dischi.

Disco standard

Archiviazione Standard è supportata da unità disco rigido e offre un'archiviazione conveniente con buone prestazioni. I dischi standard sono ideali per un carico di lavoro di test e sviluppo conveniente.

Disco premium

I dischi premium sono supportati da un disco a bassa latenza e ad alte prestazioni basato su SSD. Ideale per le macchine virtuali che eseguono il carico di lavoro della produzione. L'archiviazione premium supporta le macchine virtuali serie DS, DSv2, GS e FS. I dischi premium sono di tre tipi, P10, P20 e P30. Le dimensioni del disco determinano il tipo di disco. Quando si effettua la selezione, il valore delle dimensioni di un disco viene arrotondato per eccesso al tipo successivo. Ad esempio, se le dimensioni del disco non superano i 128 GB, il tipo di disco è P10. Se le dimensioni del disco vanno da 129 a 512 GB, il tipo sarà un P20. Un valore superiore a 512 GB determina un tipo di disco P30.

Prestazioni disco premium

Tipo di disco di Archiviazione Premium P10 P20 P30
Dimensioni del disco (arrotondate) 128 GB 512 GB 1.024 GB (1 TB)
Operazioni IOPS al secondo max per disco 500 2.300 5.000
Velocità effettiva per disco 100 MB/s 150 MB/s 200 MB/s

Sebbene la tabella sopra riportata identifichi il numero massimo di operazioni di I/O al secondo per disco, è possibile raggiungere un livello superiore di prestazioni tramite lo striping di più dischi di dati. Ad esempio, una macchina virtuale Standard_GS5 può raggiungere un massimo di 80.000 operazioni di I/O al secondo. Per informazioni dettagliate sul numero massimo di operazioni di I/O al secondo per macchina virtuale, vedere Dimensioni delle VM Linux.

Creare e collegare dischi

I dischi dati possono essere creati e collegati al momento della creazione della macchina virtuale o a una macchina virtuale esistente.

Collegare un disco al momento della creazione della macchina virtuale

Creare un gruppo di risorse con il comando az group create.

az group create --name myResourceGroupDisk --location eastus

Creare una VM con il comando az vm create. L'argomento --datadisk-sizes-gb viene usato per specificare che è necessario creare un disco aggiuntivo e collegarlo alla macchina virtuale. Per creare e collegare più dischi, usare un elenco delimitato da spazio dei valori delle dimensioni del disco. Nell'esempio seguente viene creata una macchina virtuale con due dischi di dati, entrambi di 128 GB. Poiché le dimensioni dei dischi sono 128 GB, entrambi i dischi sono configurati come P10, il che garantisce un massimo di 500 operazioni di I/O al secondo per disco.

az vm create \
  --resource-group myResourceGroupDisk \
  --name myVM \
  --image UbuntuLTS \
  --size Standard_DS2_v2 \
  --data-disk-sizes-gb 128 128 \
  --generate-ssh-keys

Collegare un disco alla macchina virtuale esistente

Per creare e collegare un nuovo disco a una macchina virtuale esistente, usare il comando az vm disk attach. Nell'esempio seguente viene creato un disco premium, di 128 gigabyte, che viene collegato alla macchina virtuale creata nel passaggio precedente.

az vm disk attach --vm-name myVM --resource-group myResourceGroupDisk --disk myDataDisk --size-gb 128 --sku Premium_LRS --new 

Preparare i dischi di dati

Dopo aver collegato un disco alla macchina virtuale, il sistema operativo deve essere configurato per l'uso del disco. L'esempio seguente illustra come configurare manualmente un disco. È anche possibile automatizzare questo processo puòcon cloud-init, di cui si parlerà nell'esercitazione successiva.

Configurazione manuale

Creare una connessione SSH alla macchina virtuale. Sostituire l'indirizzo IP di esempio con l'indirizzo IP pubblico della macchina virtuale.

ssh 52.174.34.95

Eseguire la partizione del disco con fdisk.

(echo n; echo p; echo 1; echo ; echo ; echo w) | sudo fdisk /dev/sdc

Scrivere un file system nella partizione con il comando mkfs.

sudo mkfs -t ext4 /dev/sdc1

Montare il nuovo disco in modo che sia accessibile nel sistema operativo.

sudo mkdir /datadrive && sudo mount /dev/sdc1 /datadrive

È ora possibile accedere al disco tramite il punto di montaggio datadrive, che può essere verificato con l'esecuzione del comando df -h.

df -h

L'output mostra la nuova unità montata su /datadrive.

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        30G  1.4G   28G   5% /
/dev/sdb1       6.8G   16M  6.4G   1% /mnt
/dev/sdc1        50G   52M   47G   1% /datadrive

Per assicurarsi che l'unità venga rimontata dopo un riavvio, è necessario aggiungerla al file /etc/fstab. A tale scopo, ottenere l'UUID del disco con l'utilità blkid.

sudo -i blkid

L'output mostra l'UUID dell'unità, /dev/sdc1 in questo caso.

/dev/sdc1: UUID="33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e" TYPE="ext4"

Aggiungere una riga simile alla seguente al file /etc/fstab. Si noti anche che le barriere di scrittura possono essere disabilitate mediante barrier=0; questa configurazione può migliorare le prestazioni del disco.

UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e   /datadrive  ext4    defaults,nofail,barrier=0   1  2

Ora che il disco è stato configurato, chiudere la sessione SSH.

exit

Ridimensionare il disco della macchina virtuale

Dopo la distribuzione di una macchina virtuale, è possibile aumentare le dimensioni del disco del sistema operativo o dei dischi dati collegati. L'aumento delle dimensioni di un disco è utile quando è necessario un maggiore spazio di archiviazione o un livello superiore di prestazioni, ad esempio P10, P20 e P30. Si noti che non è possibile diminuire le dimensioni dei dischi.

Prima di aumentare le dimensioni del disco, è necessario conoscere l'ID o il nome del disco. Usare il comando az disk list per restituire tutti i dischi in un gruppo di risorse. Prendere nota del nome del disco di cui si desidera cambiare le dimensioni.

az disk list -g myResourceGroupDisk --query '[*].{Name:name,Gb:diskSizeGb,Tier:accountType}' --output table

La macchina virtuale deve anche essere deallocata. Usare il comando aaz vm deallocate per arrestare e deallocare la VM.

az vm deallocate --resource-group myResourceGroupDisk --name myVM

Usare il comando az disk update per ridimensionare il disco. In questo esempio un disco denominato myDataDisk viene ridimensionato a 1 terabyte.

az disk update --name myDataDisk --resource-group myResourceGroupDisk --size-gb 1023

Dopo aver completato l'operazione di ridimensionamento, avviare la macchina virtuale.

az vm start --resource-group myResourceGroupDisk --name myVM

Se è stato ridimensionato il disco del sistema operativo, la partizione di espande automaticamente. Se è stato ridimensionato un disco dati, tutte le partizioni correnti devono essere estese al sistema operativo delle macchine virtuali.

Snapshot di dischi di Azure

Quando si crea uno snapshot del disco, viene creata una copia temporizzata di sola lettura del disco. Gli snapshot della macchina virtuale di Azure sono utili per salvare rapidamente lo stato di una macchina virtuale prima di apportare modifiche alla configurazione. Nel caso in cui le modifiche alla configurazione si rivelino non volute, lo stato della macchina virtuale può essere ripristinato con lo snapshot. Quando una macchina virtuale dispone di più dischi, viene acquisito uno snapshot per ciascun disco separatamente dagli altri dischi. Per eseguire backup coerenti con l'applicazione, prendere in considerazione l'arresto della macchina virtuale prima di eseguire gli snapshot dei dischi. In alternativa, usare il Servizio Backup di Microsoft Azure, che consente di eseguire backup automatici, mentre la macchina virtuale è in esecuzione.

Creare uno snapshot

Prima di creare uno snapshot del disco della macchina virtuale, è necessario conoscere l'ID o il nome del disco. Usare il comando az vm show per ottenere l'ID del disco. In questo esempio l'ID del disco viene archiviato in una variabile in modo da poter essere usato in un passaggio successivo.

osdiskid=$(az vm show -g myResourceGroupDisk -n myVM --query "storageProfile.osDisk.managedDisk.id" -o tsv)

Dopo aver ottenuto l'ID del disco della macchina virtuale, usare il comando seguente per creare lo snapshot del disco.

az snapshot create -g myResourceGroupDisk --source "$osdiskid" --name osDisk-backup

Creare un disco da uno snapshot

Lo snapshot può quindi essere convertito in un disco da usare per ricreare la macchina virtuale.

az disk create --resource-group myResourceGroupDisk --name mySnapshotDisk --source osDisk-backup

Ripristinare una macchina virtuale da uno snapshot

Per illustrare il ripristino della macchina virtuale, eliminare la macchina virtuale esistente.

az vm delete --resource-group myResourceGroupDisk --name myVM

Creare una nuova macchina virtuale dal disco dello snapshot.

az vm create --resource-group myResourceGroupDisk --name myVM --attach-os-disk mySnapshotDisk --os-type linux

Ricollegare un disco dati

È necessario ricollegare tutti i dischi dati alla macchina virtuale.

Innanzitutto usare il comando az disk list per trovare il nome del disco dati. L'esempio inserisce il nome del disco in una variabile denominata datadisk, che viene usata nel passaggio successivo.

datadisk=$(az disk list -g myResourceGroupDisk --query "[?contains(name,'myVM')].[name]" -o tsv)

Usare il comando az vm disk attach per collegare il disco.

az vm disk attach –g myResourceGroupDisk –-vm-name myVM –-disk $datadisk

Passaggi successivi

In questa esercitazione sono stati descritti argomenti relativi ai dischi delle VM, ad esempio:

  • Dischi del sistema operativo e dischi temporanei
  • Dischi dati
  • Dischi Standard e Premium
  • Prestazioni dei dischi
  • Collegamento e preparazione dei dischi dati
  • Ridimensionamento dei dischi
  • Snapshot dei dischi

Passare all'esercitazione successiva per informazioni sull'automazione della configurazione delle macchine virtuali.