GNU/Linux >> Tutoriales Linux >  >> Linux

Gestión de volúmenes lógicos explicada en Linux

En Linux, puede ser bastante difícil administrar el almacenamiento y los sistemas de archivos y a menudo necesita muchos comandos diferentes para mover datos.

El almacenamiento tradicional suele estar formado por tres capas diferentes:el disco físico (ya sea HDD o SSD), las particiones lógicas creado en él y el sistema de archivos formateado en la partición.

Sin embargo, esas tres capas suelen estar estrechamente acopladas:puede ser bastante difícil reducir las particiones existentes para crear una nueva.

Del mismo modo, es bastante difícil ampliar un sistema de archivos si agrega un nuevo disco a su sistema:tendría que mover datos de un disco a otro, lo que a veces provocaría una pérdida de datos. .

Afortunadamente para usted, existe una herramienta o una abstracción que puede usar en Linux para administrar almacenamientos:LVM .

LVM , abreviatura de Gestión de volúmenes lógicos , viene como un conjunto de herramientas que le permite ampliar, reducir los volúmenes existentes y reemplazar los discos existentes mientras el sistema está en funcionamiento.

En este tutorial, aprenderemos sobre LVM y cómo puede implementarlos fácilmente en su sistema.

Explicación de las capas LVM

Antes de comenzar, es importante que pueda comprender bien cómo están diseñados los LVM en su sistema .

Si ya ha trabajado con dispositivos de almacenamiento normales, ya conoce la relación entre los discos y los sistemas de archivos.

En Linux, tiene discos físicos que detecta y administra automáticamente udev cuando se inserta por primera vez.

En esos discos, puede crear particiones utilizando una de las utilidades populares disponibles (fdisk, parted o gparted).

Finalmente, usted formatear sistemas de archivos en esas particiones para almacenar sus archivos.

Usando LVM, el diseño de almacenamiento es un poco diferente.

Entre particiones y sistemas de archivos, tiene tres capas adicionales:volúmenes físicos, grupos de volúmenes y volúmenes lógicos.

Volumen físico

Al usar LVM, los volúmenes físicos están destinados a representar las particiones que ya existen en sus discos duros.

Cuando los administradores del sistema se refieren a "volúmenes físicos", a menudo se refieren al dispositivo físico real que almacena datos en nuestro sistema.

Los volúmenes físicos se nombran de la misma manera que las particiones físicas :/dev/sda1 para la primera partición de su primer disco duro, /dev/sdb1 para la primera partición de su segunda unidad y así sucesivamente.

Grupo de volumen

Justo sobre los volúmenes físicos, el grupo de volúmenes puede verse como múltiples volúmenes físicos agrupados para formar un solo volumen.

Metafóricamente, los grupos de volúmenes pueden verse como contenedores de almacenamiento. :son un conjunto de diferentes volúmenes físicos que se pueden utilizar para ampliar los volúmenes lógicos existentes o para crear otros nuevos.

Los grupos de volúmenes no tienen una convención de nombres, sin embargo, se acepta comúnmente que estén precedidos por el prefijo "vg" ("vg-storage “, “unidades vg ” por ejemplo)

Volúmenes lógicos

Finalmente, los volúmenes lógicos están destinados a ser enlaces directos entre los grupos de volúmenes y los sistemas de archivos formateados en sus dispositivos.

Tienen un uno a uno relación con los sistemas de archivos y esencialmente representan una partición de su grupo de volúmenes.

Incluso si los volúmenes lógicos se nombran de la misma manera que los puntos de montaje, son dos conceptos diferentes y el volumen lógico es una entidad muy diferente de su sistema de archivos.

Nota :expandir su volumen lógico no significa que expandirá automáticamente su sistema de archivos, por ejemplo.

Ventajas de LVM sobre la gestión de discos estándar

Logical Volume Management se creó en primer lugar para corregir la mayoría de las deficiencias asociadas con la administración de discos regular en Linux.

Una de las principales ventajas de LVM es el hecho de que puede volver a montar su espacio mientras su sistema está funcionando.

Modificación de almacenamiento en vivo

Como probablemente notó en el pasado, su almacenamiento en un host está estrechamente acoplado a las particiones escritas en sus discos.

Como consecuencia, reformatear una partición o volver a ensamblar un sistema de archivos sobre otra partición obligaba a cualquier administrador del sistema a reiniciar el sistema. .

Esto se debe principalmente al hecho de que el Kernel no puede leer la tabla de particiones en vivo y necesita un reinicio completo para poder sondear las diferentes particiones de su sistema.

Obviamente, esto puede ser un problema importante si se trata de un servidor de producción:si su sitio web se ejecuta en este servidor, no podrá reiniciarlo sin que el sitio web esté caído.

Si su sitio web no funciona, significa que probablemente no podrá satisfacer las necesidades de sus clientes, lo que provocará una pérdida de dinero.

LVM resuelve este problema creando una capa de abstracción sobre las particiones regulares :si no está tratando con particiones regulares, no necesita volver a leer la tabla de particiones, solo necesita actualizar la asignación de su dispositivo.

Con esta elección de diseño, la gestión del almacenamiento se convierte en un software a software. problemático y ya no está vinculado al hardware, al menos no directamente.

Difusión de espacio en varios discos

Otro gran aspecto de LVM es el hecho de que puede fácilmente difundir datos en varios discos .

Si observa el diagrama que se muestra antes, verá que existe un fuerte acoplamiento entre los sistemas de archivos y las particiones:como consecuencia, es bastante difícil tener datos almacenados en varios discos.

LVM viene como una gran solución para este problema:sus volúmenes lógicos pertenecen a un grupo de volúmenes central .

Incluso si el grupo de volúmenes está formado por varios discos, no tiene que administrarlos usted mismo, el mapeador de dispositivos lo hace por usted.

Esto es cierto para expandir los sistemas de archivos, pero también para reducirlos y transferir datos de un dispositivo físico a otro.

Administración de volúmenes físicos LVM

En esta sección, vamos a utilizar comandos para mostrar, crear o eliminar volúmenes físicos en su sistema.

Mostrar volúmenes físicos existentes

Para mostrar los dispositivos de almacenamiento existentes en Linux, debe usar el comando "lvmdiskscan".

$ sudo lvmdiskscan

Nota :si las utilidades LVM no están instaladas en su host, por ejemplo, tiene un error de "comando no encontrado", debe instalar los programas LVM ejecutando "apt-get install lvm2" como root.

Al ejecutar "lvmdiskscan", se le presentan los diferentes discos disponibles en su host.

En esos discos, también verá particiones si ya se crearon en esos discos.

Finalmente, probablemente la información más importante, verá cuántos volúmenes físicos LVM se crean en su sistema.

Nota :este es un punto importante de la flexibilidad de LVM:puede crear volúmenes físicos a partir de discos completos o particiones de esos discos.

En este caso, estamos comenzando con un servidor completamente nuevo sin volúmenes físicos LVM creados.

Para mostrar los volúmenes físicos existentes en su host, también puede usar el comando "pvs" .

$ pvs

Crear nuevos volúmenes físicos

La creación de nuevos volúmenes físicos en Linux es bastante sencilla:debe ejecutar "pvcreate" y especificar los dispositivos físicos subyacentes que se crearán.

$ pvcreate <device_1> <device_2> ... <device_n>

En nuestro caso, digamos que queremos crear un volumen físico para el segundo disco conectado a nuestro host, que es "sdb".

$ pvcreate /dev/sdb

Nota :no podrá crear volúmenes físicos a partir de dispositivos que ya están montados en su sistema. Como consecuencia, "sda1" (que generalmente almacena la partición raíz) no se puede transferir fácilmente a LVM.

Ejecutar el comando "lvmdiskscan" nuevamente muestra un resultado muy diferente en comparación con la primera sección.

$ lvmdiskscan

Como puede ver, nuestro host detecta automáticamente que un disco completo está formateado como un volumen físico LVM y que está listo para agregarse a un grupo de volúmenes.

De manera similar, el comando "pvs" ahora tiene una salida diferente:nuestro nuevo disco se ha agregado a la lista de volúmenes físicos disponibles en nuestro host.

$ pvs

Ahora que ha creado con éxito su primer grupo de volúmenes, es hora de crear su primer grupo de volúmenes.

Gestión de grupos de volúmenes LVM

A menos que su sistema esté preconfigurado con volúmenes LVM, no debe crear ningún grupo de volúmenes en su sistema.

Para enumerar los grupos de volúmenes existentes en su host, debe usar el comando "vgs" sin argumentos.

$ vgs

Crear grupo de volúmenes usando vgcreate

La forma más sencilla de crear un grupo de volúmenes es usar "vgcreate", para especificar el nombre del grupo de volúmenes que se creará y los volúmenes físicos que se incluirán en él.

$ vgcreate <volume_name> <physical_volume_1> <physical_volume_2> ... <physical_volume_n>

En nuestro caso, solo tenemos un volumen físico en nuestro host (que es /dev/sdb) que se usará para crear el grupo de volúmenes "vg_1".

$ vgcreate vg_1 /dev/sdb

Enumerar y mostrar grupos de volúmenes existentes

Listar los grupos de volúmenes existentes en su sistema usando "vgs" ahora debería mostrar el grupo de volúmenes "vg_1" que acaba de crear.

$ vgs

Sin argumentos, se le presentan siete columnas diferentes:

  • VG :describe el nombre del grupo de volúmenes en el host;
  • #PV :muestra el número de volúmenes físicos disponibles en el grupo de volúmenes;
  • #LV :de manera similar, la cantidad de volúmenes lógicos creados a partir del grupo de volúmenes;
  • #SN :número de instantáneas creadas a partir de los volúmenes lógicos;
  • Atributo :describe los atributos del grupo de volumen (w para escritura, z para redimensionable y n para "normal");
  • Tamaño V :el tamaño del volumen en GB del grupo de volúmenes;
  • VLibre :el espacio disponible en el grupo de volúmenes

Si desea obtener más información sobre sus grupos de volumen existentes, puede utilizar el comando "vgdisplay".

$ vgdisplay

$ vgdisplay <volume_group>

Como probablemente haya notado, "vgdisplay" muestra mucha más información que el simple comando "vgs".

Cerca del final de la salida, puede ver dos columnas denominadas "Tamaño de PE" y "PE total", abreviatura de "Tamaño de extensión física" y "Extensión física total".

Bajo el capó, LVM administra extensiones físicas que son fragmentos de datos muy similares al concepto de tamaño de bloque en las particiones.

En este caso, LVM gestiona para este grupo de volúmenes extensiones físicas que tienen un tamaño de 4,00 MiB y el grupo de volúmenes tiene 511 extensiones físicas diferentes. El cálculo obviamente conduce a un tamaño de espacio de 2,00 GiB (4*511 =2,044 MiB o 2,00 GiB).

En la práctica, no debería tener que preocuparse demasiado por las extensiones físicas:LVM siempre se asegura de que se conserve el mapeo entre las extensiones físicas y los volúmenes lógicos.

Ahora que ha creado su primer grupo de volúmenes, es hora de crear su primer volumen lógico para almacenar datos.

Administración de volúmenes lógicos LVM

Para crear un volumen lógico en un grupo de volúmenes, debe usar el comando "lvcreate", especificar el nombre del volumen lógico y el grupo de volúmenes al que pertenece.

Para especificar el espacio que se va a ocupar, debe utilizar la tecla “-L ” y especifique un tamaño (compuesto por un número y su unidad)

$ lvcreate -L <size> <volume_group>

Si desea darle un nombre a su volumen lógico, puede usar la opción "-n".

$ lvcreate -n <name> -L <size> <volume_group>

Nuevamente, puede enumerar su volumen lógico recién creado ejecutando el comando "lvs" como sudo.

$ lvs

Al ejecutar el comando "lvs", se le presentan muchas columnas diferentes:

  • LV :mostrando el nombre del volumen lógico;
  • VG :describe el grupo de volúmenes al que pertenece su volumen lógico;
  • Atributo :enumerar los atributos de su volumen lógico ("w" para escritura, "i" para heredado y "a" para asignado);
  • Tamaño L :se explica por sí mismo, describe el tamaño de su volumen lógico en GiB;

Otras columnas describen el uso avanzado de LVM, como la configuración de espacios reflejados o rayados. Para este tutorial básico, no los describiremos y se describirán en tutoriales más avanzados.

Cuando creó su volumen lógico, el kernel tomó algunas acciones sin que usted lo notara:

  • Se creó un dispositivo virtual en /dev :en una carpeta con el nombre de su grupo de volúmenes ("vg_1"), se creó un dispositivo lógico virtual con el nombre del volumen lógico ("lv_1")
  • El dispositivo virtual es un enlace suave al dispositivo "dm-0" disponible en /dev :“dm-0” es un dispositivo virtual que mantiene un mapeo entre sus volúmenes lógicos y sus discos duros reales. (/dev/sda, /dev/sdb y así sucesivamente)

Formateo y montaje de volúmenes lógicos LVM

El último paso para que pueda comenzar a usar su espacio recién creado es formatear y montar sus volúmenes lógicos.

Para formatear un volumen lógico , debe usar el comando "mkfs" y especificar el sistema de archivos que se usará.

$ mkfs -t <filesystem_type> <logical_volume>

En nuestro caso, supongamos que queremos formatear nuestro volumen lógico como un sistema de archivos "ext4", ejecutaríamos el siguiente comando

$ mkfs -t ext4 /dev/vg_1/lv_1

Ahora que el volumen lógico está formateado, simplemente tiene que montarlo en una carpeta de su sistema.

Para montar un volumen lógico LVM, debe usar el comando "montar", especificar el nombre del volumen lógico y el punto de montaje que se usará.

$ mount <logical_volume> <mount_point>

Para el ejemplo, supongamos que vamos a montar el sistema de archivos en el directorio “/mnt” del directorio raíz.

$ mount /dev/vg_1/lv_1 /mnt

Si ahora ejecuta el comando "lsblk", debería poder ver que su volumen lógico ahora está montado.

$ lsblk

¡Felicitaciones, ahora puede comenzar a usar su volumen recién creado!

Expansión de sistemas de archivos existentes mediante LVM

Como caso de uso de LVM, veamos lo fácil que puede ser aumentar el tamaño de un sistema de archivos agregando otro disco a su host.

Si agrega otro disco a su host, udev lo seleccionará automáticamente y le asignará un nombre.

Para tener el nombre del dispositivo de disco en su sistema, asegúrese de ejecutar el comando "lsblk".

$ lsblk

En nuestro caso, agregamos un nuevo disco duro en el conector SATA que se llama "sdc".

Para agregar este nuevo disco a nuestras capas LVM, debemos configurar cada capa de la pila de almacenamiento LVM.

Primero, marquemos este nuevo disco como un volumen físico en nuestro host con el "pvcreate ” comando.

$ pvcreate /dev/sdc

Physical volume "/dev/sdc" successfully created

Luego, debe agregar su volumen físico recién creado al grupo de volúmenes.

Para agregar un volumen físico a un grupo de volúmenes existente, debe usar el "vgextend ”, especifique el grupo de volúmenes y los volúmenes físicos que se agregarán.

$ vgextend vg_1 /dev/sdc

Volume group "vg_1" successfully extended

Con el comando "vgs", puede verificar que su grupo de volúmenes se extendió con éxito.

$ vgs

Como puede ver, en comparación con la primera sección, el resultado cambió ligeramente:ahora tiene dos volúmenes físicos. Además, el espacio aumentó de 2 GiB a casi 3 GiB.

Su volumen lógico aún no es mayor, deberá aumentar su tamaño para ocupar espacio disponible en el grupo.

Para aumentar el tamaño de su volumen lógico, debe usar la opción "lvextend", especifique el volumen lógico así como el tamaño a tomar con la opción "-L".

$ lvextend -L +1G dev/vg_1/lv_1

Como puede ver, el tamaño del volumen lógico cambió, así como la cantidad de extensiones físicas dedicadas a su volumen lógico.

Aumentar su volumen lógico no significa que su sistema de archivos aumentará automáticamente para coincidir con el tamaño de su volumen lógico.

Para aumentar el tamaño de su sistema de archivos, debe usar el comando "resize2fs" y especificar el volumen lógico que se expandirá (en este caso, "/dev/vg_1/lv_1")

$ resize2fs /dev/vg_1/lv_1

Ahora puede inspeccionar el tamaño de su sistema de archivos:se ha ampliado para que coincida con el tamaño de su volumen lógico, ¡felicidades!

$ df -h

Como probablemente notó, aumentó el tamaño de su sistema de archivos agregando otro disco, pero no tuvo que reiniciar su sistema ni desmontar ningún sistema de archivos en el proceso.

Reducción de sistemas de archivos existentes mediante LVM

Ahora que ha visto cómo puede expandir fácilmente los sistemas de archivos existentes, veamos cómo puede reducirlos para reducir su espacio.

Antes de reducir cualquier volumen lógico, asegúrese de que tiene espacio disponible en el volumen lógico con el comando “df”.

$ df -h

Usando el volumen lógico de la sección anterior, todavía tenemos casi 2 GiB disponibles.

Como consecuencia, podemos eliminar 1 GiB del volumen lógico.

Para reducir el tamaño de un volumen lógico, debe ejecutar el comando "lvreduce", especificar el tamaño con la opción "-L" y el nombre del volumen lógico.

$ lvreduce -L <size> <logical_volume>

En nuestro caso, esto conduciría al siguiente comando (para eliminar 1 GiB de espacio disponible)

$ lvreduce -L 1G /dev/vg_1/lv_1

Nota :tenga en cuenta que esta operación no está exenta de riesgos, es posible que elimine algunos de sus datos existentes si elige reducir su volumen lógico.

En consecuencia, el espacio se volvió a asignar al grupo de volúmenes y ahora está listo para que lo utilice otro volumen lógico del sistema.

$ vgs

Conclusión

En este tutorial, aprendió sobre LVM , abreviatura de Gestión de volúmenes lógicos y cómo se usa para configurar fácilmente el espacio adaptable en su host.

Aprendiste qué volúmenes físicos , grupos de volumen y volúmenes lógicos son y cómo se pueden usar juntos para aumentar o reducir fácilmente los sistemas de archivos.

Si está interesado en la administración del sistema Linux , tenemos una sección completa dedicada a esto en el sitio web, ¡así que asegúrese de revisarlo!


Linux
  1. Cómo crear un sistema de archivos en una partición o volumen lógico de Linux

  2. Cómo crear un volumen físico en Linux usando LVM

  3. ¿Reducción de la raíz usando la gestión de volumen lógico?

  4. Expanda y reduzca volúmenes con Administración de discos

  5. Listar todos los volúmenes físicos asociados a un grupo de volúmenes

Administrador de volúmenes lógicos (LVM) versus partición estándar en Linux

Gestión de volúmenes lógicos

Copia de seguridad y restauración de instantáneas LVM en Linux

Comando Arping en Linux explicado

¿Expandir el volumen lógico de Lvm en la máquina virtual?

Guía para principiantes de LVM (Gestión de volúmenes lógicos)