LFCS: Cómo administrar y crear LVM usando los comandos vgcreate, lvcreate y lvextend - Parte 11


Debido a los cambios en los requisitos del examen LFCS a partir del 2 de febrero de 2016, también estamos agregando los temas necesarios a la serie LFCE.

Una de las decisiones más importantes al instalar un sistema Linux es la cantidad de espacio de almacenamiento que se asignará a los archivos del sistema, directorios personales y otros. Si comete un error en ese punto, hacer crecer una partición que se ha quedado sin espacio puede ser engorroso y algo arriesgado.

La administración de volúmenes lógicos (también conocida como LVM), que se ha convertido en un valor predeterminado para la instalación de la mayoría (si no todas) las distribuciones de Linux, tiene numerosas ventajas sobre la administración de particiones tradicional. Quizás la característica más distintiva de LVM es que permite cambiar el tamaño de las divisiones lógicas (reducirlas o aumentarlas) a voluntad sin muchos problemas.

La estructura del LVM consta de:

  1. Uno o más discos duros completos o particiones están configurados como volúmenes físicos (PV).
  2. Se crea un grupo de volúmenes (VG) utilizando uno o más volúmenes físicos. Puede pensar en un grupo de volúmenes como una única unidad de almacenamiento.
  3. Se pueden crear varios volúmenes lógicos en un grupo de volúmenes. Cada volumen lógico es algo equivalente a una partición tradicional, con la ventaja de que se puede cambiar de tamaño a voluntad, como mencionamos anteriormente.

En este artículo usaremos tres discos de 8 GB cada uno (/ dev/sdb,/dev/sdc y/dev/sdd) para crear tres volúmenes físicos. Puede crear los PV directamente en la parte superior del dispositivo o particionarlo primero.

Aunque hemos optado por utilizar el primer método, si decide utilizar el segundo (como se explica en la Parte 4 - Crear particiones y sistemas de archivos en Linux de esta serie) asegúrese de configurar cada partición como tipo 8e .

Creación de volúmenes físicos, grupos de volúmenes y volúmenes lógicos

Para crear volúmenes físicos sobre/dev/sdb,/dev/sdc y/dev/sdd, haga lo siguiente:

# pvcreate /dev/sdb /dev/sdc /dev/sdd

Puede enumerar los PV recién creados con:

# pvs

y obtenga información detallada sobre cada PV con:

# pvdisplay /dev/sdX

(donde X es b, c o d)

Si omite /dev/sdX como parámetro, obtendrá información sobre todos los PV.

Para crear un grupo de volumen llamado vg00 usando /dev/sdb y /dev/sdc (guardaremos /dev/sdd para luego ilustrar la posibilidad de agregar otros dispositivos para expandir la capacidad de almacenamiento cuando sea necesario):

# vgcreate vg00 /dev/sdb /dev/sdc

Como sucedió con los volúmenes físicos, también puede ver información sobre este grupo de volúmenes emitiendo:

# vgdisplay vg00

Dado que vg00 está formado por dos discos de 8 GB, aparecerá como una única unidad de 16 GB:

Cuando se trata de crear volúmenes lógicos, la distribución del espacio debe tener en cuenta tanto las necesidades actuales como las futuras. Se considera una buena práctica nombrar cada volumen lógico de acuerdo con su uso previsto.

Por ejemplo, creemos dos LV llamados vol_projects (10 GB) y vol_backups (espacio restante), que podemos usar más adelante para almacenar la documentación del proyecto y las copias de seguridad del sistema, respectivamente.

La opción -n se usa para indicar un nombre para el LV, mientras que -L establece un tamaño fijo y -l (L minúscula) es se utiliza para indicar un porcentaje del espacio restante en el contenedor VG.

# lvcreate -n vol_projects -L 10G vg00
# lvcreate -n vol_backups -l 100%FREE vg00

Como antes, puede ver la lista de LV e información básica con:

# lvs

e información detallada con

# lvdisplay

Para ver información sobre un solo LV, use lvdisplay con VG y LV como parámetros, de la siguiente manera:

