Destacados

Los Comandos más utilizados en LVM

Este post presenta los comandos mas utilizados en la adminstración de volumenes LVM. Volumenes Físicos (PV) pvcreate : Inicializar un dispos...

16 octubre 2024

Los Comandos más utilizados en LVM

Este post presenta los comandos mas utilizados en la adminstración de volumenes LVM.

Volumenes Físicos (PV)

pvcreate: Inicializar un dispositivo de almacenamiento de bloques (o partición) como un Volumen Físico (PV). Este comando escribe un encabezado de LVM en el dispositivo, preparándolo para su inclusión en un VG.

pvcreate /dev/sdb

pvcreate /dev/sdc1


pvdisplay: Muestra información sobre los PV existentes. Puedes usarlo para ver el tamaño, el espacio libre y otras propiedades de un PV.

pvdisplay

pvdisplay /dev/sdb


pvremove: Elimina la etiqueta de LVM de un dispositivo físico, haciendo que el espacio de almacenamiento esté disponible para otros usos. ¡Cuidado! Esto desacoplará el dispositivo físico de cualquier VG al que pertenezca, lo que podría causar pérdida de datos.

pvremove /dev/sdb

Grupo de volumen (VG)

vgcreate: Crea un Grupo de Volumen (VG) a partir de uno o más PVs. Al crear un VG, le asignas un nombre.

vgcreate my_volume_group /dev/sdb /dev/sdc1

vgdisplay: Muestra detalles sobre un VG, incluyendo su tamaño, el número de PVs y LVs que contiene, y el espacio libre. Este comando también puede mostrar información sobre los PVs que forman parte del VG.

vgdisplay my_volume_group

vgextend: agrega volumnes físicos a un grupo de volumen, y por lo tanto le agrega capacidad al grupo de volumen

vgextend my_grupo_volumen /dev/sdc1

vgremove: Elimina un VG completo. ¡Advertencia! Esto eliminará todos los LVs contenidos dentro del VG, lo que resultará en pérdida de datos si los LVs están en uso.

vgremove my_volume_group

Volumen Lógico (LV)

lvcreate: Crea un Volumen Lógico (LV) dentro de un VG especificado. Le proporcionas al LV un nombre, su tamaño (ya sea como un tamaño fijo o un porcentaje del espacio libre en el VG) y el VG del que se asignará.

# Crea un LV de 20GB llamado data_lv en my_volume_group
lvcreate -L 20G -n data_lv my_volume_group 

# Crea un LV usando el 50% del espacio libre de my_volume_group
lvcreate -l 50%FREE -n web_lv my_volume_group 

lvdisplay: Muestra información sobre un LV existente, como su tamaño y el VG al que pertenece.

lvdisplay /dev/my_volume_group/data_lv

lvextend: Se usa para aumentar el tamaño de un LV existente. Puedes especificar el aumento  en bytes o bien en porcentaje del espacio disponible en el VG.

# Agregar 10GB al volumen logico data_lv
lvextend -L +10G /dev/my_volume_group/data_lv 

# Asigna todo el espacio disponible en VG
lvextend -l +100%FREE /dev/my_volume_group/web_lv 

lvreduce: Reduce un LV existente. ¡Advertencia! Esta operación debe realizarse con precaución, ya que puede provocar pérdida de datos si no se realiza correctamente! El proceso implica primero reducir el sistema de archivos y luego reducir el LV para que coincida con el tamaño del sistema de archivos.

lvreduce -L 15G /dev/my_volume_group/data_lv

lvremove: Elimina un LV. ¡Cuidado! ¡Asegúrate de que el LV no esté en uso antes de eliminarlo!

lvremove /dev/my_volume_group/data_lv


Sistema de Archivo

resize2fs: Es utilizado para expandir un filesystem que utiliza los sistemas de archivos ext2, ext3 y ext4.

resize2fs /dev/my_volume_group/data_lv


xfs_growfs: Redimensionar sistemas de archivos XFS. Úsalo para expandir un sistema de archivos XFS en un LV después de extender el LV.

