Debido a los cambios en los requisitos del examen LFCS que entraron en vigor el 2 de febrero de 2016, estamos añadiendo los temas necesarios a la serie LFCS publicada aquí. Para prepararse para este examen, se recomienda encarecidamente utilizar 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á para los archivos del sistema, los directorios personales y otros. Si se 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 una opción predeterminada para la instalación de la mayoría (si no todos) de las distribuciones Linux, tiene numerosas ventajas sobre la gestión de particiones tradicional. Quizás la característica más distintiva de LVM es que permite redimensionar (reducir o aumentar) divisiones lógicas a voluntad sin mucho problema.
La estructura del LVM consta de:
- Uno o más discos duros completos o particiones configurados como volúmenes físicos (PVs).
- A volume group (VG) is created using one or more physical volumes. You can think of a volume group as a single storage unit.
- A continuación, 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 puede redimensionarse a voluntad, como mencionamos anteriormente.
En este artículo utilizaremos tres discos de 8 GB cada uno (/dev/sdb, /dev/sdc y /dev/sdd) para crear tres volúmenes físicos. Puedes crear los PV directamente sobre el dispositivo o particionarlo primero.
Aunque hemos elegido seguir el primer método, si decides optar por el segundo (como se explica en Parte 4 – Crear Particiones y Sistemas de Archivos en Linux de esta serie), asegúrate 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, haz lo siguiente:
# pvcreate /dev/sdb /dev/sdc /dev/sdd
Puedes listar los PV recién creados con:
# pvs
y obtener información detallada sobre cada PV con:
# pvdisplay /dev/sdX
(donde X es b, c o d)
Si omites /dev/sdX
como parámetro, obtendrás información sobre todos los PVs.
Para crear un grupo de volúmenes llamado vg00
utilizando /dev/sdb
y /dev/sdc
(guardaremos /dev/sdd
para más adelante para ilustrar la posibilidad de agregar otros dispositivos para expandir la capacidad de almacenamiento cuando sea necesario):
# vgcreate vg00 /dev/sdb /dev/sdc
Al igual que con 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:

Cuando se trata de crear volúmenes lógicos, la distribución del espacio debe tener en cuenta tanto las necesidades actuales como futuras. Se considera una buena práctica nombrar cada volumen lógico según su uso previsto.
Por ejemplo, creemos dos LVs nombrados vol_projects
(10 GB) y vol_backups
(espacio restante), que podemos usar más tarde para almacenar documentación de proyectos 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
(ele minúscula) se utiliza para indicar un porcentaje del espacio restante en el VG del contenedor.
# lvcreate -n vol_projects -L 10G vg00 # lvcreate -n vol_backups -l 100%FREE vg00
Como antes, puedes ver la lista de LVs y la información básica con:
# lvs
y la información detallada con
# lvdisplay
Para ver información sobre un solo LV, usa lvdisplay con el VG y el LV como parámetros, de la siguiente manera:
# lvdisplay vg00/vol_projects

En la imagen de arriba podemos ver que los LVs se crearon como dispositivos de almacenamiento (consulta la línea Ruta del LV). Antes de que cada volumen lógico pueda ser utilizado, necesitamos crear un sistema de archivos encima de él.
Usaremos ext4 como ejemplo aquí, ya que nos permite tanto aumentar como 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 sea necesario hacerlo.
Cambio de Tamaño de Volúmenes Lógicos y Extensión de Grupos de Volúmenes
Ahora imagina 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 al primero, redimensionando 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 redimensionar un volumen lógico. De lo contrario, estarás estableciendo un tamaño fijo para el LV en lugar de redimensionarlo.
Puede suceder que llegues a un punto en el que redimensionar volúmenes lógicos ya no pueda satisfacer tus necesidades de almacenamiento y necesites comprar un dispositivo de almacenamiento adicional. Para simplificar, necesitarás otro disco. Vamos a simular esta situación añadiendo el PV restante de nuestra configuración inicial (/dev/sdd
).
Para añadir /dev/sdd
a vg00
, haz
# vgextend vg00 /dev/sdd
Si ejecutas vgdisplay vg00
antes y después del comando anterior, verás el aumento en el tamaño del VG:
# vgdisplay vg00

Ahora puedes utilizar el espacio recién añadido para redimensionar los LVs existentes según tus necesidades, o para crear otros adicionales según sea necesario.
Montar Volúmenes Lógicos al Inicio y a Demanda
Por supuesto, no tendría sentido crear volúmenes lógicos si no vamos a usarlos realmente. Para identificar mejor un volumen lógico, necesitaremos averiguar cuál es su UUID
(un atributo invariable que identifica de forma única un dispositivo de almacenamiento formateado).
Utilice blkid seguido de la ruta de 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
y inserte las entradas correspondientes en /etc/fstab
(asegúrese de usar los UUID obtenidos anteriormente):
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 LVs:
# mount -a # mount | grep home

Cuando se trata de usar realmente los LVs, deberá asignar permisos adecuados ugo+rwx
como se explica en Parte 8 – Administrar Usuarios y Grupos en Linux de esta serie.
Resumen
En este artículo hemos presentado Administración de Volúmenes Lógicos, una herramienta versátil para gestionar dispositivos de almacenamiento que proporciona escalabilidad. Cuando se combina con RAID (que explicamos en 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, típicamente encontrará LVM encima de RAID, es decir, configure RAID primero y luego configure LVM encima de él.
Si tiene preguntas sobre este artículo o sugerencias para mejorarlo, no dude en contactarnos utilizando el formulario de comentarios a continuación.
Source:
https://www.tecmint.com/manage-and-create-lvm-parition-using-vgcreate-lvcreate-and-lvextend/