Configurare LVM in una macchina virtuale Linux in AzureConfigure LVM on a Linux VM in Azure

Questo documento illustra come configurare il gestore dei volumi logici (Logical Volume Manager, LVM) nella macchina virtuale di Azure.This document will discuss how to configure Logical Volume Manager (LVM) in your Azure virtual machine. Sebbene sia possibile configurare una LVM su qualsiasi disco collegato alla macchina virtuale, per impostazione predefinita la maggior parte delle immagini di cloud non avrà alcuna LVM configurata sul disco del sistema operativo.While it is feasible to configure LVM on any disk attached to the virtual machine, by default most cloud images will not have LVM configured on the OS disk. Questa impostazione consente di evitare problemi con i gruppi di volumi duplicati se il disco del sistema operativo viene collegato a un'altra macchina virtuale dello stesso tipo e della stessa distribuzione, ad esempio durante uno scenario di ripristino.This is to prevent problems with duplicate volume groups if the OS disk is ever attached to another VM of the same distribution and type, i.e. during a recovery scenario. Pertanto è consigliabile usare la LVM solo sui dischi dati.Therefore it is recommended only to use LVM on the data disks.

Volumi lineari e volumi con striping logiciLinear vs. striped logical volumes

La LVM può essere usata per combinare un numero di dischi fisici in un unico volume di archiviazione.LVM can be used to combine a number of physical disks into a single storage volume. Per impostazione predefinita la LVM crea generalmente volumi logici lineari, il che significa che l'archiviazione fisica è concatenata.By default LVM will usually create linear logical volumes, which means that the physical storage is concatenated together. In questo caso, le operazioni di lettura/scrittura sono in genere inviate solo a un singolo disco.In this case read/write operations will typically only be sent to a single disk. Al contrario, è anche possibile creare volumi logici con striping in cui le operazioni di lettura e scrittura sono distribuite in più dischi contenuti nel gruppo di volumi, ad esempio simile a RAID0.In contrast, we can also create striped logical volumes where reads and writes are distributed to multiple disks contained in the volume group (i.e. similar to RAID0). Per motivi di prestazioni è probabile che si debba eseguire lo striping dei volumi logici in modo che le letture e le scritture usino tutti i dischi dati associati.For performance reasons it is likely you will want to stripe your logical volumes so that reads and writes utilize all your attached data disks.

In questo documento viene descritto come combinare più dischi dati in un singolo gruppo di volumi e quindi creare un volume con striping logici.This document will describe how to combine several data disks into a single volume group, and then create a striped logical volume. I passaggi seguenti sono generalizzati per funzionare con la maggior parte delle distribuzioni.The steps below are somewhat generalized to work with most distributions. Nella maggior parte dei casi le utilità e i flussi di lavoro per la gestione di LVM in Azure non sono fondamentalmente diversi da altri ambienti.In most cases the utilities and workflows for managing LVM on Azure are not fundamentally different than other environments. Come sempre, consultare anche il fornitore Linux per la documentazione e le procedure consigliate per l'uso delle LVM con una distribuzione particolare.As usual, please also consult your Linux vendor for documentation and best practices for using LVM with your particular distribution.

Collegamento di dischi datiAttaching data disks

In genere si preferisce iniziare con due o più dischi dati vuoti quando si usano le LVM.One will usually want to start with two or more empty data disks when using LVM. In base alle esigenze di I/O, è possibile scegliere di collegare dischi che sono archiviati nell'archiviazione Standard con un massimo di 500 IO/ps per ogni disco o nell'archiviazione Premium con un massimo di 5.000 IO/ps per ogni disco.Based on your IO needs, you can choose to attach disks that are stored in our Standard Storage, with up to 500 IO/ps per disk or our Premium storage with up to 5000 IO/ps per disk. In questo articolo non verrà illustrato in dettaglio come eseguire il provisioning e collegare dischi dati a una macchina virtuale Linux.This article will not go into detail on how to provision and attach data disks to a Linux virtual machine. Per istruzioni dettagliate su come collegare un disco dati vuoto a una macchina virtuale Linux in Azure, vedere l'articolo di Microsoft Azure relativo al collegamento di dischi.Please see the Microsoft Azure article attach a disk for detailed instructions on how to attach an empty data disk to a Linux virtual machine on Azure.

Installare le utilità della LVMInstall the LVM utilities

  • UbuntuUbuntu

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

    sudo yum install lvm2
    
  • SLES 12 e openSUSESLES 12 and openSUSE

    sudo zypper install lvm2
    
  • SLES 11SLES 11

    sudo zypper install lvm2
    

    In SLES11 è anche necessario modificare /etc/sysconfig/lvm e impostare LVM_ACTIVATED_ON_DISCOVERED su "attivo":On SLES11 you must also edit /etc/sysconfig/lvm and set LVM_ACTIVATED_ON_DISCOVERED to "enable":

    LVM_ACTIVATED_ON_DISCOVERED="enable" 
    

Configurare la LVMConfigure LVM

