Búsqueda de sitios web

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 febrero. A partir del 2 de enero de 2016, agregaremos los temas necesarios a la serie LFCS publicada aquí. Para prepararse para este examen, le recomendamos encarecidamente que utilice también 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 de inicio y otros. Si comete un error en ese momento, hacer crecer una partición que se ha quedado sin espacio puede resultar engorroso y algo arriesgado.

La Administración de volúmenes lógicos (también conocida como LVM), que se ha convertido en la opción predeterminada 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 o particiones completos se configuran como volúmenes físicos (PV).
  2. Un grupo de volúmenes (VG) se crea utilizando uno o más volúmenes físicos. Puede pensar en un grupo de volúmenes como una única unidad de almacenamiento.
  3. Luego 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 su 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 encima del dispositivo o dividirlo primero.

Aunque hemos optado por 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 volúmenes llamado vg00 usando /dev/sdb y /dev/sdc (guardaremos /dev/sdd para ilustrar más adelante la posibilidad de agregar otros dispositivos para ampliar la capacidad de almacenamiento cuando sea necesario):

vgcreate vg00 /dev/sdb /dev/sdc

Como era el caso de los volúmenes físicos, también puedes 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:

A la hora de crear volúmenes lógicos, la distribución del espacio debe tener en cuenta las necesidades tanto actuales como futuras. Se considera una buena práctica nombrar cada volumen lógico según 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 copias de seguridad del sistema, respectivamente.

La opción -n se utiliza 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, puedes 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 poder utilizar cada volumen lógico, debemos crear un sistema de archivos encima de él.

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 imagine el siguiente escenario. Estás empezando a quedarte sin espacio en vol_backups, mientras que tienes 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 para el 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, estará 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. Para simplificarlo, 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 utilizar el espacio recién agregado para cambiar el tamaño de los LV existentes según sus necesidades o crear otros adicionales según sea necesario.

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

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

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

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

Cree puntos de montaje para cada LV:

mkdir /home/projects
mkdir /home/backups

e inserte las entradas correspondientes en /etc/fstab (asegúrese de utilizar 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 utilizar los LV, deberá asignar los permisos ugo+rwx adecuados como se explica en la Parte 8: Administrar usuarios y grupos en Linux de esta serie.

Resumen

En este artículo presentamos Logical Volume Management, una herramienta versátil para administrar dispositivos de almacenamiento que proporciona escalabilidad. Cuando se combina con RAID (que explicamos en la Parte 6: Crear y administrar RAID en Linux de esta serie), puede disfrutar no solo de escalabilidad (proporcionada por LVM) sino también de redundancia (ofrecida por RAID).

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

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.