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 di Azure usano dischi per archiviare il sistema operativo, le applicazioni e i dati. Quando si crea una macchina virtuale, è importante scegliere le dimensioni e la configurazione del disco 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
  • Tipi di disco e opzioni di prestazioni
  • 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 collegati automaticamente alla macchina virtuale.

Disco del sistema operativo: il disco del sistema operativo ospita il sistema operativo della macchina virtuale e può essere fino a 4.095 gibibyte (GiB), anche se molti sistemi operativi sono partizionati con record di avvio master (MBR) per impostazione predefinita. Un MBR limita le dimensioni utilizzabili a 2 TiB. Se sono necessari più di 2 TiB, creare e collegare dischi dati e usarli per l'archiviazione dei dati. I nomi dei dispositivi variano in base alla generazione della macchina virtuale e al tipo di controller del disco, quindi non fare affidamento su un percorso fisso, ad esempio /dev/sda. La memorizzazione nella cache del disco del sistema operativo è ottimizzata per le prestazioni del sistema operativo, quindi non archiviare i dati dell'applicazione sul disco del sistema operativo. Usare dischi dati per l'applicazione e l'archiviazione dei dati.

disco Temporary: l'archiviazione temporanea usa l'archiviazione locale nello stesso host Azure della macchina virtuale. A seconda delle dimensioni e della generazione della macchina virtuale, questa risorsa di archiviazione potrebbe essere visualizzata come disco temporaneo o disco NVMe locale. È ad alte prestazioni, ma non persistente. Se la macchina virtuale viene spostata in un nuovo host, i dati nell'archiviazione temporanea vengono rimossi. Le dimensioni disponibili dipendono dalle dimensioni della macchina virtuale.

Dischi dati

Per installare applicazioni e archiviare i dati, è possibile aggiungere dischi dati aggiuntivi. I dischi dati devono essere usati in qualsiasi situazione in cui si desidera un'archiviazione dei dati durevoli e reattiva. Le dimensioni della macchina virtuale determinano il numero di dischi dati che è possibile collegare a una macchina virtuale.

Tipi di dischi per la VM

Azure managed disks offrono cinque tipi di disco:

In generale, usare Premium SSD v2 o Premium SSD per i carichi di lavoro di produzione, SSD Standard per i carichi di lavoro di sviluppo e test e per i carichi di lavoro meno sensibili alle prestazioni, e Dischi Ultra per i carichi di lavoro sui dati a utilizzo intensivo di I/O. I dischi Ultra e SSD Premium v2 sono opzioni solo dischi dati e non possono essere usati come dischi del sistema operativo. Per informazioni dettagliate sui limiti, sulla disponibilità dell'area e sul dimensionamento, vedere Azure tipi di disco gestito.

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 Riprova nell'angolo superiore destro di un blocco di codice. È anche possibile avviare Cloud Shell in una scheda separata del browser in https://shell.azure.com. Selezionare Copy per copiare un blocco di codice, incollarlo in Cloud Shell e premere INVIO per eseguirlo.

Creare e collegare dischi

I dischi dati possono essere creati e collegati in fase di creazione della macchina virtuale o a una macchina virtuale esistente.

Collegare un disco alla creazione della macchina virtuale

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

az group create --name myResourceGroupDisk --location eastus

Creare una macchina virtuale usando il comando az vm create . L'esempio seguente crea una macchina virtuale denominata myVM, aggiunge un account utente denominato azureuser e genera chiavi SSH se non esistono già. L'argomento --data-disk-sizes-gb specifica dischi dati aggiuntivi da creare e collegare. Per creare e collegare più dischi, usare un elenco delimitato da spazi delle dimensioni del disco. Nell'esempio seguente viene creata una macchina virtuale con due dischi dati, entrambi 128 GiB. Poiché i dischi sono 128 GiB, è possibile configurare entrambi come dischi P10, che forniscono 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 a una macchina virtuale esistente

Per creare e collegare un nuovo disco a una macchina virtuale esistente, usare il comando az vm disk attach . L'esempio seguente crea un disco Premium da 128 GiB e lo collega alla macchina virtuale creata nell'ultimo passaggio.

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

