LVM: una mini guía
Introducción
Todas estas notas están sacadas del HOWTO oficial.
Asumimos un sistema que dispone de un disco IDE particionado y de un disco SATA nuevo y flamante.
- IDE: /dev/hda:
- Partición raíz: /dev/hda1
- Intercambio: /dev/hda2
- Partición independiente: /dev/hda3
- SATA: /dev/sda
- Sin particionar
Y anotamos este esquema retocado de interrelaciones entre elementos en un sistema LVM:
/dev/hda3 /dev/sda (volúmenes físicos PV)
| |
------------
|
data (grupo de volúmenes VG)
|
-------------------
| | |
/usr /boot /var (volúmenes lógicos LV)
| | |
ext3 ext2 xfs (sistemas de ficheros)
Inicializar discos ó particiones
Antes de poder utilizar un disco, ó una partición completa con LVM es necesario crear los volúmenes físicos:
# pvcreate /dev/hda3
# pvcreate /dev/sda
En caso de que LVM se queje de no poder usar un disco que tenga una tabla de particionado (procedente de un uso anterior), el siguiente truco (muy peligroso) permite continuar el proceso sin más:
# dd if=/dev/zero of=/dev/sda bs=1k count=1
# blockdev --rereadpt /dev/sda
Agrupando
Creamos un grupo de volumen, en la práctica una etiqueta, como contenedor del resto de los volúmenes:
# vgcreate data /dev/hda3
y lo activamos antes de usarlos:
# vgchange -a y data
Ahora añadimos el segundo disco, aunque podemos incluirlo en la creación:
# vgextend data /dev/sda
El volumen lógico
En este caso tenemos dos opciones, usar todo el espacio para un volumen lógico ó dividirlo en bloques. Como esto sólo es una chuleta voy a decantarme por la primera opción:
Localizamos cuántos bloques tiene el grupo
# vgdisplay data | egrep "Total PE" Total PE 102455
Creamos el volumen lógico (llamado databases) usando todo el grupo:
# lvcreate -l 102455 data -n databases
Construímos un sistema de archivos sobre él, sabiendo que el punto de montaje es el dispositivo /dev/data/databases; esto es, nombre de grupo y nombre de volumen lógico:
# mkfs -t xfs /dev/data/databases
Construímos un sistema de archivos sobre él, sabiendo que el punto de montaje es el dispositivo /dev/data/databases; esto es, nombre de grupo y nombre de volumen lógico:
# mkfs -t xfs /dev/data/databases
Creamos un punto de montaje (a elegir):
# mkdir /db
Lo incluímos en la tabla de montajes:
/db /dev/data/databases xfs defaults 0 2
Y si posteriormente conseguimos robar un tercer disco, digamos /dev/hdb, y queremos añadírselo íntegro a nuestro grupo:
Creamos un volúmen físico con el nuevo disco:
# pvcreate /dev/hdb
Lo añadimos al grupo
# vgextend data /dev/hdb
Extendemos el volumen lógico sobre él
Determinamos cuánto hay disponible en el nuevo volumen
# pvdisplay /dev/hdb | grep "Total PE" Total PE 71302
Añadimos al volumen lógico los nuevos bloques (ojo con el signo más, que es importante para indicar que añadimos):
# lvextend -l+71302 /dev/data/databases
Y extendemos el sistema de archivos, siendo en nuestro caso de esta forma:
# xfs_grow /db
Sin desmontar antes el dispositivo en el caso de los XFS.