Menú

viernes, 8 de mayo de 2015

LVM desde cero - ¿Qué es y para qué sirve?

En esta entrada, vamos a hacer una introducción al administrador de volúmenes lógicos LVM (Logical Volume Manager) y en siguientes entradas, vemremos la forma de configurarlo técnicamente.



LVM es el acrónimo en inglés de Logical Volume Manager y es un administrador de volúmenes lógicos pero...¿Qué quiere decir esto en la práctica? Pongamos un ejemplo:

Imaginemos que tenemos un servidor con un disco duro de 100 Gigas (en un solo disco duro, sin tecnología RAID), las cuales están divididas entre una partición para el sistema operativo de 9 Gigas y otra partición para almacenamiento de datos de 90 Gigas (el giga restante lo destinamos a la partición swap y a la partición boot. Ambas son requeridas en sistemas Linux).

Supongamos que depués de un año de uso, llenamos los 90 Gigas pero nos hace falta más espacio. ¿Qué opciones tenemos?

  1. Pinchar un disco duro nuevo en el servidor y empezar a guardar los datos en ese nuevo disco duro (todo un engorro máxime si los datos que hay en "almacenamiento" son datos que guardan otras aplicaciones como MySQL o software propio).
  2. Utilizar un disco duro USB (tendría las mismas consecuencias que lo anterior).
  3. Cambiar el disco duro por uno más grande (hay que migrarlo todo y esto siempre es un problemón)

Para resolver este problema de una forma, a mi parecer, bastante solvente existe LVM. Básicamente, utiliza los recuros físicos para montar una capa virtual y poder así asignar recursos y espacio de una forma más flexible que con el sistema de particiones tradicional.

LVM tiene la siguiente estructura:

  • PV (volúmenes físicos): Esta es la/las partición(es) físicas que tiene el disco duro.
  • LV (volúmenes lógicos): Estas son las particiones lógicas (virtuales) que crearemos en función de nuestras necesidades. Por ejemplo: raiz, almacenamiento y swap podrían ser volúmenes lógicos.
  • VG (grupos volúmenes): Este es el grupo que contiene todos los volúmenes lógicos.

Volvamos al ejemplo anterior, tenemos el servidor con 100 gigas. Si hubieramos configurado LVM, el servidor podría haber quedado de la siguiente forma:
  • Tenemos un disco duro de 100 Gigas
  • Creamos un volumen físico con la partición /dev/sda
  • Creamos un grupo de volúmenes llamado SERVIDOR al que le asignamos la partición /dev/sda de 90 Gigas como volumen físico.
  • Creamos un volumen lógico para la swap de 1 Giga.
  • Creamos otro volumen lógico para el sistema operativo de 9 Gigas
  • Creamos otro volumen lógico para almacenamiento de 90 Gigas
En este momento, estaríamos en la misma situación anterior, pero con LVM configurado. Ahora suponemos que ya ha pasado ese año y nos quedamos sin espacio. ¿Y ahora que?

Ahora podríamos pinchar un disco duro nuevo de otros 100 Gigas por ejemplo al servidor, que quedaría etiquetado como /dev/sdb después de darle el correspondiente formato. Simplemente crearíamos un PV con /dev/sdb y lo añadiríamos al grupo de volúmenes. En ese preciso instante, nuestros 100 gigas se convertirían en 200. 

Por último, reconfiguraríamos nuestro volumen lógico "almacenamiento" para que en vez de ser de 90 gigas, fuera de 190 (por ejemplo).

Todo esto, evidentemente se puede hacer "en caliente", con todas las aplicaciones funcionando y sin parar el servicio en ningún momento. Aquí dejo una pequeña topología de como sería de una forma más gráfica




Espero que os haya aclarado un poco sobre el concepto LVM y para qué sirve. Como siempre, podéis preguntar/objetar/proponer todo lo que queráis en los comentarios y poder así, mejorar esta y próximas entradas que como digo, configuraremos un LVM completo.


1 comentario: