ArchiTecnologia

Aprendizaje abierto. Conocimiento libre.

ArchiTecnologia
CertificacionesLinuxLPITutorial

LPIC-2 Tema 204.3: gestión de LVM en Linux

Siguiente entrada sobre las certificaciones LPIC-2, con el tema de la gestión de los volúmenes lógicos en Linux, es decir, de LVM (Logial Volume Manager). Una forma de particionar o unificar espacios de almacenamiento que aporta una gran flexibilidad.

Los candidatos a administradores de sistemas deberán conocer las herramientas y recursos necesarios para poder crear y eliminar volúmenes lógicos, grupos y volúmenes físicos. Esto también implica conocer cómo redimensionar, renombrar, y mantener snapshots.

¿Qué es LVM?

LVM (Logical Volume Manager) fue creado en 1998 tomando como base un sistema similar llamado Veritas de los HP-UX. Con la inclusión el kernel Linux como módulo, se permitió generar una abstracción entre los medios de almacenamiento físicos y los dispositivos que reconoce el sistema. Eso aporta un mayor control sobre el espacio de almacenamiento y más opciones para su administración. Además, LVM también puede trabajar con memorias externas, SAN, RAID, etc., lo que lo hace aún más flexible.

La partición /boot en GRUB Legacy debería quedar fuera del LVM, ya que no lo soporta, igual que ocurre con RAID. Con GRUB2 sí que se ha solventado el problema.

Por ejemplo, con LVM podrías fusionar todos los discos duros de una máquina como si solo fuese un único espacio uniforme de almacenamiento, sumando las capacidades de cada uno. O también podrías sumar particiones concretas de varios medios de almacenamiento para crear una partición mayor, etc.

Para que eso sea posible, LVM tiene una arquitectura compuesta por 3 elementos básicos:

  • PV (Phisical Volume): son los volúmenes físicos, es decir, los dispositivos físicos de almacenamiento o las particiones convencionales. A su vez, un PV se divide en PE (Physical Extents), que no son más que chunks de datos con el mismo tamaño y que están disponibles para su utilización. Los podrás ver como /dev/pv*.
  • VG (Volume Group): un grupo es un cojunto de varios volúmenes físicos, para que se pueda tratar como uno solo. La capacidad del VG será tan grande como las capacidades de los PVs que lo integren. Se reconocen en el sistema como /dev/vg*.
  • LV (Logica Volume): se crean sobre los grupos de volúmenes presentes. A diferencia de los sistemas de particiones físicas tradicionales, un LV no se construye a partir de bloques físicos. Pueden estar compuestos por diferentes particiones contiguas o no contiguas e incluso por particiones de diferentes dispositivos de almacenamiento. Pero el usuario lo verá como una partición normal, con su FS. En Linux se identifican como /dev/lv*.

Por cierto, para gestionar todos estos dispositivos de bloques, Linux tiene un framework llamado device mapper que se emplea para LVM, RAID y dm-crypt. Además, provee de funciones extra al sistema, como la capacidad de snapshots. Esto lo puedes ver en /dev/mapper. Aunque puedas asignar un nombre de volumen, no será más que un enlace simbólico hacia esta unidad o /dev/dm-*.

En cuanto al fichero de configuración para LVM, suele estar en /etc/lvm/lvm.conf. Puedes ver un ejemplo de su sintaxis aquí.

¿Cómo configurar LVM?

Para hacerlo algo más ameno, me limitaré a mostrar cómo se puede crear un LVM en Linux y presentar brevemente las herramientas para su gestión.

Herramientas