# lvdisplay vg00/vol_projects

En la imagen de arriba podemos ver que los LV se crearon como dispositivos de almacenamiento (consulte la línea LV Path). Antes de que se pueda usar cada volumen lógico, necesitamos crear un sistema de archivos encima.

Usaremos ext4 como ejemplo aquí, ya que nos permite aumentar y reducir el tamaño de cada LV (a diferencia de xfs que solo permite aumentar el tamaño):

# mkfs.ext4 /dev/vg00/vol_projects
# mkfs.ext4 /dev/vg00/vol_backups

En la siguiente sección explicaremos cómo cambiar el tamaño de los volúmenes lógicos y agregar espacio de almacenamiento físico adicional cuando surja la necesidad de hacerlo.

Cambiar el tamaño de los volúmenes lógicos y ampliar los grupos de volúmenes

Ahora imagina el siguiente escenario. Está empezando a quedarse sin espacio en vol_backups , mientras que tiene mucho espacio disponible en vol_projects . Debido a la naturaleza de LVM, podemos reducir fácilmente el tamaño de este último (digamos 2,5 GB) y asignarlo al primero, mientras redimensionamos cada sistema de archivos al mismo tiempo.

Afortunadamente, esto es tan fácil como hacer:

# lvreduce -L -2.5G -r /dev/vg00/vol_projects
# lvextend -l +100%FREE -r /dev/vg00/vol_backups

Es importante incluir los signos menos (-) o más (+) al cambiar el tamaño de un volumen lógico. De lo contrario, está configurando un tamaño fijo para el LV en lugar de cambiar su tamaño.

Puede suceder que llegue a un punto en el que cambiar el tamaño de los volúmenes lógicos ya no pueda resolver sus necesidades de almacenamiento y necesite comprar un dispositivo de almacenamiento adicional. Manteniéndolo simple, necesitará otro disco. Vamos a simular esta situación agregando el PV restante de nuestra configuración inicial (/dev/sdd ).

Para agregar /dev/sdd a vg00 , haga

# vgextend vg00 /dev/sdd

Si ejecuta vgdisplay vg00 antes y después del comando anterior, verá el aumento en el tamaño del VG:

# vgdisplay vg00

Ahora puede usar el espacio recién agregado para cambiar el tamaño de los LV existentes de acuerdo con sus necesidades, o para crear otros adicionales según sea necesario.

Montaje de volúmenes lógicos en el arranque y bajo demanda

¡Por supuesto que no tendría sentido crear volúmenes lógicos si no los vamos a usar realmente! Para identificar mejor un volumen lógico, necesitaremos averiguar cuál es su UUID (un atributo que no cambia y que identifica de manera única un dispositivo de almacenamiento formateado).

Para hacer eso, use blkid seguido de la ruta a cada dispositivo:

# blkid /dev/vg00/vol_projects
# blkid /dev/vg00/vol_backups

Crea puntos de montaje para cada LV:

# mkdir /home/projects
# mkdir /home/backups

e inserte las entradas correspondientes en /etc/fstab (asegúrese de usar los UUID obtenidos antes):

UUID=b85df913-580f-461c-844f-546d8cde4646 /home/projects	ext4 defaults 0 0
UUID=e1929239-5087-44b1-9396-53e09db6eb9e /home/backups ext4	defaults 0 0

Luego guarde los cambios y monte los LV:

# mount -a
# mount | grep home

Cuando se trata de usar los LV, necesitará asignar los permisos adecuados de ugo + rwx como se explica en la Parte 8 - Administrar usuarios y grupos en Linux de esta serie.

Resumen

En este artículo presentamos la Parte 6: Crear y administrar RAID en Linux de esta serie), puede disfrutar no solo de la escalabilidad (proporcionada por LVM) sino también de la redundancia (ofrecida por RAID).

En este tipo de configuración, normalmente encontrará LVM encima de RAID, es decir, configure RAID primero y luego configure LVM encima.

Si tiene preguntas sobre este artículo o sugerencias para mejorarlo, no dude en comunicarse con nosotros mediante el formulario de comentarios a continuación.