domingo, 28 de junio de 2009

LVM - Logical Volume Manager

Ya que no contamos con discos reales, vamos a trabajar con discos virtuales para configurar nuestro LVM.

dd if=/dev/zero of=disco1.img bs=1024 count=10000

Con el comando anterior creamos un disco llamado disco1 de 10 MB





Creamos un archivo de dispositivo que apunte al disco creado.

losetup /dev/loop1 disco1.img

Procedemos a formatear el nuevo disco, elegimos file system ext3.
mkfs –t ext3 /dev/loop1

Por último montamos el disco para poder trabajar con él.

mount –o loop /dev/loop1 /mnt/loop1

Ahora, guardamos los cambios hechos con fdisk de la siguiente forma:

fdisk /dev/loop1 y luego digitamos w.

Una vez hecho esto volvemos a ejecutar fdisk y ya podemos crear, eliminar y modificar particiones. Juguemos con las opciones del menú.
De la misma forma que creamos el primer disco creamos un segundo disco con el tamaño que deseemos.

Antes de crear nuestro volumen lógico veamos algunos conceptos.
VG (volume group): Es el punto de abstracción más alto en LVM. Puede contener volúmenes físicos y lógicos.
PV (physical volume): Disco duro o RAID por software.
LV (logical volume): Una partición con su propio file system.
PE (physical extent): Está compuesta por trozos de datos de los PV.
LE (logical extent): Está compuesta por trozos de datos de los LV.

En nuestro caso vamos a definir dos volúmenes físicos, los ya creados loop1 y loop2:

pvcreate /dev/loop1
pvcreate /dev/loop2


Creamos un grupo que contenga nuestros discos:

vgcreate Mi_Grupo /dev/loop1 /dev/loop2

Vemos la información del grupo creado con el comando vgdisplay.
Aquí tenemos un ejemplo de la salida:


Ya estamos en condiciones de crear nuestro volumen lógico.

lvcreate –L tamaño –n nombre logical_volume volume_group

Esto nos crea un nuevo dispositivo en /dev, en este caso el dispositivo es /dev/Mi_Grupo/Mi_LV
Con lvdisplay vemos la información de los lv creados.




Es momento de formatear nuestro logical volume con el file system que queramos, aquí elegimos ext3.

mke2fs –j /dev/volume_group/logical_volume

Ahora podemos montarlo con el comando mount o agregarlo al archivo /etc/fstab.

mount /dev/Mi_Grupo/Mi_LV/mnt/lv

Finalmente vemos nuestros volúmenes físicos y el volume group al que pertenecen con pvscan.