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:
- Uno o más discos duros o particiones completos se configuran como volúmenes físicos (PV).
- 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.
- 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
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.