Personaliza con Geeks & Linux Atelier!:
LVM en GNU/Linux. Parte I: ¿Qué es y a quién le sirve?

Inicialmente este artículo lo iba a escribir con el fin de hacer un tutorial sobre como instalar Ubuntu en un sistema utilizando LVM, pero en la medida que fui redactando el artículo me di cuenta que además de quedarme muy largo, el tema es lo suficientemente interesante como para utilizar más de un artículo. Así que no desesperen, que el tutorial ya vendrá.

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”.

Disco Duro

stock.xchng | weloo

¿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.

stock.xchng | GilOraggio

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):

  1. Reformatear el disco, cambiar el esquema de particionado y reinstalar.
  2. Comprar un nuevo disco, ingeniarse y pensar un nuevo esquema que le requerirá sólo el mínimo de movimiento.
  3. Configurar un enlace simbólico en / apuntando a /home e 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 /root en 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 /boot no 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 /.

flickr | saberhagen (cc - by-nc-sa)

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

Granja de discos duros

stock.xchng | goody2230

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.


  1. Vamos... sabemos que quieres comentar algo ;)

  1. Felipe Lucero (Responder) El 19 de Enero del 2010 a las 11:17

    Agh! Me ganaste con el LVM, así que yo hablaré sobre RAID :P.

  2. piponazo (Responder) El 19 de Enero del 2010 a las 17:34

    Muy buena entrada. Llevaba tiempo queriendo echarle un vistazo a LVM y aquí has dejado una información muy precisa y clara ;)

  3. Sergio Peralta (Responder) El 20 de Enero del 2010 a las 14:29

    porque no es conveniente utilizar una sola particion con aiguna distribucion?? por q habara problemas si necesito re-instalarla?? me pregunto esto, pues, yo tenia como todo nuevo usuario de linux, una particion( pequeña eso ) para windows y la otra para ubuntu 9.0.4. Igual me convenia tener window, pues, algunas cosas como la del router trair un disco de instalacion solo para windows. Bueno todo bien y luego actualce al ubuntu 9.10 desde ubuntu 9.04 pero ahi perdi la entrada a windows con el famoso Grub, q en realidad lo q me dijeron por varios lados no me funciono. Asi q ahora pensaba tener una sola particion con ubunntu, pero arriba dice q es riegoso, y es eso q me gustaria me aclararan

    od-, muy buenos articulos

  4. Loloto (Responder) El 20 de Enero del 2010 a las 14:54

    Si entendi bien y siguiendo el ejemplo de la Sra. Juanita me parece que hay algo mal escrito.
    Donde dice La partición /boot debiera incluirse en el LV porque no todos los bootloaders saben utilizarlas, ¿deberia decir La partición /boot no debiera incluirse en el LV… ?

  5. chupy35 (Responder) El 20 de Enero del 2010 a las 17:48

    es recomendable no tenerlo o desactivarlo en una lap o en una pc con solo un disco duro para mayor rapidez de booteo y para mas eficicencia

    • Josefa (Responder) El 13 de Septiembre del 2011 a las 3:40

      Chupy35, en que te basas para decir semejante tonteria? ¿Acaso tienes algun link a algun testeo hecho por alguna pagina de calidad sobre ese tema? Aparte de que el LVM tiene prestaciones par afuncionar incluso mas rapido, journaling, optimizacion de accesos… en fin.

      En serio, ese tipo de post solo hacen que confundir y engañar (ya que no aportas pruebas) al perosnal.

  6. PaBLoX (Responder) El 21 de Enero del 2010 a las 16:29

    Felipe Lucero: Ja! Póngale del “güeno” no más!

    Piponazo: Qué bueno que haya sido útil, atento que viene una o dos entregas más ;).

    Sergio Peralta: Te lo explicaré con una analogía, imagina que instalas todo en la misma partición, eso sería equivalente a instalar windows en una partición (práctica muy común). Lo que pasa es que si falla windows, tienes que formatear todo incluidos tus archivos personales que nada tienen que ver con el funcionamiento de windows. Es la misma idea, si por alguna razón quieres reinstalar Ubuntu (por ejemplo) y está todo en la misma partición, tendrás que borrar tus datos personales (almacenados en la carpeta /home/usuario). Por eso es mejor tenerlos en particiones distintas, ¿me explico?

    Loloto: Gracias, ya hice la corrección; mira de nuevo ;).

  7. Lightningdd (Responder) El 12 de Abril del 2010 a las 13:56

    en un parrafo dice “Sra Juanita” y en otro dice “Jane”, jejejejejej xD, excelente la informacion te lo agradesco

    • PaBLoX (Responder) El 11 de Julio del 2010 a las 23:02

      Corregido :P. No me había dado cuenta!

  8. GUANZO Buslesman (Responder) El 10 de Junio del 2010 a las 9:07

    una cagada este post !! la info donde esta ¡¡??

    • PaBLoX (Responder) El 11 de Julio del 2010 a las 23:02

      ¿?

  9. [...] la primera parte intenté además de explicar el concepto, permitirles evaluar si este método para particionar el [...]

  10. RazorBlade446 (Responder) El 12 de Julio del 2010 a las 17:04

    Hola, muy buena explicación sobre LVM, yo hice un pequeño tuto o guía, aqui: http://www.razorblade446.net/2010/02/18/instalar-ubuntu-karmic-usando-lvm.rb446
    Saludos desde Colombia.

  11. lzero (Responder) El 28 de Octubre del 2010 a las 17:37

    el articulo es una copia traducida del how to en español

    http://www.joshwink.net/doc/LVM-COMOv01.html

    Con respecto a los RAID, desde raid 5 en adelante es necesario que /boot sea un RAID 1(espejo o mirromed) y el resto quden en raid5

  12. roberto (Responder) El 25 de Junio del 2011 a las 13:06

    Bárbaro!!! bravo… bravo… muy buen tutorial.

  13. ivan (Responder) El 2 de Febrero del 2012 a las 15:41

    Muy util, lo estoy dando en clase de LPI y hemos realizado varias pruebas que hacen que se haga imprescindible, sobre todo para servidores grandes.

  14. Fran (Responder) El 8 de Febrero del 2012 a las 14:28

    Magnífico!
    Mi profesor ha dado la clase utilizando tu explicación de LVM


Avísame de los futuros comentarios via e-mail. También puedes suscribirte sin comentar.

XHTML: Puedes utilizar (con criterio) estas etiquetas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>