Preparare un disco dati in Linux

Dopo aver collegato un disco alla macchina virtuale, configurare il sistema operativo per l'uso del disco. Gli esempi seguenti configurano manualmente il primo disco dati 128-GiB collegato al momento della creazione della macchina virtuale. Il controller del disco della macchina virtuale determina il modo in cui Linux espone il disco. È anche possibile automatizzare questo processo usando cloud-init, illustrato in un'esercitazione successiva.

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

ssh azureuser@10.101.10.10

Verificare di aver identificato il disco dati corretto prima di formattarlo. La formattazione del disco errato comporta la perdita di dati.

In una macchina virtuale con un controller SCSI usare lsblk per identificare il disco dati. Negli esempi seguenti viene usato /dev/sdc. Sostituire sdc con il nome del dispositivo per il disco dati.

lsblk -o NAME,HCTL,SIZE,MOUNTPOINT | grep -i "sd"

Partizionare il disco con parted, quindi usare partprobe per rendere il sistema operativo consapevole della nuova tabella di partizione.

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

Scrivere un file system sulla partizione usando il comando mkfs.

sudo mkfs.xfs /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 /datadrive punto di montaggio, che può essere verificato eseguendo il df -h comando .

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       128G   52M  128G   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

Il risultato visualizza l'UUID dell'unità. In una macchina virtuale con un controller SCSI, la partizione potrebbe essere visualizzata come /dev/sdc1. In una macchina virtuale con un controller NVMe può essere visualizzato come /dev/nvme0n2p1.

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

Annotazioni

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 /etc/fstab file in un editor di testo come indicato di seguito:

sudo nano /etc/fstab

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

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

Al termine della modifica del file, usare Ctrl+O per scrivere il file e Ctrl+X 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 puntuale e di sola lettura del disco. Gli snapshot delle macchine virtuali di Azure sono utili per salvare rapidamente lo stato di una macchina virtuale prima di apportare modifiche alla configurazione. In caso di problema o errore, è possibile ripristinare una macchina virtuale usando uno snapshot. Quando una macchina virtuale ha più dischi, viene creato uno snapshot di ogni disco in modo indipendente. Per eseguire backup coerenti con l'applicazione, è consigliabile arrestare la macchina virtuale prima di acquisire snapshot del disco. In alternativa, usare Backup di Azure, che supporta backup automatici durante l'esecuzione della macchina virtuale.

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 disco viene archiviato in una variabile in modo che possa 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, 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 un'istantanea

Questo snapshot può quindi essere convertito in un disco usando az disk create, che può essere usato per ricreare la macchina virtuale.

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

Ripristinare la VM dallo snapshot

Prima di eliminare la macchina virtuale, usare az vm show per archiviare gli ID risorsa di tutti i dischi dati nella dataDiskIds variabile.

dataDiskIds=$(az vm show \
   --resource-group myResourceGroupDisk \
   --name myVM \
   --query "storageProfile.dataDisks[].managedDisk.id" \
   --output tsv)

Per illustrare il ripristino della macchina virtuale, eliminare la macchina virtuale esistente usando az vm delete.

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

Creare una nuova macchina virtuale dal disco snapshot.

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

Ricollegare i dischi dati

Tutti i dischi dati devono essere ricollegati alla macchina virtuale.

Usare az vm disk attach con ogni ID risorsa per ricollegare tutti i dischi dati.

for dataDiskId in $dataDiskIds; do
   az vm disk attach \
      --resource-group myResourceGroupDisk \
      --vm-name myVM \
      --name "$dataDiskId"
done

Passaggi successivi

In questa esercitazione sono stati illustrati gli argomenti relativi ai dischi delle macchine virtuali, ad esempio:

  • Dischi del sistema operativo e dischi temporanei
  • Dischi dati
  • Tipi di disco e opzioni di prestazioni
  • Prestazioni dei dischi
  • Collegamento e preparazione dei dischi dati
  • Snapshot dei dischi

Passare all'esercitazione successiva per informazioni sull'automazione della configurazione della macchina virtuale.