Breve Reseña sobre LVM
LVM (Logical Volume Manager) es el
Administrador de Volúmenes Lógicos del Sistema
Operativo GNU/Linux. Existen actualmente 2 versiones de LVM para
GNU/Linux LVM-1 (En kernel antiguos serie 2.4) y LVM-2 (Para kernel
modernos serie 2.6).
La Administración de Volúmenes
Lógicos provee un tratamiento de más alto nivel de el
espacio de disco de nuestro sistema que el tratamiento tradicional de
discos y particiones. Esto brinda al administrador del sistema mucha
mas flexibilidad asignando espacio a aplicaciones y usuarios.
Con LVM podemos ver todo el espacio de
cada uno de los discos duros conectados a nuestro sistema llamados
“Physical Volumes” (PV) como un sólo Disco Duro Virtual,
en él creamos los “Volume Group” (VG), de éstos VG
podemos coger cierta cantidad de bloques y crear “Logical Volumes”
(LV), el LV no necesita ser un grupo de bloques continuos ni tampoco
pertenecer a un mismo disco duro.
La estructura de LVM es la siguiente:
|
Physical
Volumes (PVs)
|
hda,
hdb, hdc, etc.
|
Aquí
vemos toda la colección de discos duros de nuestro
sistema.
|
|
Volume
Group (VG)
|
vg1
|
Aquí
vemos los Grupo de Volúmenes.
|
|
Logical
Volumes (LV)
|
lvhome,
lvusr, lvvar, etc
|
Aquí
vemos los Volúmenes Lógicos.
|
|
Sistema
de Archivos
|
etx3,
reiserfs, xfs, etc.
|
Aquí
vemos los Sistemas de Archivos que puede contener cada Volumen
Lógico.
|
|
Archivos
y Directorios
|
/home,
/usr, /var, etc
|
Los
Sistemas de Archivos, almacenan archivos y directorio
|
(Cuadro 1, Estructura de
LVM)
En el Cuadro 1 podemos apreciar que el
espacio total de nuestro sistema sera la suma del tamaño de
cada Disco Duro (PVs) dentro del LVM, luego todo ese gran disco
virtual se convierte en un VG, para el ejemplo tenemos un sólo
VG llamado “vg1” y dentro de éste VG se crean los LVs
conteniendo cada unos de ellos diferentes Sistemas de Archivos y
dentro de ellos archivos y directorio.
Por ejemplo si tenemos un disco duro de
80G con 3 particiones: 1. La raíz / ===> 3G 2. Swap =====> 2G 3. Y lo demás LVM, es decir un
VG ===> 75G Dentro del VG creamos LVs para /home y
/usr de 10G y 5G respectivamente (Podemos hacerlo para varios puntos
de montaje, teniendo en cuenta que no es recomendable tener la raiz / en un volumen lógico, es mejor tener la / fuera del LVM, ya que hay problemas para desmontarla). Quedando entonces 60G de espacio disponible en el VG.
Si luego de un tiempo nos damos cuenta
que nos estamos quedando sin espacio en /home, el problema se
soluciona fácilmente: cogemos de lo que tenemos disponible en
el VG y listo! Todo ésto en caliente. Así como también
podemos reducir el espacio de /usr a 3G, etc.
Si conectamos un nuevo disco duro de
40G a nuestro sistema, creamos un nuevo PV y lo metemos al LVM y
listo ya tenemos 40G más de espacio disponible en nuestro VG.
Con esta breve reseña he tratado
de mostrarles algunos beneficios de LVM. Ya queda en Uds. poder
investigar más y ver cómo aprovechar todos lo
beneficios que brinda para sus necesidades.
Ahora paso a mostrarles un tutorial
para una de las tareas mas comunes usando LVM: Reducir y Expandir los
Volúmenes Lógicos (LV).
Cuando trabajamos con LVM debemos
recordar que hay 2 capas implicadas:
- La capa bajo el filesystem, antes
conocida como partición, y
- El filesystem propiamente dicho.
Para poder reducir o expandir algún
LV debemos proveernos antes de cierta información tal como:
espacio disponible en el VG y espacio disponible en los LVs, además
de la información propia de cada uno.
Para ver la información del VG
ejecutamos el comando: #vgdisplay Por ejemplo, para ver el espacio
disponible observamos la línea que dice:
Free PE / Size 95 / 2.45 GB Para ver la información del VG
ejecutamos el comando: #lvdisplay Obtendremos la información de
todos los LVs presentes en nuestro sistema, por ejemplo, para ver su
tamaño observamos la línea que dice:
LV Size 5.95 GB
Reduciendo un Logical Volume:
Es importante recordar reducir el
tamaño del filesystem o lo que este residiendo en el volumen
antes de encoger el volumen, sino se perderá data.
1° Desmontar el filesystem: # umount /home
2° Reduciendo el filesystem:
Si es Ext2/Ext3: # resize2fs /dev/vg1/lvhome XX (XX es
el nuevo tamaño)
Si es Reiserfs: # resize_reiserfs -s-XXG /dev/vg/datalv
(XX es el tamaño a restarle en este caso)
Para Xfs y Jfs no es posible reducir
éstos filesystems.
3° Reduciendo el LV:
# lvreduce -L-1G /dev/vg1/lvhome
4° Volvemos a montar el filesystem:
# mount /home
Expandiendo un Logical Volume: 1° Expandiendo del LV: # lvresize -L+XXG /dev/vg1/lvusr (XX es
el tamaño a sumarle en este caso)
2° Expandiendo el filesystem para
que coincida con el del LV:
Si es Ext2/Ext3: # umount /usr # resize2fs /dev/vg1/lvusr # mount /usr
Si es Reiserfs: #resize_reiserfs /dev/vg1/lvusr
Si es Xfs: # xfs_growfs /usr
Si es Jfs:
# mount -o remount,resize /usr
Algunos Tips
En mi caso, tengo en mi LVM: /home, /swap y /usr, tuve problemas al
querer desmontar /usr por ejemplo, ya que recibía el mensaje de que el
dispositivo estaba ocupado. Entonces si queremos desmontar /home, /usr,
etc ó algún dispositivo que esté siempre en uso debemos seguir los
siguientes pasos:
1° Salir del entorno gráfico hasta la pantalla de logueo, nos pasamos a una terminal con Ctrl+F1 y ejecutamos como root:
# telinit 1 (con esto nos pasamos al modo de usuario simple: "sigle mode user")
2° Desmontar el dispositivo y hacer las operaciones respectivas de reducción o expansión.
3° Volver al modo normal:
# telinit 2
Repito que no es recomendable tener la raíz / dentro del LVM, ya que hay problemas cuando queremos acceder a ella desde algunos Live CDs y además no se puede desmontar.
Suerte!
|