Esercitazione: gestire i dischi di Azure con l'interfaccia della riga di comando di Azure

Si applica a: ✔️ macchine virtuali di Linux ✔️ set di scalabilità flessibili

Le macchine virtuali (VM) di Azure usano dischi per archiviare sistema operativo, applicazioni e dati. Quando si crea una VM, è importante scegliere dimensioni del disco e configurazione appropriate per il carico di lavoro previsto. Questa esercitazione illustra come distribuire e gestire i dischi delle macchine virtuali. 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
  • Snapshot dei dischi

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 2 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 essere usato per applicazioni o dati. Per le applicazioni e i dati, usare un disco dati, descritto in dettaglio più avanti in questa esercitazione.

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.

Dischi dati di Azure

Per installare applicazioni e archiviare dati è possibile aggiungere altri dischi dati. I dischi dati devono essere usati in qualsiasi situazione in cui si desidera un'archiviazione dei dati durevoli e reattiva. Le dimensione della macchina virtuale determinano il numero di dischi dati possono essere collegati a una macchina virtuale.

Tipi di dischi per la VM

Azure offre due tipi di dischi.

Dischi Standard: sono supportati da unità disco rigido e offrono un'archiviazione conveniente con buone prestazioni. I dischi standard sono ideali per un carico di lavoro di sviluppo e test con costi contenuti.

Dischi Premium: sono supportati da un disco a bassa latenza e ad alte prestazioni basato su unità SSD. Ideali per le macchine virtuali che eseguono un carico di lavoro di produzione. Le dimensioni di macchina virtuale che contengono la lettera S nel nome delle dimensioni in genere supportano Archiviazione Premium. Le macchine virtuali di Azure serie DS, DSv2 e GS e FS, ad esempio, supportano Archiviazione Premium. Quando si selezionano le dimensioni del disco, il valore viene arrotondato per eccesso al tipo successivo. Ad esempio, se le dimensioni del disco superano i 64 GB ma sono inferiori a 128 GB, il tipo di disco è P10.


Dimensioni SSD Premium P1 P2 P3 P4 P6 P10 P15 P20 P30 P40 P50 P60 P70 P80
Dimensioni disco in GiB 4 8 16 32 64 128 256 512 1.024 2.048 4.096 8,192 16,384 32.767
Operazioni di I/O al secondo con provisioning di base per disco 120 120 120 120 240 500 1.100 2.300 5,000 7.500 7.500 16.000 18.000 20.000
**Operazioni di I/O al secondo con provisioning espanso per disco N/D N/D N/D N/D N/D N/D N/D N/D 8.000 16.000 20.000 20.000 20.000 20.000
Velocità effettiva con provisioning di base per disco 25 MB/s 25 MB/s 25 MB/s 25 MB/s 50 MB/s 100 MB/s 125 MB/s 150 MB/s 200 MB/s 250 MB/s 250 MB/s 500 MB/s 750 MB/s 900 MB/s
**Velocità effettiva con provisioning espanso per disco N/D N/D N/D N/D N/D N/D N/D N/D 300 MB/s 600 MB/s 900 MB/s 900 MB/s 900 MB/s 900 MB/s
Numero massimo di operazioni di I/O al secondo in modalità burst per disco 3.500 3.500 3.500 3.500 3.500 3.500 3.500 3.500 30.000* 30.000* 30.000* 30.000* 30.000* 30.000*
Velocità effettiva massima in modalità burst per disco 170 MB/s 170 MB/s 170 MB/s 170 MB/s 170 MB/s 170 MB/s 170 MB/s 170 MB/s 1.000 MB/s* 1.000 MB/s* 1.000 MB/s* 1.000 MB/s* 1.000 MB/s* 1.000 MB/s*
Durata massima in modalità burst 30 min 30 min 30 min 30 min 30 min 30 min 30 min 30 min Nessun limite* Nessun limite* Nessun limite* Nessun limite* Nessun limite* Nessun limite*
Idoneo per la prenotazione No No No No No No No No Sì, fino a un anno Sì, fino a un anno Sì, fino a un anno Sì, fino a un anno Sì, fino a un anno Sì, fino a un anno

*Si applica solo ai dischi con bursting on demand abilitato.
**Si applica solo ai dischi con performance plus (anteprima) abilitate.

