Usare il portale per collegare un disco dati a una macchina virtuale Linux

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

Questo articolo illustra come collegare dischi nuovi ed esistenti a una macchina virtuale Linux tramite il portale di Azure. È anche possibile collegare un disco dati a una macchina virtuale Windows nel portale di Azure.

Trovare la macchina virtuale Linux nel portale di Azure

Seguire questa procedura:

  1. Passare al portale di Azure per trovare la macchina virtuale. Cercare e selezionare Macchine virtuali.

  2. Selezionare la macchina virtuale a cui si vuole collegare il disco dall'elenco.

  3. Nella pagina Macchine virtuali , in Impostazioni, selezionare Dischi.

Collegare un nuovo disco dati gestito nel portale di Azure

Seguire questa procedura:

  1. Nel riquadro Dischi selezionare Crea e collega un nuovo disco in Dischi dati.

  2. Immettere un nome per il disco gestito. Esaminare le impostazioni predefinite e aggiornare il tipo di archiviazione, le dimensioni (GiB),la crittografia e la memorizzazione nella cache dell'host in base alle esigenze.

    Screenshot del riquadro Dischi dati del portale di Azure che mostra le impostazioni LUN, nome disco, tipo di archiviazione, dimensioni, crittografia e memorizzazione nella cache host per un nuovo disco gestito.

  3. Al termine, selezionare Salva nella parte superiore della pagina per creare il disco gestito e aggiornare la configurazione della macchina virtuale.

Collegare un disco dati gestito esistente nel portale di Azure

Seguire questa procedura:

  1. Nel riquadro Dischi selezionare Collega dischi esistenti in Dischi dati.

  2. Selezionare il menu a discesa per Nome disco e selezionare un disco dall'elenco dei dischi gestiti disponibili.

  3. Selezionare Salva per collegare il disco gestito esistente e aggiornare la configurazione della macchina virtuale.

Connettersi alla macchina virtuale Linux per montare il nuovo disco

È necessario SSH nella macchina virtuale per partizionare, formattare e montare il nuovo disco in modo che la macchina virtuale di Linux possa usarlo. Per altre informazioni, vedere How to use SSH with Linux on Azure (Come usare SSH con Linux in Azure). L'esempio seguente si connette a una macchina virtuale con l'indirizzo IP pubblico 10.123.123.25 con il nome utente azureuser:

ssh azureuser@10.123.123.25

Trovare il disco dati collegato in Linux

Azure macchine virtuali Linux possono esporre dischi gestiti tramite controller SCSI o NVMe. Selezionare il tipo di controller usato dalla macchina virtuale. Per informazioni dettagliate sui tipi di controller, vedere Conversione da SCSI a NVMe.

Usare lsblk per elencare i dischi in una macchina virtuale con un controller SCSI:

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

L'output è simile all'esempio seguente:

sda     0:0:0:0      30G
├─sda1             29.9G /
├─sda14               4M
└─sda15             106M /boot/efi
sdb     1:0:1:0      14G
└─sdb1               14G /mnt
sdc     3:0:0:0       4G

In questo esempio il disco aggiunto è sdc. Usa LUN 0 e ha una capacità di 4 GiB.

Per un esempio più complesso, ecco l'aspetto di più dischi dati nel portale:

Screenshot di tre dischi dati gestiti Azure: un'unità SSD Premium da 4 GiB al LUN 0, un'unità SSD Premium da 16 GiB al LUN 1 e un HDD Standard da 32 GiB al LUN 2.

Nell'immagine è possibile visualizzare tre dischi dati: 4 GiB nel LUN 0, 16 GiB nel LUN 1 e 32 GiB nel LUN 2.

Dall'output di lsblkè possibile notare che il disco da 4 GiB al LUN 0 è sdc, il disco da 16 GiB in LUN 1 è sdde il disco da 32 GiB al LUN 2 è sde.

sda     0:0:0:0      30G
├─sda1             29.9G /
├─sda14               4M
└─sda15             106M /boot/efi
sdb     1:0:1:0      14G
└─sdb1               14G /mnt
sdc     3:0:0:0       4G
sdd     3:0:0:1      16G
sde     3:0:0:2      32G

Preparare un nuovo disco dati vuoto in Linux

Importante

Se si usa un disco esistente che contiene dati, passare al montaggio del disco. Le istruzioni seguenti eliminano i dati sul disco. Verificare di aver identificato il disco corretto prima di formattarlo.

Se si collega un nuovo disco, è necessario partizionare il disco.

Usare l'utilità parted per partizionare un disco dati e mkfs.xfs formattare la partizione con il file system XFS.

  • Usare la versione più recente di parted disponibile per la distribuzione.
  • Se le dimensioni del disco sono pari a 2 tebibyte (TiB) o superiori, è necessario usare il partizionamento GPT. Se la dimensione del disco è inferiore a 2 TiB, è possibile usare il partizionamento MBR o GPT.

Nell'esempio seguente viene parted usato in /dev/sdc, dove il primo disco dati si trova in genere nella maggior parte delle macchine virtuali. Sostituire sdc con l'opzione corretta per il disco. L'esempio formatta la partizione usando il file system XFS .

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

Usare l'utilità partprobe per assicurarsi che il kernel riconosca la nuova tabella di partizione. Se non si usa partprobe, i blkid comandi o lsblk potrebbero non restituire immediatamente l'UUID per il nuovo file system.

