Seguimos con nuestra serie LVM. Si quieres, puedes ir a la primera entrada de la serie o bien al último post sobre gestión de volúmenes lógicos.
En esta entrada vamos a revisar cómo administrar un sistema de archivos EXT2, EXT3 o EXT4 sobre LVM.
Partimos de un LV creado llamado lv_extfssample en el VG vg_storage1.
Formateamos en EXT4
Para este ejemplo vamos a formatear el LV en EXT4, aunque todo lo que veremos en esta entrada aplica de igual manera a EXT2/EXT3.
mkfs.ext4 /dev/vg_storage1/lv_extfssample
Montamos el filesystem
Trabajaremos en la medida de lo posible con el filesystem montado.
Habitualmente se tendrá configurado en el fstab, nosotros vamos a montarlo a mano en /mnt/temp.
mkdir /mnt/temp mount /dev/vg_storage1/lv_extfssample /mnt/temp
Aumentar el tamaño del sistema de archivos
Llegamos a uno de los puntos más interesantes de trabajar con LVM, poder modificar el tamaño de los volúmenes lógicos, aunque veremos que cada sistema de archivos es diferente y que el orden es importante.
Haremos las siguientes tareas en este orden:
- Revisar si el VG donde está alojado el LV tiene espacio suficiente.
- Aumentar el tamaño del volumen lógico LV.
- Redimensionar el sistema de archivos.
Revisar si el VG tiene espacio suficiente
En caso de no saber qué VG hay que revisar, utilizar comandos como df, lvdisplay y vgdisplay como hemos visto en anteriores entradas.
Una vez sabemos el VG que tenemos que revisar, suponiendo que el VG es vg_storage1, podemos saber cuánto espacio tenemos de la siguiente manera:
vgdisplay vg_storage1 | grep Free
Si hay una cantidad igual o superior al tamaño que queremos ampliar nuestro filesystem, podemos seguir adelante.
En caso contrario, hay que aumentar el tamaño disponible en el VG. Lo normal es añadir más unidades de almacenamiento, aunque en caso de no ser posible, se puede liberar algo de espacio de algún otro LV que pertenezca a ese VG.
Aumentar el tamaño del volumen lógico LV
El siguiente paso es aumentar el tamaño del volumen lógico, lo haremos con «lvextend«.
En este ejemplo aumentaremos el tamaño del LV lv_extfssample en 1 GB. Recordemos que el lv se encuentra montado en /mnt/temp.
lvextend -L+1G /dev/vg_storage1/lv_extfssample
Redimensionar el sistema de archivos
En este punto podemos tomarnos un momento para ver con lvdisplay cómo el volumen lógico es 1 GB más grande que el filesystem, que recordamos no hemos tenido que desmontar en ningún momento.
Por lo tanto, ahora hay que redimensionar el filesystem para que aproveche toda la capacidad del volumen lógico.
Lo hacemos con «resize2fs«, de la siguiente manera:
resize2fs /dev/vg_storage1/lv_extfssample
Ahora ya tenemos el filesystem del mismo tamaño que el LV.
Importante recalcar que NO ha sido necesario desmontar el sistema de archivos en ningún momento, lo hemos podido hacer «en caliente».
Disminuir tamaño
Trabajar con el almacenamiento siempre es delicado, pero cuando tenemos que hacer operaciones como ésta, hay que extremar la precaución.
Seguro que no es necesario este comentario, pero es buen momento para revisar que los backups de las unidades con las que vas a trabajar están al día y con buena salud.
El orden que vamos a seguir para disminuir es el contrario que seguíamos para ampliar.
- Comprobar el espacio ocupado del sistema de archivos.
- Desmontar filesystem.
- Redimensionar el sistema de archivos.
- Disminuir el tamaño del volumen lógico (LV).
Es necesario reducir el filesystem ANTES de reducir el volumen lógico.
Comprobar el espacio ocupado
Revisa la ocupación del filesystem y asegúrate de que hay más espacio libre del que quieres reducir.
Si no tienes disponible suficiente espacio, tendrás que borrar datos para reducir la ocupación, o bien reducir menos de lo que tenías pensado.
Desmontar el filesystem
Desafortunadamente, la reducción de tamaño de un filesystem EXT2/EXT3/EXT4 en linea no está implementada. Por lo tanto, esta intervención requiere de pérdida de servicio.
Planifica muy bien esta intervención, en caso de que la estés planeando para un entorno profesional.
Nada de particular en este apartado, para nuestro ejemplo en /mnt/temp:
umount /mnt/temp
Redimensionar el sistema de archivos
Es el momento de reducir el tamaño del sistema de archivos. Lo haremos con «resize2fs«, herramienta que ya vimos a la hora de aumentar el tamaño en apartados anteriores.
En nuestro ejemplo, vamos a reducir en 1 GB nuestro filesystem que se encuentra en el LV lv_extfssample:
e2fsck -f /dev/vg_storage1/lv_extfssample resize2fs -p /dev/vg_storage1/lv_extfssample 1GB
Disminuir el tamaño del volumen lógico LV
Ahora ya podemos reducir el tamaño de nuestro volumen lógico. Por supuesto, podemos reducir una cantidad igual o inferior a la reducida en el apartado anterior.
Utilizaremos la herramienta «lvreduce«.
En nuestro caso, reducimos en 1 GB el LV lv_extfssample:
lvreduce -L-1G /dev/vg_storage1/lv_extfssample
Solo resta montar de nuevo el volumen y veremos el nuevo tamaño.
También podemos comprobar cómo el VG dispone del espacio retirado del LV.
Disminuir el tamaño del filesystem y del LV a la vez
Podemos disminuir en un solo paso tanto el filesystem como el volúmen lógico usando el flag «–resizefs» al invocar «lvresize». En el ejemplo que hemos realizado anteriormente sería de la siguiente manera:
lvresize --resizefs --size 1G /dev/vg_storage1/lv_extfssample
Seguiremos la serie LVM con la administración de un sistema de archivos XFS sobre LVM.