Quando si effettua il provisioning di un disco di archiviazione Premium, a differenza di Archiviazione Standard, vengono garantiti livelli di capacità, IOPS e velocità effettiva del disco. Se ad esempio si crea un disco P50, Azure effettua il provisioning di 4.095 GB di capacità di archiviazione, 7.500 IOPS e 250 MB/s di velocità effettiva per tale disco. L'applicazione può usare la totalità o una della capacità e delle prestazioni. I dischi SSD Premium sono progettati per offrire basse latenze di pochissimi millisecondi, nonché il numero di operazioni di I/O al secondo e la velocità effettiva di destinazione descritti nella tabella precedente per il 99,9% del tempo.

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, è possibile collegare 64 dati dischi alla macchina virtuale Standard_GS5. Se ognuno di questi dischi viene ridimensionato come un P30, è possibile ottenere 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 Tipi e dimensioni delle macchine virtuali.

Avviare Azure Cloud Shell

Azure Cloud Shell è una shell interattiva gratuita che può essere usata per eseguire la procedura di questo articolo. Include strumenti comuni di Azure preinstallati e configurati per l'uso con l'account.

Per aprire Cloud Shell, selezionare Prova nell'angolo in alto a destra di un blocco di codice. È anche possibile avviare Cloud Shell in una scheda separata del browser visitando https://shell.azure.com/powershell. Selezionare Copia per copiare i blocchi di codice, incollarli in Cloud Shell e premere INVIO per eseguirli.

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'esempio seguente crea una macchina virtuale denominata myVM, aggiunge un account utente denominato azureuser e genera le chiavi SSH, se non esistono già. 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 Ubuntu2204 \
  --size Standard_DS2_v2 \
  --admin-username azureuser \
  --generate-ssh-keys \
  --data-disk-sizes-gb 128 128

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 \
    --resource-group myResourceGroupDisk \
    --vm-name myVM \
    --name 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.

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

ssh azureuser@10.101.10.10

Eseguire la partizione del disco con parted.

sudo parted /dev/sdc --script mklabel gpt mkpart xfspart xfs 0% 100%

Scrivere un file system nella partizione con il comando mkfs. Usare partprobe per fare in modo che il sistema operativo riconosca la modifica.

sudo mkfs.xfs /dev/sdc1
sudo partprobe /dev/sdc1

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

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

È possibile ora accedere al disco tramite il punto di montaggio /datadrive, che è possibile verificare eseguendo il comando df -h.

df -h | grep -i "sd"

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

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        29G  2.0G   27G   7% /
/dev/sda15      105M  3.6M  101M   4% /boot/efi
/dev/sdb1        14G   41M   13G   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="xfs"

Nota

Se il file /etc/fstab non viene modificato in modo corretto, il sistema potrebbe diventare non avviabile. In caso di dubbi, fare riferimento alla documentazione della distribuzione per informazioni su come modificare correttamente questo file. È inoltre consigliabile creare una copia di backup del file /etc/fstab prima della modifica.

Aprire il file /etc/fstab in un editor di testo, come segue:

sudo nano /etc/fstab

Aggiungere una riga simile alla seguente al file /etc/fstab, sostituendo il valore UUID con quello personale.

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

Dopo aver completato la modifica del file, usare Ctrl+O per scrivere il file e Ctrl+X per uscire dall'editor.

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

exit

Acquisire uno snapshot del disco

Quando si crea uno snapshot del disco, Azure crea 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. In caso di problemi o errori, è possibile ripristinare la macchina virtuale usando uno 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.

Crea snapshot

Prima di creare uno snapshot, è necessario l'ID o il nome del disco. Usare az vm show per visualizzare l'ID 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)

Ora che l'ID è disponibile, usare az snapshot create per creare uno snapshot del disco.

az snapshot create \
    --resource-group myResourceGroupDisk \
    --source "$osdiskid" \
    --name osDisk-backup

Creare un disco da uno snapshot

È quindi possibile usare az disk create per convertire lo snapshot in un disco, che può essere usato 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, usare az vm delete per 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.

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')].[id]" \
   -o tsv)

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

az vm disk attach \
   –g myResourceGroupDisk \
   --vm-name myVM \
   --name $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
  • Snapshot dei dischi

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