Condividi tramite


Configurare LVM in una macchina virtuale Linux in Azure

Questo documento illustra come configurare Gestione volumi logici (LVM) nella macchina virtuale di Azure. La LVM può essere usata nel disco del sistema operativo o nei dischi dati nelle macchine virtuali di Azure, tuttavia, per impostazione predefinita la maggior parte delle immagini cloud non avrà LVM configurata sul disco del sistema operativo. La procedura seguente è incentrata sulla configurazione di LVM per i dischi dati.

Volumi logici lineari e con striping

LVM può essere usata per combinare un numero di dischi fisici in un singolo volume di archiviazione. Per impostazione predefinita, LVM creerà in genere volumi logici lineari, il che significa che l'archiviazione fisica viene concatenata insieme. In questo caso, le operazioni di lettura/scrittura verranno in genere inviate solo a un singolo disco. Al contrario di ciò, possiamo anche creare volumi logici stripe in cui le letture e le scritture vengono distribuite su più dischi contenuti nel gruppo di volumi (simile a RAID 0). Per motivi di miglioramento delle prestazioni, è probabile che si voglia eseguire lo striping dei volumi logici in modo che le letture e le scritture utilizzino tutti i dischi dati collegati.

Questo documento descrive come combinare più dischi dati in un singolo gruppo di volumi e quindi creare un volume logico con striping. I passaggi seguenti sono generalizzati per lavorare con la maggior parte delle distribuzioni. Nella maggior parte dei casi, le utilità e i flussi di lavoro per la gestione di LVM in Azure non sono fondamentalmente diversi rispetto ad altri ambienti. Come di consueto, consultare anche il fornitore linux per la documentazione e le procedure consigliate per l'uso di LVM con la distribuzione specifica.

Collegamento di dischi dati

In genere si vuole iniziare con due o più dischi dati vuoti quando si usa LVM. In base alle esigenze di I/O, è possibile scegliere di collegare dischi archiviati nell'archiviazione Standard, con un massimo di 500 operazioni di I/O/ps per disco o l'archiviazione Premium con un massimo di 5000 operazioni di I/O/ps per disco. Questo articolo non illustra in dettaglio come effettuare il provisioning e collegare dischi dati a una macchina virtuale Linux. Vedere l'articolo di Microsoft Azure collegare un disco per istruzioni dettagliate su come collegare un disco dati vuoto a una macchina virtuale Linux in Azure.

Installare le utilità LVM

  • Ubuntu

    sudo apt-get update
    sudo apt-get install lvm2
    
  • RHEL, CentOS & Oracle Linux

    sudo yum install lvm2
    
  • SLES 12 e openSUSE

    sudo zypper install lvm2
    
  • SLES 11

    sudo zypper install lvm2
    

    In SLES11 è anche necessario modificare /etc/sysconfig/lvm e impostare LVM_ACTIVATED_ON_DISCOVERED su "enable":

    LVM_ACTIVATED_ON_DISCOVERED="enable" 
    

Configurare LVM

In questa guida si presuppone che siano stati collegati tre dischi dati, a cui si farà riferimento come /dev/sdc, /dev/sdd e /dev/sde. Questi percorsi potrebbero non corrispondere ai nomi dei percorsi del disco nella macchina virtuale. È possibile eseguire 'sudo fdisk -l' o comando simile per elencare i dischi disponibili.

  1. Preparare i volumi fisici:

    sudo pvcreate /dev/sd[cde]
    Physical volume "/dev/sdc" successfully created
    Physical volume "/dev/sdd" successfully created
    Physical volume "/dev/sde" successfully created
    
  2. Creare un gruppo di volumi. In questo esempio viene chiamato il gruppo di volumi data-vg01:

    sudo vgcreate data-vg01 /dev/sd[cde]
    Volume group "data-vg01" successfully created
    
  3. Crea i volumi logici. Il comando seguente creerà un singolo volume logico denominato data-lv01 per estendere l'intero gruppo di volumi, ma si noti che è anche possibile creare più volumi logici nel gruppo di volumi.

    sudo lvcreate --extents 100%FREE --stripes 3 --name data-lv01 data-vg01
    Logical volume "data-lv01" created.
    
  4. Formattare il volume logico

    sudo mkfs -t ext4 /dev/data-vg01/data-lv01
    

    Nota

    Con SLES11 usare -t ext3 anziché ext4. SLES11 supporta solo l'accesso in sola lettura ai file system ext4.

Aggiungere il nuovo file system a /etc/fstab

Importante

Se il file /etc/fstab non viene modificato in modo corretto, il sistema potrebbe non essere disponibile per l'avvio. 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.

  1. Creare il punto di montaggio desiderato per il nuovo file system, ad esempio:

    sudo mkdir /data
    
  2. Individuare il percorso del volume logico

    lvdisplay
    --- Logical volume ---
    LV Path                /dev/data-vg01/data-lv01
    ....
    
  3. Aprire /etc/fstab in un editor di testo e aggiungere una voce per il nuovo file system, ad esempio:

    /dev/data-vg01/data-lv01  /data  ext4  defaults  0  2
    

    Quindi, salva e chiudi /etc/fstab.

  4. Verifica che l'elemento /etc/fstab sia corretto.

    sudo mount -a
    

    Se questo comando genera un messaggio di errore, controllare la sintassi nel file /etc/fstab.

    Eseguire quindi il comando mount per assicurarsi che il file system sia montato:

    mount
    ......
    /dev/mapper/data--vg01-data--lv01 on /data type ext4 (rw)
    
  5. (Facoltativo) Parametri di avvio failsafe in /etc/fstab

    Molte distribuzioni includono i parametri di montaggio nobootwait o nofail che possono essere aggiunti al file di /etc/fstab. Questi parametri consentono errori durante il montaggio di un file system specifico e consentono al sistema Linux di continuare l'avvio anche se non è in grado di montare correttamente il file system RAID. Per altre informazioni su questi parametri, vedere la documentazione della distribuzione.

    Esempio (Ubuntu):

    /dev/data-vg01/data-lv01  /data  ext4  defaults,nobootwait  0  2
    

Supporto TRIM/UNMAP

Alcuni kernel di Linux supportano operazioni TRIM/UNMAP allo scopo di rimuovere i blocchi inutilizzati sul disco. Queste operazioni sono particolarmente utili nell'archiviazione standard per informare Azure che le pagine eliminate non sono più valide e possono essere rimosse. L'eliminazione delle pagine può ridurre i costi se si creano file di grandi dimensioni e quindi li si elimina.

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

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

    /dev/data-vg01/data-lv01  /data  ext4  defaults,discard  0  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, CentOS & Oracle Linux

    # sudo yum install util-linux
    # sudo fstrim /datadrive