Configuración del LVM en una máquina virtual Linux en Azure

Este documento describe cómo configurar el administrador de volúmenes lógicos (LVM, Logical Volume Manager) en una máquina virtual de Azure. LVM se puede usar en el disco del sistema operativo o en discos de datos en VM de Azure; sin embargo, de forma predeterminada la mayoría de las imágenes de nube no tendrá LVM configurado en el disco del sistema operativo. Los pasos siguientes se centrarán en la configuración de LVM para los discos de datos.

Volúmenes lógicos lineales frente a seccionados

El LVM se puede utilizar para combinar diversos discos físicos en un único volumen de almacenamiento. De forma predeterminada, el LVM suele crear volúmenes lógicos lineales, lo que significa que el almacenamiento físico se concatena todo junto. En este caso, las operaciones de lectura y escritura normalmente solo se enviarán a un único disco. En cambio, también podemos crear volúmenes lógicos seccionados en los que las lecturas y escrituras se distribuyan en varios discos del grupo de volúmenes (similar a RAID0). Por motivos de rendimiento, es probable que deba seccionar los volúmenes lógicos para que las lecturas y escrituras utilicen todos los discos de datos conectados.

Este documento describe cómo combinar varios discos de datos en un único grupo de volúmenes y crear un volumen lógico seccionado. Los pasos siguientes están generalizados para que funcionen con la mayoría de las distribuciones. En la mayoría de los casos, las utilidades y los flujos de trabajo para la administración de LVM en Azure no se diferencian en esencia de los de otros entornos. Como de costumbre, consulte a su proveedor de Linux con el fin de obtener la documentación y los procedimientos recomendados para usar el LVM en una distribución en particular.

Conexión de discos de datos

Normalmente, cuando utilice el LVM, conviene comenzar al menos dos discos de datos vacíos. Según sus requisitos de E/S, puede decidir asociar discos que estén almacenados en Standard Storage con hasta 500 E/S por segundo por disco o Premium Storage con hasta 5000 E/S por segundo por disco. En este artículo no entramaremos en detalles sobre cómo asociar discos de datos a una máquina virtual Linux. Consulte el artículo de Microsoft Azure sobre la conexión de un disco para obtener instrucciones detalladas sobre cómo conectar un disco de datos vacío a una máquina virtual Linux en Azure.

Instalación de las utilidades del LVM

  • Ubuntu

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

    sudo yum install lvm2
    
  • 12 SLES y openSUSE

    sudo zypper install lvm2
    
  • SLES 11

    sudo zypper install lvm2
    

    En SLES11 también debe editar /etc/sysconfig/lvm y establecer LVM_ACTIVATED_ON_DISCOVERED en "habilitar":

    LVM_ACTIVATED_ON_DISCOVERED="enable" 
    

Configuración del LVM

En esta guía, se presupone la conexión de tres discos de datos, a los que se llamará /dev/sdc, /dev/sdd y /dev/sde. Estas rutas de acceso no pueden coincidir con los nombres de ruta de acceso de disco en la VM. Puede ejecutarsudo fdisk -lo un comando similar para ver la lista de los discos disponibles.

  1. Prepare los volúmenes físicos:

    sudo pvcreate /dev/sd[cde]
    Physical volume "/dev/sdc" successfully created
    Physical volume "/dev/sdd" successfully created
    Physical volume "/dev/sde" successfully created
    
  2. Cree un grupo de volúmenes. En este ejemplo, el grupo de volúmenes se llamará data-vg01:

    sudo vgcreate data-vg01 /dev/sd[cde]
    Volume group "data-vg01" successfully created
    
  3. Cree los volúmenes lógicos. El comando siguiente creará un único volumen lógico llamado data-lv01 para abarcar todo el grupo de volúmenes, pero tenga en cuenta que también se pueden crear varios volúmenes lógicos dentro del grupo de volúmenes.

    sudo lvcreate --extents 100%FREE --stripes 3 --name data-lv01 data-vg01
    Logical volume "data-lv01" created.
    
  4. Formatee el volumen lógico.

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

    Nota

    En SLES11, utilice -t ext3 en vez de ext4. SLES11 admite únicamente el acceso de solo lectura a los sistemas de archivos ext4.

Incorporación del nuevo sistema de archivos a /etc/fstab

Importante

La edición incorrecta del archivo /etc/fstab puede tener como resultado un sistema que no se pueda arrancar. Si no está seguro, consulte la documentación de distribución para obtener información sobre cómo editar correctamente ese archivo. También se recomienda realizar una copia de seguridad del archivo /etc/fstab antes de editarlo.

  1. Cree el punto de montaje deseado para el nuevo sistema de archivos, por ejemplo:

    sudo mkdir /data
    
  2. Busque la ruta de acceso del volumen lógico.

    lvdisplay
    --- Logical volume ---
    LV Path                /dev/data-vg01/data-lv01
    ....
    
  3. Abra /etc/fstab en un editor de texto y agregue una entrada al nuevo sistema de archivos, por ejemplo:

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

    A continuación, guarde y cierre /etc/fstab.

  4. Compruebe que la entrada /etc/fstab es correcta:

    sudo mount -a
    

    Si este comando genera un mensaje de error, compruebe la sintaxis del archivo /etc/fstab.

    A continuación, ejecute el comando mount para garantizar el montaje del sistema de archivos:

    mount
    ......
    /dev/mapper/data--vg01-data--lv01 on /data type ext4 (rw)
    
  5. (Opcional) Parámetros de arranque a prueba de errores en /etc/fstab

    Muchas distribuciones incluyen los parámetros de montaje nobootwait o nofail que pueden agregarse al archivo /etc/fstab. Estos parámetros admiten errores al montar un sistema de archivos concreto y permiten que el sistema Linux continúe iniciándose incluso aunque no pueda montar correctamente el sistema de archivos RAID. Consulte la documentación de su distribución para obtener más información sobre estos parámetros.

    Ejemplo (Ubuntu):

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

Compatibilidad con TRIM y UNMAP

Algunos kernels de Linux admiten operaciones TRIM/UNMAP para descartar bloques no usados del disco. Estas operaciones son especialmente útiles en el almacenamiento estándar para informar a Azure de que las páginas eliminadas ya no son válidas y se pueden descartar. El descarte de páginas puede suponer un ahorro de dinero si crea archivos grandes y, a continuación, los elimina.

Hay dos maneras de habilitar la compatibilidad con TRIM en su máquina virtual Linux. Como es habitual, consulte la documentación de distribución para ver el enfoque recomendado:

  • Use la opción de montaje discard en /etc/fstab, por ejemplo:

    /dev/data-vg01/data-lv01  /data  ext4  defaults,discard  0  2
    
  • En algunos casos, la opción discard podría tener afectar al rendimiento. Como alternativa, puede ejecutar el comando fstrim manualmente desde la línea de comandos o agregarlo a su crontab para ejecutar con regularidad:

    Ubuntu

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

    RHEL, CentOS y Oracle Linux

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