Lo primero es instalar lvm2, el paquete que necesitas para poder disponer de las herramientas. Puedes usar el gestor de paquetes de tu distro, ya que se encuentra en los repositorios.  Una vez instalado tendrás las siguientes herramientas:

  • pvcreate, vgcreate, lvcreate: son las tres herramientas para crear volúmenes físicos, grupos y lógicos respectivamente.
  • pgdisplay, vgdisplay, lvdisplay: muestra información detallada de los elementos.
  • pvs, lvs, gvs: muestra información, pero más resumida que los anteriores.
  • lvextend, vgextend: son herramientas para ampliar el tamaño, es decir, redimensionar.
  • lvreduce, vgreduce: iguales a las anteriores, pero en este caso para reducir el tamaño.
  • lvscan, pvscan, vgscan: busca estructuras de datos en LVM.
  •  pvchange, vgchange, lvchange: cambia los atributos de los volúemenes.
  • pvck, vgck: comprueba los errores y metadatos de los volúmenes físicos y grupos.
  • pvmove: mueve los datos de un volumen físico a otro. Se puede usar para sustituir un disco duro por otro, por ejemplo, o para cambiar la ubicación física.
  • pvresize, lvresize: en este caso cambia el tamaño de la estructura de datos, pero no el tamaño del volumen. Se usa para preparar para la redimensión de un volumen físico o lógico. Por ejemplo, para usarlas antes de las herramientas de reducción o ampliación vistas antes.
  • vgcfgbackup, vgcfgrestore: realiza copias de seguridad de los metadatos y restaura.
  • vgconvert: convierte el formato de metadatos de una versión a otra, por ejemplo, de LVM1 a LVM2.
  • lvconvert: cambia el estado de lineal, duplicado e instantánea.
  • vgexport, vgimport: para exportar e importar. Lo que hace es deshabilitar un VG para que pueda moverse de equipo y luego lo activa respectivamente.
  • vgimportclone: similar al anterior, pero en este caso renombra los volúmenes que puedan ser conflictivos.
  • vgmerge: une dos VGs, pero ambos deben estar inactivos antes de fusionarlos.
  • vgsplit: hace lo contrario al anterior, los divide en dos VGs.
  • vgmknodes: actualiza de forma manual los ficheros de dispositivos que hacen referencia a los volúmenes lógicos.
  • vgrename, lvrename: renombra VG y LV respectivamente.
  • pvremove, lvremove: eliminará la estructura de los volúmenes LVM.

Ejemplo práctico

Imagina que deseas crear un LVM en tu distro Linux, y que vas a fusionar dos particiones que serán /dev/sdb1 y /dev/sdc1. En ese caso, los pasos serían:

#Inicializa las particiones a usar como volúmenes físicos
pvcreate /dev/sdb1 /dev/sdc1

#Puedes usar el siguiente comando para obtener información y comprobar que se crearon
pvs

#Lo siguiente es crear el grupo para agruparlos y que se llame datos
vgcreate datos /dev/sdb1 /dev/sdc1

#Puedes comprobar el estado con
vgs

#Ahora puedes crear un volumen lógico y que éste ocupe 100GB y que se llame galería
lvcreate -L 100G -n galeria datos

#Puedes obtener información con
lvs

#Lo siguiente es darle un formato a ese espacio lógico. Por ejemplo XFS
mkfs.xfs /dev/datos/galeria

#Luego puedes crear un punto de montaje
mkdir /mnt/lvm
mount /dev/datos/galeria /mnt/lvm

En cuanto a otras herramientas para poder gestionar LVM, aquí tienes algunos ejemplos habituales:

#Puedes mover un volumen de /dev/sdc1 a /dev/sdd1 porque sdc1 lo quieres quitar o destinar para otra cosa
pvmove /dev/sdc1 /dev/sdd1

#También puedes agrear otro volumen físico
vgextend datos /dev/sde1

#Extender la capacidad en 10GB adicionales
lvextend -L +10G /dev/datos/galeria

#O dirctamente especificar el valor de capacidad absoluto que quieres que tenga
lvextend -L 110G /dev/datos/galeria

#Crear una instantánea llamada backup
lvcreate -L 100G -s -n backup /dev/datos/galeria

#Eliminar el volumen
lvremove /dev/datos/galeria

Isaac

Apasionado de la computación y la tecnología en general. Siempre intentando desaprender para apreHender.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Si continuas utilizando este sitio aceptas el uso de cookies. más información

Los ajustes de cookies de esta web están configurados para "permitir cookies" y así ofrecerte la mejor experiencia de navegación posible. Si sigues utilizando esta web sin cambiar tus ajustes de cookies o haces clic en "Aceptar" estarás dando tu consentimiento a esto.

Cerrar