In questa guida si presuppone che siano stati connessi tre dischi dati, che vengono indicati come /dev/sdc, /dev/sdd e /dev/sde.In this guide we will assume you have attached three data disks, which we'll refer to as /dev/sdc, /dev/sdd and /dev/sde. Si noti che questi nomi di percorso potrebbero non essere sempre gli stessi nella VM.Note that these may not always be the same path names in your VM. È possibile eseguiresudo fdisk -lo un comando simile per elencare i dischi disponibili.You can run 'sudo fdisk -l' or similar command to list your available disks.

  1. Preparare i volumi fisici:Prepare the physical volumes:

    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.Create a volume group. In questo esempio il nome del gruppo di volumi è data-vg01:In this example we are calling the volume group data-vg01:

    sudo vgcreate data-vg01 /dev/sd[cde]
    Volume group "data-vg01" successfully created
    
  3. Creare i volumi logici.Create the logical volume(s). Con il comando seguente si crea un singolo volume logico denominato data-lv01 da estendere nell'intero gruppo, ma si noti che è anche possibile creare più volumi logici nel gruppo di volumi.The command below we will create a single logical volume called data-lv01 to span the entire volume group, but note that it is also feasible to create multiple logical volumes in the volume group.

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

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

    Nota

    Con l'uso di SLES11 -t ext3 al posto di ext4.With SLES11 use -t ext3 instead of ext4. SLES11 supporta l'accesso in sola lettura per i file system ext4.SLES11 only supports read-only access to ext4 filesystems.

Aggiungere il nuovo file a /etc/fstabAdd the new file system to /etc/fstab

Importante

Se il file /etc/fstab non viene modificato in modo corretto, il sistema potrebbe non essere disponibile per l'avvio.Improperly editing the /etc/fstab file could result in an unbootable system. In caso di dubbi, fare riferimento alla documentazione della distribuzione per informazioni su come modificare correttamente questo file.If unsure, please refer to the distribution's documentation for information on how to properly edit this file. È inoltre consigliabile creare una copia di backup del file /etc/fstab prima della modifica.It is also recommended that a backup of the /etc/fstab file is created before editing.

  1. Creare il punto di montaggio desiderato per il nuovo file system, ad esempio:Create the desired mount point for your new file system, for example:

    sudo mkdir /data
    
  2. Individuare il percorso del volume logicoLocate the logical volume path

    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:Open /etc/fstab in a text editor and add an entry for the new file system, for example:

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

    Salvare e chiudere /etc/fstab.Then, save and close /etc/fstab.

  4. Verificare che la voce /etc/fstab sia corretta:Test that the /etc/fstab entry is correct:

    sudo mount -a
    

    Se questo comando genera un messaggio di errore, verificare la sintassi nel file /etc/fstab.If this command results in an error message please check the syntax in the /etc/fstab file.

    Eseguire quindi il comando mount per assicurarsi che il file system venga montato:Next run the mount command to ensure the file system is mounted:

    mount
    ......
    /dev/mapper/data--vg01-data--lv01 on /data type ext4 (rw)
    
  5. (Facoltativo) Parametri di avvio alternativo in /etc/fstab(Optional) Failsafe boot parameters in /etc/fstab

    Molte distribuzioni includono i parametri di montaggio nobootwait o nofail, che è possibile aggiungere al file /etc/fstab.Many distributions include either the nobootwait or nofail mount parameters that may be added to the /etc/fstab file. Tali parametri consentono di ignorare gli errori durante il montaggio di uno specifico file system. Consentono pertanto di proseguire l'avvio del sistema Linux anche se non è possibile montare correttamente il file system RAID.These parameters allow for failures when mounting a particular file system and allow the Linux system to continue to boot even if it is unable to properly mount the RAID file system. Per ulteriori informazioni su questi parametri, fare riferimento alla documentazione della distribuzione.Please refer to your distribution's documentation for more information on these parameters.

    Esempio (Ubuntu):Example (Ubuntu):

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

Supporto per TRIM/UNMAPTRIM/UNMAP support

Alcuni kernel di Linux supportano operazioni TRIM/UNMAP allo scopo di rimuovere i blocchi inutilizzati sul disco.Some Linux kernels support TRIM/UNMAP operations to discard unused blocks on the disk. Nel servizio di archiviazione standard, queste operazioni sono particolarmente utili per informare Azure che le pagine eliminate non sono più valide e possono essere rimosse.These operations are primarily useful in standard storage to inform Azure that deleted pages are no longer valid and can be discarded. L'eliminazione delle pagine consente di risparmiare sui costi quando si creano file di grandi dimensioni per poi eliminarli.Discarding pages can save cost if you create large files and then delete them.

Esistono due modi per abilitare la funzione TRIM in una VM Linux.There are two ways to enable TRIM support in your Linux VM. Come di consueto, consultare la documentazione della distribuzione per stabilire l'approccio consigliato:As usual, consult your distribution for the recommended approach:

  • Usare l'opzione di montaggio discard in /etc/fstab, ad esempio:Use the discard mount option in /etc/fstab, for example:

    /dev/data-vg01/data-lv01  /data  ext4  defaults,discard  0  2
    
  • In alcuni casi l'opzione discard può avere implicazioni sulle prestazioni.In some cases the discard option may have performance implications. In alternativa, è possibile eseguire il comando fstrim manualmente dalla riga di comando oppure aggiungerlo a crontab per eseguirlo a intervalli regolari:Alternatively, you can run the fstrim command manually from the command line, or add it to your crontab to run regularly:

    UbuntuUbuntu

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

    RHEL/CentOSRHEL/CentOS

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