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 da 128 GB. Poiché le dimensioni del disco sono di 128 GB, questi dischi sono entrambi configurati come P10, che forniscono al massimo 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, 128 gigabyte di dimensioni 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

Prepara dischi di dati

Dopo che un disco è stato collegato alla macchina virtuale, il sistema operativo deve essere configurato per l'uso del disco. Nell'esempio seguente viene illustrato come configurare manualmente un disco. Questo processo può anche essere automatizzato 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

Partizionare il disco con parted.

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

Scrivere un file system sulla partizione usando il comando mkfs. Usare partprobe per rendere il sistema operativo consapevole della 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

È 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        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 visualizza l'UUID dell'unità, /dev/sdc1 in questo caso.

/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

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 il disco dati

Tutti i dischi dati devono essere ricollegati alla macchina virtuale.

Trovare il nome del disco dati usando il comando az disk list . Questo 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 \
   --resource-group myResourceGroupDisk \
   --vm-name myVM \
   --name $datadisk

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.