La situación era el siguiente:
-Disco 320 Gigas
-Particion /dev/sda2 319Gigas
- Particiónado por defecto en lenny con LVM2 y cifrado en el grupo de volumenes.
- Volumen lógico /dev/lenny/home de 280 Gigas.
- Dentro del volumen de home tengo mas de 200 Gigas ocupados con datos.
- Cuando arrancaba y habia sobrepasado el limite de montajes sin chequeo, tenia que esperar a que realizara el fsck para 280Gigas(como 8 minutos).
- Necesidad/ganas de refrescar el trabajo con LVM. :)
Básicamente, mi idea era separar los datos brutos en un nuevo volumen y dejar otro únicamente para los datos de usuario(25 Gigas).
Pues bien una serie de puntos sencillos que has de saber antes de reducir un volumen lógico:
- Primero se reduce el sistema de ficheros y despues el volumen lógico. En caso contrario se pierden los datos sobrantes del volumen lógico.
- No se puede reducir menos del espacio libre en el volumen (suena lógico ...)
- Si el volumen está cifrado no hace falta realizar ninguna operación especial, puesto que el propio modulo,al estar cargado y el sistema arrancado, se encarga de "activar el cifrado" al crearlos
- Debe de estar desmontado lógicamente
El estado inicial era este (df -h /home):
Y el estado final ha sido este (df -h /home/liloman /home/datos /home):
S.ficheros Tamaño Usado Disp Uso% Montado en
/dev/mapper/lenny-home
283G 219G 51G 82% /home
S.ficheros Tamaño Usado Disp Uso% Montado en
/dev/mapper/lenny-liloman
25G 11G 13G 47% /home/liloman
/dev/mapper/lenny-datos
254G 201G 41G 84% /home/datos
/dev/mapper/lenny-home
4,0G 137M 3,7G 4% /home
Quiere decir, el volumen home lo reducí hasta 254 (espacio final despues de reservar para los i-nodos) y cree un nuevo volumen de 25 gigas.
Os pongo el resumen de comandos pues (como root en tty1 o modo single user):
(Reduzco el volumen home con cuidado)
umount /home
e2fsck -v -f /dev/lenny/home
resize2fs -p /dev/lenny/home 258G (tarda bastante)
lvreduce -L 258G -v /dev/lenny/home
e2fsck -v -f /dev/lenny/home
(creo el nuevo volumen liloman en el grupo de volumenes lenny)
lvcreate -L25G --name liloman lenny
mk2fs -j -L liloman /dev/lenny/liloman
Con esto ya habia reducido y preparado minimanente los cambios. Me faltaba cambiarle nombre al antiguo "home" por "datos",crear el nuevo volumen "/home", ajustar el fstab y finalmente mover los datos entre ellos .
- lvrename /dev/lenny/home datos
- lvcreate -L4G --name home lenny
- mk2fs -j -L home /dev/lenny/home
- vi /etc/fstab
/dev/mapper/lenny-home /home ext3 defaults 0 25. mount /home ; mkdir /home/liloman /home/datos; mount /home/liloman /home/datos
/dev/mapper/lenny-liloman /home/liloman ext3 defaults 0 2
/dev/mapper/lenny-datos /home/datos ext3 defaults 0 2
6. cd /home/liloman; mv -v !(Datos|Datos2|Informacion|Fotos) /home/datos; ln -s /home/datos/*
¡Y Voila!
Las ganancias obtenidas son las siguientes:
- Ganancia en velocidad de acceso, administración y organización.
- Ganancia en el fsck, debido a que se puede o bien programar un chequeo o bien anularlo y hacerlo manual sin tener que prescindir de iniciar tu sesion como usuario. Desmontando previamente el volumen claro está.
- Ganancia en proximas ampliaciones, puesto que para realizar un backup del volumen de datos solo tengo que crear un volumen snapshot en un disco externo o mejor todavia un volumen espejo ...
- Refresco en el manejo de LVM. :P
Futuras mejoras:
- Tunning del sistema de ficheros (ext3) para el volumen de datos para el tamaño medio de los archivos (algo se puede ganar con algo de magia).
- Cambio del sistema de ficheros (¿XFS?) y mirar sistema de ficheros "de batalla" (escritura y borrado facil)
- Sistema de "backup automático" con un disco externo por medio de LVM del volumen datos.
- Adaptar el tiempo de chequeo con tune2fs de todos los volumenes (lo tengo puesto a 15 dias juraria pero tengo que repasarlo)
- Backup online del volumen liloman o almenos los archivos de configuración esenciales de este.(GNUstep,bash*,Scripts/,...) :D
- Reducir los 2Gigas de swap que me metio la instalación y repartirlo al volumen mas necesitado. :D
Todavia me queda 1Giga libre que ya le daré uso, posiblemente como volumen de benchmark de próximos sistemas de ficheros. :P
Esto es todo amigos. :D
He intentado ponerlo lo mas sencillo e explicado posible, no entro en detalle sobre las virtudes del LVM, que este no es el proposito de este minitutorial.