Montare il disco dati in Linux

Creare una directory per montare il file system usando mkdir:

sudo mkdir /datadrive

Usare mount per montare il file system.

Sostituire /dev/sdc1 con la partizione per il disco dati identificato nella macchina virtuale con un controller SCSI.

sudo mount /dev/sdc1 /datadrive

Aggiungere l'unità al file /etc/fstab per assicurarsi che l'unità venga aggiunta automaticamente dopo un riavvio.

Assicurarsi che l'UUID (Universally Unique Identifier) venga usato in /etc/fstab per fare riferimento all'unità anziché a un nome di dispositivo, ad esempio /dev/sdc1 o /dev/nvme0n2p1. Se il sistema operativo rileva un errore del disco durante l'avvio, l'uso di UUID evita che venga montato il disco non corretto in una posizione specifica. Ai dischi dati rimanenti verrebbero quindi assegnati gli stessi ID di dispositivo. Per trovare l'UUID della nuova unità, usare l'utilità blkid .

sudo blkid

L'output seguente proviene da una macchina virtuale con un controller SCSI. In una macchina virtuale con un controller NVMe, la partizione del disco dati gestito viene visualizzata come percorso NVMe, ad esempio /dev/nvme0n2p1 anziché /dev/sdc1.

/dev/sda1: LABEL="cloudimg-rootfs" UUID="11111111-1b1b-1c1c-1d1d-1e1e1e1e1e1e" TYPE="ext4" PARTUUID="1a1b1c1d-11aa-1234-1a1a1a1a1a1a"
/dev/sda15: LABEL="UEFI" UUID="BCD7-96A6" TYPE="vfat" PARTUUID="1e1g1cg1h-11aa-1234-1u1u1a1a1u1u"
/dev/sdb1: UUID="22222222-2b2b-2c2c-2d2d-2e2e2e2e2e2e" TYPE="ext4" PARTUUID="1a2b3c4d-01"
/dev/sda14: PARTUUID="2e2g2cg2h-11aa-1234-1u1u1a1a1u1u"
/dev/sdc1: UUID="33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e" TYPE="xfs" PARTLABEL="xfspart" PARTUUID="c1c2c3c4-1234-cdef-asdf3456ghjk"

Configurare il montaggio automatico in /etc/fstab

Note

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. È necessario creare un backup del file /etc/fstab prima della modifica.

Aprire quindi il file /etc/fstab in un editor di testo. Aggiungere una riga alla fine del file, usando il valore UUID per la partizione creata nei passaggi precedenti e il punto di montaggio di /datadrive. Se è stato usato l'esempio di questo articolo, la nuova riga sarà simile all'esempio seguente.

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

Al termine della modifica del file, salvare e chiudere l'editor.

Note

La rimozione successiva di un disco dati senza modificare fstab potrebbe causare il mancato avvio della macchina virtuale. La maggior parte delle distribuzioni specifica le opzioni fstab nofail e/o nobootwait. Queste opzioni consentono l'avvio di un sistema anche se il disco non riesce a montare in fase di avvio. Per altre informazioni su questi parametri, consultare la documentazione della distribuzione.

L'opzione nofail garantisce l'avvio della macchina virtuale anche se il file system è danneggiato o il disco non esiste in fase di avvio. Senza questa opzione, è possibile che si verifichi un comportamento come descritto in Cannot SSH to Linux VM due to FSTAB errors (Non è possibile connettersi tramite SSH a una macchina virtuale Linux a causa di errori FSTAB)

Verificare il disco dati montato in Linux

Usare lsblk di nuovo per verificare che il disco dati sia montato in /datadrive.

lsblk -o NAME,HCTL,SIZE,MOUNTPOINT | grep -i "sd"
sda     0:0:0:0      30G
├─sda1             29.9G /
├─sda14               4M
└─sda15             106M /boot/efi
sdb     1:0:1:0      14G
└─sdb1               14G /mnt
sdc     3:0:0:0       4G
└─sdc1                4G /datadrive

Supporto TRIM/UNMAP per Linux in Azure

Alcuni kernel Linux supportano operazioni TRIM/UNMAP per eliminare i blocchi inutilizzati sul disco. Questa funzionalità è utile principalmente per informare Azure che le pagine eliminate non sono più valide e possono essere rimosse. Questa funzionalità consente di risparmiare sui dischi fatturati in base alla quantità di spazio di archiviazione utilizzata, ad esempio dischi standard non gestiti e snapshot del disco.

Esistono due modi per abilitare la funzione TRIM in una VM Linux. Come di consueto, consultare la propria distribuzione per ottenere l'approccio consigliato.

  1. Usare l'opzione discard di montaggio in /etc/fstab, ad esempio:

    UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e   /datadrive   xfs   defaults,discard   1   2
    
  2. In alcuni casi l'opzione discard può avere implicazioni sulle prestazioni. In alternativa, è possibile eseguire il comando fstrim manualmente dalla riga di comando oppure aggiungerlo a crontab per eseguirlo a intervalli regolari:

    Ubuntu

    sudo apt-get install util-linux
    sudo fstrim /datadrive
    

    RHEL

    sudo yum install util-linux
    sudo fstrim /datadrive
    

    SUSE

    sudo zypper install util-linux
    sudo fstrim /datadrive