Vamos a ver que es LVM (Logical Volume Manager), como instalarlo en un Ubuntu Server o cualquier otra distribución basada en Debian.
¿Que es LVM?
LVM es una implementación de un gestor de volúmenes lógicos para el núcleo Linux, se utiliza para gestionar el espacio de almacenamiento. Se escribió originalmente en 1998 por Heinz Mauelshagen, que se basó en el administrador de volúmenes de Veritas usado en sistemas HP-UX.
El LVM establece una capa lógica entre el sistema de archivos y las particiones del almacenamiento de datos utilizado. Esto le permite crear un sistema de archivos que abarque varias particiones y/o discos. De este modo, por ejemplo, se puede combinar el espacio de almacenamiento de varias particiones o soportes de datos.
Ventajas de utilizar LVM
1.- Podemos crear, ampliar o reducir los volúmenes lógicos (LV), sobre la marcha, sin necesidad de formatear los soportes de almacenamiento.
2.- También podemos redimensionar los grupos lógicos (VG).
2.- Los datos los tendremos distribuidos por varios soportes, aumentando el rendimiento del sistema.
3.- Se pueden reorganizar los datos mientras estamos trabajando.
4.- La replicación de los datos es sencilla.
5.- Es posible realizar Snapshots.
6.- Tenemos la opción de RAID0 de volúmenes lógicos (LV).
Para implementar otro tipo, como RAID1 o RAID5, que son los más utilizados, es recomendable utilizar un software específico y tener los volúmenes lógicos por encima del RAID.
Vamos a definir los conceptos…
- Volúmenes físicos (PV): el PV representa el nivel más bajo de un LVM. Son discos físicos y las particiones (dispositivo de bloque) del disco duro con sistema de archivos LVM.
- Volúmenes lógicos (LV): es el equivalente a una partición en un sistema tradicional. El LV es visible como un dispositivo estándar de bloques (loop), por lo que puede contener un sistema de archivos (por ejemplo /home). Se pueden utilizar como una partición normal,y formatearlos con cualquier sistema de archivos, y pueden ser montados.
- Grupos de volúmenes (VG): es la parte superior del LVM. Es el contenedor en el que tenemos nuestros volúmenes lógicos (LV) y nuestros volúmenes físicos (PV). Se puede ver como una unidad administrativa en la que se engloban nuestros recursos. Hay que hacer notar que mientras un PV no se añada al VG, no podemos comenzar a usarlo.
Con LVM, las particiones clásicas se inicializan como PV, que se asignan a un VG. Dentro de este grupo de volumen, los LV pueden crearse y formatearse con cualquier sistema de archivos.
¿Porqué usar LVM en un sistema pequeño?
Cuando instalamos un sistema operativo GNU/Linux, una de las primeras decisiones es como particionar el disco. Aunque algunos lo instalan en un disco, sin hacer particiones, lo recomendable es separarlas. Por lo menos para los directorios /(Raiz), /boot, /swap (memoria de intercambio) y /home (directorio del usuario), si trabajamos con bases de datos, sería conveniente también separar /var, que es el directorio que las contendrá. Para ello, tendremos que decidir cuanto espacio asignamos a estos directorios.
Con LVM, podemos asignar el disco duro físico a un grupo lógico y a partir de aquí, crear varios volúmenes lógicos para los distintos directorios. Esto nos permitirá redimensionarlos después. Si por ejemplo, nos quedamos sin espacio en /home, podemos reducir el tamaño de un LV, que tengamos sobredimensionado, y asignárselo /home. (No todos los sistemas de ficheros soportan redimensionado por arriba y por abajo). Podemos dejar espacio sin asignar y así tendremos espacio para aumentar donde necesitemos.
¿Porqué usar LVM en un sistema grande?
Trabajar con muchos discos es una tarea ardua y a veces compleja, ya que trabajamos con soportes que contienen datos importantes. Con LVM se simplifica el trabajo y se realiza con más seguridad.
Al trabajar con grupos de usuarios, nos permite asignar volúmenes lógicos a cada uno, y gestionar el espacio asignado según las necesidades.
Por ejemplo, si con las particiones tradicionales (MBR y GPT), hemos creado 4 particiones contiguas en un disco, y necesitamos aumentar alguna de las 3 primeras, no podemos hacerlo sin borrar las siguientes, lo que es un problema y requerirá de parada del servicio casi seguro.
Con LVM se resuelve este problema, además de que convertimos el sistema en escalable con mucha facilidad, pudiendo añadir nuevos discos físicos.
Después de añadir un disco físico al sistema, no es necesario migrar los datos de los usuarios. Incorporamos este al grupo lógico (VG) y redimensionamos los volúmenes lógicos(VL) añadiendoles espacio.
Vamos a verlo con un ejemplo práctico.
En una máquina virtual con S.O. Ubuntu Server, veremos:
1.- Instalación de Logical Volume Manager (LVM).
2.- Creamos la estructura que queremos.
3.- Añadimos un nuevo disco duro.
4.- Eliminamos un disco duro.
Instalación de Logical Volume Manager (LVM)
Ampliamos la máquina con 4 discos duros de 2Gb. Lo comprobamos con el siguiente comando,
fdisk -l
Instalamos el paquete lvm2 en nuestra máquina (Ubuntu Server)
sudo apt-get install lvm2
Creamos particiones en cada hd (fdisk /dev/sdb). Crearemos el particionado del disco duro (una sola partición primaria que ocupará todo el disco duro) de tipo LVM (tipo 8e).
fdisk /dev/sdb
Creamos las particiones para LVM
pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
Borramos las particiones creadas
pvremove /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
Para comprobar que funciona lo volvemos a crear
pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
Comprobamos
pvdisplay
Creamos el volumen lógico, sobre el sistema físico (fileserver es el nombre de grupo)
vgcreate fileserver /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
Comprobamos
Sobre el volumen lógico creado, haremos las siguientes particiones:
lvcreate –name system –size 1Gb fileserver lvcreate –name backup –size 1Gb fileserver lvcreate –name save –size 1Gb fileserver
Esto son volúmenes lógicos. Comprobamos
lvdisplay
lvscan
Para agrandar una particion en el volumen lógico
lvextend -L2.5G /dev/fileserver/save
o para reducirla…
lvreduce -L1G /dev/fileserver/save
Damos formato a cada uno de los volúmenes lógicos: system ext3, backup xfs y save reiserfs.
mkfs.ext3 /dev/fileserver/system mkfs.xfs /dev/fileserver/backup mkfs.reiserfs /dev/fileserver/save
Creamos punto de montaje.
¿Y si los quisieramos añadir al fstab?
Esto será absolutamente necesario si la instalación es para producción. Si no, el sistema, no lo montaría al inicio.
Para aumentar el tamaño de la partición «system» en 0,5 Gb. Ahora que están montadas, deberemos desmontarlas primero para poder utilizar el comando «lvextend«.
umount /dev/fileserver//system lvextend -L1,5 /dev/fileserver/system resize2fs /dev/fileserver/system
El comando «resize» extiende el formato a la ampliación
Y lo montamos
mount /dev/fileserver/system
Añadimos un nuevo disco duro
Ahora añadimos un nuevo disco duro. Para ello, primero crearemos la partición primaria de tipo linux LVM (8e) y añadiremos el nuevo volúmen físico (PV, 1o)
Extenderemos, por tanto, el tamaño del grupo VG «fileserver» (vg, 2o). Lo añadimos al volumen lógico.
vgextend lvm /dev/sdf1
Comprobamos el nuevo tamaño del VG «fileserver» (vg, 2o)
vgdisplay
Eliminamos un disco duro
Ahora vamos a eliminar el disco duro /dev/sdb1 perteneciente a VG «fileserver». Como contiene datos, primero copiaremos los datos de la partición sdb1,a la partición recién añadida /dev/sdf1.
pvmove /dev/sdb1 /dev/sdf1
Eliminamos la partición del VG «fileserver»
vgreduce fileserver /dev/sdb1
Comprobamos el nuevo tamaño del VG «fileserver«
Eliminamos la pertenencia del disco duro del PV
pvremove /dev/sdb1
Comprobamos que el PV ha disminuido de tamaño
Ya se puede quitar el disco duro sdb
pvremove /dev/sdb1
Si tienes algún comentario que hacer sobre este artículo, al pie del post tienes un formulario para hacerlo.
Si quieres contactar conmigo por cualquier otro asunto relacionado con el sitio, en la página de contacto, tienes un formulario más adecuado.
Y para suscribirte y recibir las novedades publicadas, tienes un enlace en el pie de la página o desde aquí mismo.