Luego de la pequeña introducción, vamos a ir directo al grano:
¿Qué es LVM?
LVM es el acrónimo de Logical volume managent, que en computación hace referencia a una forma de asignar espacio de forma más flexible que las formas tradicionales como el particionado. En particular un volume manager puede concatenar, dividir o combinar particiones (¡incluso de discos distintos!) en otras virtuales más grandes que los administradores pueden redimensionar o mover, potencialmente sin ni siquiera interrumpir su uso. También permite la administración de volúmenes definidos por grupos de usuarios, otorgándole al administrador del sistema lidiar con grupos de volúmenes con nombres más sensibles como “desarrollo” o “sistema” en vez de nombres de discos físicos que poco nos dicen como “sda” y “sdb”.
¿Por qué utilizar LVM?
En general, el LVM se asocia si tienes un disco grande o para administrar muchos discos, es notablemente más cómodo, pero en la práctica tiene beneficios para discos pequeños (que veremos en la siguiente sección) o grandes. En mi caso, lo hago porque me gusta probar nuevas distribuciones, de esta forma, puedo maximizar mi partición /home y luego en la medida que las nuevas distribuciones sean más útiles les voy dando más espacio (o menos si es que no me agradan) y no tengo que reformatear o mover particiones cada vez.
Beneficios en un sistema pequeño
Uno de los grandes problemas que tiene que enfrentarse un usuario nuevo en GNU/Linux es como particionar el disco. La necesidad de estimar cuánto espacio se necesitará para los archivos de sistema y los de usuario hacen la instalación más complejo de lo que debiera (de todas formas, con los nuevos asistentes, esta tarea para muchos pasa desapercibida) y finalmente muchos usuarios optan simplemente por poner todos sus datos en una gran partición para evitarse problemas. Esto es un poco riesgoso (y poco cómodo si pensamos luego simplemente reinstalar la distro).
Una vez que uno ha supuesto cuánto espacio necesita /,/home, /opt (o el asistente de instalación lo realizó automáticamente) o cualquier otra es muy común encontrarse que una de esas se llene incluso si hay suficiente espacio en el disco en otras particiones.
Con el LVM, todo el disco puede ser asignado a un volumen de grupo (volume group y de ahora en adelante VG) y los volúmenes lógicos (logical volume; LV) creados para almacenar /,/home y /opt. Por ejemplo, el LV donde está /home se llena, pero aún queda espacio en/opt es posible achicarla para darle más espacio a la primera.
Otra alternativa podría ser asignar sólo una cantidad mínima de espacio para cada LV y dejar el resto del disco sin asignar y luego apenas se comiencen a llenar se expanden como sea necesario.
Ahora viendo un ejemplo más práctico: Pepito intenta revivir un viejo disco duro de 8.4 GiB para instalar GNU/Linux utilizando el siguiente sistema de particionado:
/boot /dev/hda1 10 Megabytes /swap /dev/hda2 256 Megabytes / /dev/hda3 2 Gigabytes /home /dev/hda4 6 Gigabytes |
Esto, supone, maximizará la cantidad de espacio para guardar su música.
Un tiempo después, se le ocurre instalar OpenOffice.org y el último entorno de escritorio, pero se da cuenta que la partición raíz (/) no es lo suficientemente grande. Esto lo lleva a guardar todos sus OGGs en un DVD dejando más espacio libre en /home.
Sus opciones no son muy cómodas (ni buenas):
- Reformatear el disco, cambiar el esquema de particionado y reinstalar.
- Comprar un nuevo disco, ingeniarse y pensar un nuevo esquema que le requerirá sólo el mínimo de movimiento.
- Configurar un enlace simbólico en
/apuntando a/homee instalar todo el nuevo software ahí.
Con LVM la tarea se simplifica.
Juanita revive un equipo similar, pero ella utiliza LVM para dividir el disco de forma similar:
/boot /dev/hda1 10 Megabytes swap /dev/vg00/swap 256 Megabytes / /dev/vg00/root 2 Gigabytes /home /dev/vg00/home 6 Gigabytes |
Utilizar
/rooten LV requiere una imagen initrd capaz de arrancarlo, en algunos casos podría ser arriesgado porque si se actualiza el kernel y no initrd podría ser imposible bootearlo. Eso sí, en general, las nuevas distribuciones soportan lvm en sus mkinitrd por lo que este “inconveniente” (si es que alguna fue tal) debería desaparecer.
La partición
/bootno debiera incluirse en el LV porque no todos los bootloaders saben utilizarlas, de forma que podríamos quedar con un sistema que no sea arrancable.
Cuando ella se encuentra frente al mismo problema que Pepito, puede reducir el tamaño de /home en un (1) GiB y agregar ese espacio a la partición /.
Ahora supongamos que los dos se las arreglan para llenar el disco, así que deciden agregar un nuevo disco de 20 GiB a sus sistemas.
Pepito formatea todo el disco como una partición (/dev/hdb1) y moviliza su /home existente a él y utiliza todo el disco como /home. Pero tiene 6 GiB sin utilizar o tiene que utilizar enlaces simbólicos para que ese disco parezca una extensión de /home, algo así como /home/pepito/viejos-oggs.
Por otra parte, Juanita sencillamente agrega el nuevo disco al VG expande el VL de /home para incluir el nuevo disco. O, de hecho, podría mover los datos desde el viejo /home al nuevo disco y luego hacer que todo la raíz (/; root) cubra el viejo disco.
Beneficios en un sistema grande
Los beneficios del LVM son bastante más obvios en los sistemas grandes con muchos discos. Manejar una granja de discos (disk farm) es un trabajo que consume mucho tiempo, y se hace particularmente más complejo si el sistema contiene varios de distinto tamaño. Equilibrar (y en muchos casos generando conflictos) los requerimientos de espacio entre varios usuarios puede ser una pesadilla.
Los grupos de usuarios pueden asignarse a VG y LV y pueden crecer en la medida que sea necesario. Es posible para el administrador del sistema “retener” espacio hasta que se requiera. Luego puede ser agregado al VG (usuario) que más lo requiera.
Cuando se añaden nuevos discos al sistema, no es necesario mover los archivos de los usuarios por todas partes para darle mejor uso al espacio; simplemente se añade el disco a un (o más) VG y luego se extienden los LV de la forma que sea necesite.
También es fácil dar de baja discos moviendo los datos a los discos más nuevos – todo esto en línea, sin interrumpir el trabajo de los usuarios (cosa imposible de realizar en el esquema clásico).
Bueno, esa sería esta primera parte, más informativa que nada, ¡espero que les sea útil!. Como siempre, dudas, reclamos y amenazas en los comentarios.















Vamos... sabemos que quieres comentar algo ;)