xfs_growfs /dev/my_volume_group/web_lv

Administración de volumenes LVM en Linux

En el post anterior vimos que es LVM y cuales son sus principales ventajas. En este post veremos la principales operaciones que puede realizarse en un sistema LVM.

Creación de un Grupo de Volumen

Un Grupo de Volumen (VG) es una colección de uno o más Volúmenes Físicos (PVs). Los VGs forman la base del sistema de administración de volúmenes lógicos y actúan como un conjunto de almacenamiento del cual puedes asignar volúmenes lógicos. Aquí hay una guía detallada sobre cómo crear un VG a partir de uno o más PVs:

1. Identificar Discos Disponibles:

Utiliza el comando

lsblk

para listar todos los dispositivos de bloque conectados a tu sistema. Este comando proporciona una descripción general de tus discos y particiones.

Otra alternativa es el uso del comando

fdisk -l

En ciertas condiciones es posible que el nuevo disco no sea reconocido por el sistema operativo. En este caso puede re-escanearse el bus scsi mediante el siguiente comando:

echo "- - -" >> /sys/class/scsi_host/host0/scan

Este comando debe ejecutarse para cada host listado en el directorio /sys/class/scsi_host/. Por ejemplo:host0, host1, host2 ... Una vez realizado, puede utilizarse los comandos indicados en el punto 1 para buscar el nuevo dispositivo.

2. Preparar los Discos (si es necesario):

Para discos duros nuevos:Si estás usando un disco duro nuevo, es posible que debas particionarlo primero usando una herramienta como fdisk. En el caso que se quiera incorporar el disco completo al VG, puede saltarse este paso, ya que el LVM puede reconocer los discos sin particionar.

Para particiones existentes: Si estás usando una partición existente, asegúrate de que no esté en uso y que no contenga datos valiosos, ya que usarla para LVM sobrescribirá los datos.

3. Crear Volúmenes Físicos (PVs):

Ahora, para cada disco o partición generado en el punto 2, utiliza el comando pvcreate para inicializarlo como un PV. Por ejemplo:

    sudo pvcreate /dev/sdb # Usar todo el disco /dev/sdb
    sudo pvcreate /dev/sdb1 # Usar la partición /dev/sdb1

4. Crear el Grupo de Volumen:

Ahora que tienes los PVs, puedes crear un VG usando el comando vgcreate. Deberás darle al VG un nombre y especificar los PVs que incluir:

    sudo vgcreate my_volume_group /dev/sdb /dev/sdc1

Este comando crea un VG llamado "my_volume_group" usando todo el disco /dev/sdb y la partición /dev/sdc1.

5. Verificar el Grupo de Volumen:

Puedes usar comandos como vgdisplayo vgspara verificar que el VG se ha creado correctamente y para ver sus detalles, incluyendo los PVs que contiene y el espacio libre disponible.

6. Creación de Volúmenes Lógicos:

Los Volúmenes Lógicos (LVs) residen dentro de un VG y son las unidades que formatearás con un sistema de archivos y usarás para almacenar datos. Piensa en los LVs como particiones flexibles dentro del conjunto de almacenamiento del VG. Aquí está cómo crear LVs dentro de un VG:

a.Elegir un Nombre y Tamaño:Decide un nombre significativo para tu LV (por ejemplo, 'projects', 'database', 'home'). Determina el tamaño del LV basado en tus requisitos de almacenamiento.

b. Usar el Comando lvcreate:Emplea el comando lvcreatepara crear el LV, especificando el VG, el nombre del LV y el tamaño deseado:

Crear un LV de 20GB llamado 'data_lv'

sudo lvcreate -L 20G -n data_lv my_volume_group

Crear un LV usando el 50% del espacio libre del VG

sudo lvcreate -l 50%FREE -n web_lv my_volume_group

7. Formatear el Volumen Lógico:

Para usar el LV, necesitas formatearlo con un sistema de archivos. Elige un sistema de archivos adecuado para tus necesidades (por ejemplo, ext4, xfs).

sudo mkfs.ext4 /dev/my_volume_group/data_lv # Formatear con ext4
sudo mkfs.xfs /dev/my_volume_group/web_lv  # Formatear con xfs

8. Montar el Volumen Lógico:

Crea un directorio de punto de montaje (una ubicación en tu sistema de archivos donde el LV será accesible) y monta el LV:

sudo mkdir /mnt/data
sudo mount /dev/my_volume_group/data_lv /mnt/data

9. Configurar para Montaje Automático (Opcional):

Para que el LV se monte automáticamente al inicio del sistema, agrega una entrada al archivo /etc/fstab.

B.Extender Volúmenes

El poder de LVM radica en su capacidad para ajustar dinámicamente el tamaño de los LVs para adaptarse a las cambiantes necesidades de almacenamiento.

1.Agregar Almacenamiento al VG (si es necesario):

Si necesitas extender un LV más allá del espacio libre actual del VG, primero deberás agregar más almacenamiento. Sigue los pasos en "Creación de un Grupo de Volumen" para crear un nuevo PV y agregarlo al VG existente usando vgextend.

2. Extender el LV:

Usa el comando lvextendpara aumentar el tamaño del LV.

Agregar 10GB sudo

lvextend -L +10G /dev/my_volume_group/data_lv

Usar todo el espacio disponible

sudo lvextend -l +100%FREE /dev/my_volume_group/web_lv

3.Redimensionar el Sistema de Archivos:

Después de extender el LV, debes redimensionar el sistema de archivos para utilizar el espacio recién asignado.

Para ext4

resize2fs /dev/my_volume_group/data_lv

Para xfs

sudo xfs_growfs /dev/my_volume_group/web_lv

C. Reducir LVs

Advertencia: Reducir LVs implica una posible pérdida de datos y generalmente no se recomienda para sistemas críticos sin copias de seguridad adecuadas.

1.Desmontar el Sistema de Archivos:

Desmonta el LV del punto de montaje:

sudo umount /mnt/data

2.Reducir el Sistema de Archivos:

Usa una herramienta específica del sistema de archivos para reducir el tamaño del sistema de archivos antes de reducir el LV. Este es un paso crucial para evitar la pérdida de datos.

#Para ext4

sudo resize2fs /dev/my_volume_group/data_lv 15G 

#Para xfs(reducir a 15GB)

3.Reducir el LV:

Usa el comando lvreducepara reducir el LV al nuevo tamaño del sistema de archivos.

sudo lvreduce -L 15G /dev/my_volume_group/data_lv

4.Volver a Montar el Sistema de Archivos:

Monta el LV de nuevo en el punto de montaje.

D.Eliminar Volúmenes

Advertencia: Antes de eliminar cualquier componente de LVM (LVs, VGs, PVs), asegúrate de que no estén montados o en uso por ninguna aplicación o proceso. Este paso es vital para evitar la pérdida de datos.

1.Eliminar Volúmenes Lógicos:

Para eliminar un LV, usa el comando lvremove.

sudo lvremove /dev/my_volume_group/data_lv

Probablemente se te pedirá que confirmes la eliminación.

2. Eliminar Grupos de Volumen

Para eliminar un VG, usa el comando vgremove.

sudo vgremove my_volume_group

Este comando elimina el VG y todos los LVs asociados con él.

3.Eliminar Volúmenes Físicos:

Para eliminar un PV, usa el comando pvremove.

sudo pvremove /dev/sdb

Esto eliminará el encabezado de LVM del dispositivo físico, haciendo que el espacio de almacenamiento esté disponible para otros usos.

Recuerda hacer una copia de seguridad de tus datos antes de realizar cualquier operación irreversible, especialmente reducir o eliminar LVs o VGs.

¿Por qué LVM es la herramienta favorita de los administradores de sistemas?

LVM (Logical Volume Manager)  es un sistema de gestión de almacenamiento que te libera de las limitaciones de las particiones de disco fijas, ofreciendo una manera mucho más flexible y dinámica de organizar y redimensionar tu espacio.