miércoles, 31 de diciembre de 2008

Trabajando con LVM

Un administrador de volumenes logicos nos permite crear y administrar nuestro espacio para almacenar informacion en nuestro servidor linux, agregando , quitando , removiendo particiones de acuerdo a nuestra necesidad.
Hay 3 piezas importantes que se deben tener muy en claro antes de comenzar a crear volumenes logicos, y estas son:
  • Volumenes Fisicos : Son los discos rigidos (fisicos) o particiones , por ejemplo /sda o sda1 o sda2. Con LVM se pueden agrupar distintos volumenes fisicos en un volumen logico.
  • Volumen Groups : Es un grupo creado a partir de volumenes fisicos, este puede ser ampliado o reducido de acuerdo a su necesidad.
  • Volumenes Logicos : Estos volumenes son los que se montan en una ultima instancia, pueden ser agregador o eliminados e incluso redimensionar su tamaño.Estos quedaran mas claros mas adelante cuando lo explique con un ejemplo.
CREANDO UN VOLUMEN GROUP
Para crea un volumen group primero debes tener al menos una particion o un disco para iniciar el LVM.Ahora vamos a crear un volumen group a partir 3 particiones, que bien podrian ser discos.

Particion Tipo File System Label Espacio
sda1 primaria ext3 / 5.00 G
sda2 primaria swap 1.00G
sda3 primaria ext3 155.00G

Esta instalado en sda1, Debian, en sda2 esta la memoria de intercambio y en sda3 es donde creare mi LVM.
sda1, sda2 y sda3 son volumenes fisicos, voy a iniciar mi LVM en sda3.

Voy a inicializar sda3 como un volumen fisico:
root@debian:~# pvcreate /dev/sda3
Si se desea combinar varios discos, se debe hacer lo siguiente:
root@debian:~# pvcreate /dev/sdb
root@debian:~# pvcreate /dev/sdc
Cuando ya esta inicializado cada disco o cada particion, se debe crear un volumen group con cada uno de estos volumenes fisicos.
root@debian:~# vgcreate group-vol /dev/sda3
group-vol es el nombre del grupo que he creado con la particion sda3, en el caso por ejemplo que fueran 2 discos seria:
root@debian:~# vgcreate group-vol /dev/sdb /dev/sdc
Para verificar si el grupo se creo correctamente, tenemos el comando vgscan
root@debian:~# vgscan
Reading all physical volumes. This may take a while...
Found volume group "group-vol" using metadata type lvm2
Listo! ya tenemos nuestro grupo de volumenes listo, ahora a trabajar con el.

TRABAJANDO CON VOLUMES LOGICOS
Trabajar con volumenes logicos es muy util , ya que cuando nos quedamos sin espacio podemos agregar espacio, asi como tambien si nos sobra espacio y queremos moverlo a otro lado en donde lo necesitemos, lo podemos hacer, esto nos quedara bien en claro cuando trabajemos con ellos.

Primero vamos a crear un volumen logico
root@lappy:~# lvcreate -n test --size 1g group-vol
Logical volume "test" created
Como vemos, se a creado un volumen logico llamado test , con un giga de capacidad con el volumen logico group-vol.

Este volumen logico sera accedido desde /dev/group-vol/test, y ahora vamos a formatearlo para darle el sistema de archivos:
root@lappy:~# mkfs.ext3 /dev/group-vol/test
root@lappy:~# mkdir /home/test
root@lappy:~# mount /dev/group-vol/test /home/test
Como vemos, se trabaja con un volumen logico como si fuera una particion de un disco, primero lo formateamos como ext3 como sistema de archivos, y lo montamos en /home/test.

Con el comando lvdisplay podemos visualizar informacion acerca de nuestro volumen logico:
root@debian:~# lvdisplay
--- Logical volume ---
LV Name /dev/group-vol/test
VG Name group-vol
LV UUID J5XlaT-e0Zj-4mHz-wtET-P6MQ-wsDV-Lk2o5A
LV Write Access read/write
LV Status available
# open 0
LV Size 1.00 GB
Current LE 256
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 254:0
Nosotros le hemos dado 1 Giga de capacidad, pero imaginemosnos que necesitamos mas que eso, asi que vamos a redimensionarlo:
root@debian:~# umount  /home/test/
root@debian:~# lvextend -L+1g /dev/group-vol/test
Extending logical volume test to 2.00 GB
Logical volume test successfully resized
Que se hizo? bueno primero se desmonto el volumen logico, y luego con lvextend se le asigno 1 giga mas del group volumen "group-vol"

Si ahora vemos con lvdisplay veremos el cambio
root@debian:~# lvdisplay
--- Logical volume ---
LV Name /dev/group-vol/test
VG Name group-vg
LV UUID uh7umg-7DqT-G2Ve-nNSX-03rs-KzFA-4fEwPX
LV Write Access read/write
LV Status available
# open 0
LV Size 2.00 GB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 254:0
Algo importante a realizar es que como el volumen logico a sido modificado ampliando su tamaño, se debe redimensionar el sistema de archivos , en este caso ext3.
root@debian:~# e2fsck -f /dev/group-vol/test
root@debian:~# resize2fs /dev/group-vol/test
Listo, ahora volvemos a montar el volumen logico dentro de home/test y tenemos nuestros 2 gigas disponibles.

Si deseamos eliminar algun volumen logico, se realiza lo siguiente:
root@debian:~# lvremove /dev/group-vol/test
Do you really want to remove active logical volume "test"? [y/n]: y
Logical volume "test" successfully removed
META DATA
Si con el paso del tiempo, nos vamos olvidando del volumen group o de los volumenes logicos que hemos creado, podemos ver los detalles con el comando pvdisplay
root@debian:~# pvdisplay
--- Physical volume ---
PV Name /dev/hda3
VG Name group-vol
PV Size 153.88 GB / not usable 0
Allocatable yes
PE Size (KByte) 4096
Total PE 7392
Free PE 5280
Allocated PE 2112
PV UUID WyXQtL-OdT6-GnGd-edKF-tjRU-hoLA-RJuQ6x


Si se pierde esta información se podría encontrar en el archivo /etc/lvm/backup/group-vol.

Si queremos saber qué volúmenes lógicos hemos creado lo podremos ver en el directorio /etc/lvm/archive.
Este contiene los números de los archivos que contienen copias de seguridad de las operaciones que hemos realizado.

Como ejemplo hemos creado el grupo "test" , que pasó a redimensionar. Aquí está la primera sección de / etc/lvm/archive/skx-vol_000009.vg:

# Generated by LVM2: Sat Jun 10 12:35:57 2006

contents = "Text Format Volume Group"
version = 1

description = "Created *before* executing 'lvcreate -n test --size 1g group-vg'"

creation_host = "debian"
# Linux lappy 2.6.8-2-686 #1 Sat Jan 8 16:50:08 EST 2005 i686

1 comentario:

KVZ 85 dijo...

Super bien sintetizado gracias por el aporte.
vx