Logical Volume Manager

Para empezar definamos que es un LVM según wikipedia significa lo siguiente: LVM es una implementación de un administrador de volúmenes lógicos para el kernel Linux. Se escribió originalmente en 1998 por Heinz Mauelshagen, que se basó en el administrador de volúmenes de Veritas usado en sistemas HP-UX.

Ventajas de usar lvm (citando de nuevo a wikipedia)
Ventajas de usar LVM en un sistema pequeño
Una de las decisiones que afronta un usuario instalando GNU/Linux es cómo particionar el disco duro. La necesidad de estimar cuanto espacio será necesario para el sistema, para los temporales o para los datos personales, puede convertirse en algo problemático, por lo que muchos usuarios optan por crear una partición que ocupe todo el disco y allí introducir los datos. Aún habiendo estimado correctamente cuanto espacio se necesita para /home, /usr, /tmp, o cualquier otro directorio importante, es bastante común que nos quedemos sin espacio en estas particiones, cuando tenemos espacio de sobra en alguna otra.
Con el uso de un administrador de volúmenes lógicos, el disco completo puede ser asignado a un único grupo lógico y definir distintos volúmenes lógicos para almacenar /home u otros directorios. En el caso que nos quedemos sin espacio, por ejemplo, en /home, y tenemos espacio en /opt, podríamos redimensionar /home y /opt y usar el espacio que le hemos quitado a /opt y añadírselo a/home. Hay que tener en cuenta, que para realizar esto, nuestro sistema de ficheros debe soportar el redimensionado por arriba y por abajo, como ReiserFS.
Otra alternativa sería dejar una cierta cantidad de espacio del disco sin asignar y cuando fuera necesario, expandir el volumen.
Ventajas de usar LVM en un sistema grande
Administrar un sistema con muchos discos es un trabajo que consume tiempo, y se hace particularmente complejo si el sistema contiene discos de distintos tamaños. Balancear los requerimientos de almacenamiento de distintos usuarios (a menudo conflictivos) puede ser una tarea muy laboriosa y compleja.
Los grupos de usuarios (llamémosles por ejemplo administración, desarrollo, etc.) pueden tener sus volúmenes lógicos y éstos pueden crecer lo que sea necesario, y el administrador puede realizar las operaciones oportunas sobre dichos volúmenes.

Una imagen de como se representa un LVM en tu sistema operativo



Ahora si a lo que nos interesa como crear un LVM en un sistema Linux
Si empiezas desde 0 (ósea si recién comienzas a instalar un Linux en particular es recomendable usar los directorios de mas uso como volúmenes lógicos) ósea en el momento que te pide hacer una instalación típica o personalizada pones personalizada.
Debes conocer que para iniciar cualquier Linux solo se requiere de 3 particiones
/boot        swap y        / (raiz del sistema) de las cuales solo 2 dejaremos fuera del lvm /boot y swap por el motivo de la Nota
Nota: la partición /boot no debe estar en el en lvm ya que lvm hasta el momento no soporta booteo (si haces lo contrario no te inicializara el sistema operativo) y swap básicamente seria un desperdicio si conoces que si un equipo no supera el 1gb de RAM le tienes que poner el doble y si supera esta cantidad tienes que ponerle la misma
Ej.
Caso menor de 1024mb
512mb de RAM = 1024MB de swap
1.5GB de RAM= 1.5 GB de swap
Para newbies usando wizard al momento de instalar Linux:
1.-poner crear lvm (centos, fedora o basados en redhat), poner crear pv (caso Ubuntu, gentoo o basados en debian)
2.- Creamos el Physical volume dependiendo de los discos duros que tengamos a disposición ósea los sda ej.: sda1, sda2, sda(n) etc. Lo mas recomendable para sistemas es que asignemos todo el espacio libre para este SO a los pv (de ahora en adelante usare pv para describir un physical volume)
3.-Creamos Volgroup: usando el pv que tenemos a disposición creamos los vg (ahora usare vg para describir volgroup) le asignas un nombre y el espacio para tu vg. Lo recomendable para sistemas de pymes es asignarle todo el espacio al vg, en caso de empresas grandes usar mas de un vg ya que por costumbre ellos tienen arrays de discos que pueden ser usados por el sistema.
4.- Creamos los logical volume: usando el vg correspondiente creamos los lv (usare lv para describir los logical volume) básicamente a mi consideración uso lvm para sectorizar todo lo conveniente al comportamiento de SO
/root (partición del sistema operativo) normalmente le asigno 1gb
/home (partición de usuarios, normalmente usado para chunks de databases como informix, variables y entornos de usuarios así como directorio para uso de los mismo) normalmente uso 2gb mínimos
/usr partición usada por los programas instalados vía yum (véase yum en el post de dans) normalmente 6GB mínimos
/var partición asignada a variables del sistema, logs, mails, etc. normalmente asigno 4GB mínimos
/tmp partición usada para los archivos temporales del sistema normalmente asigno 1gb
Eso como básico de allí puedes devirar en crear particiones para bases de datos (muy recomendable), directorios web, respaldos de lv, directorios para uso de samba etc. eso queda a consideración del administrador

Conocimientos de Linux
Ahora para los que tienen conocimientos de Linux mediante consola esto cuando tienes un Linux instalado o estas instalando Linux desde consola es lo siguiente  
Ojo: debes tener espacio libre en disco o sino reparticiona el disco para que puedas usar lvm

1.- creamos pv
pvcreate  ej. pvcreate /dev/sda1

2.- creamos vg
vgcreate las rutas son de los pv ej. vgcreate gump0 /dev/sda1 /dev/sda2

3.- creamos lv
lvcreate -L -n ej. lvcreate -L 20G gump0 -n base

4.- ya creado el lv comenzamos a inicializarlo con formato valido para Linux
mkfs -t -v ej. mkfs -t ext4 -v /dev/gump0/base

5.- si gustamos comprobamos de que haya sido formateado correctamente
e2fsck -F ej. e2fsck -F /dev/gump0/base

6.- Montamos la partición
mount -t /dev/volgroup/logicalvolume /destino ej. mount -t ext4 /dev/gump0/base /base (/base debió haber sido creado con mkdir)

Algunos comandos de uso ya propiamente de LVM
lvmdiskdisplay = muestra los discos inicializados y cuándos son pv
pvdisplay = muestra en extend el pv
pvscan= muestra en gigas el pv
pvremove= eliminar un pv
vgcreate /rutas de discos = crea un vg
vgextend /rutas = extiende espació a 1 vg
vgs= muestra información del vg
vgremove= borra el vg
vgrename = renombra un vg
vgdisplay= muestra detalladamente la información del vg
lvscan = muestra la lista de lv creados
lvextend -L+tamaño /dev/volgroup/logicalgroup = aumenta cantidad especificada
lvextend -L tamaño /dev/volgroup/logicalgroup  = aumenta cantidad hasta llegar a la cantidad
resize2fs -f /ruta cantidad = redimensiona sistema de archivos
lvreduce -Ltamaño /dev/volgroup/logical = reduce el espacio en el lv

Consideraciones a tomar
Orden de redimensionamiento
Desmontar->lvextend->resize2fs->montar (para ampliar la partición)
Desmontar->resize2fs->lvreduce->montar (para reducir la partición)

Agradeciendo a Dans por la confianza este es mi primer post en general
En otros post detallare mas como hacer mirroring, disk stripping, snapshot y algunos utilitarios gráficos para newbies de administración de lvm disculpen mis faltas ortográficas pero este documento fue creado en googledocs para ingles jajaja :D

Atte. Gump

Comentarios

Entradas populares