Está en la página 1de 9

c c


 

 

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:

O  

LVM es el acrónimo de Logical volume managent, que en computación hace referencia


a
 !" # $
 " 
"! " . En particular un —  puede ""%   
"$ ! "  (¡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´.

@ 


O
   

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 grande s.
En mi caso, lo hago porque me gusta probar
nuevas distribuciones, de esta forma, puedo
maximizar mi partición V  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.

‰   

Uno de los !$


 



 

c 
"! "  ". 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 V,V  , V (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.
]on el LVM, todo el disco puede ser asignado a un volumen de grupo (—  
y
de ahora en adelante ) y los volúmenes lógicos (  — V c ) creados para
almacenar V,V  y V . Por ejemplo, el LV donde está V  se llena, pero aún
queda espacio enV 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:

VV V 
  
 
V
V V 
 
 
VV V 

 
V V  V 

 

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 (V) no es lo suficientemente grande.
Esto lo lleva a guardar todos sus OGGs en un DVD dejando más espacio libre en V  .

Sus opciones no son muy cómodas (ni buenas):

MÊ    @  @       @  


Ê     @  @   @    @      @ 
     
!Ê     @   V    V  @     
@   

]on LVM la tarea se simplifica.

Juanita revive un equipo similar, pero ella utiliza LVM para dividir el disco de forma
similar:
VV V 
  
 

V V  V
 
 
VV V  V
 
V V V  V 
 

Utilizar V 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 V  debiera incluirse en el LV porque no todos los b    saben


utilizarlas, de forma que podríamos quedar con un sistema que no sea arrancable.

]uando ella se encuentra frente al mismo problema que Pepito, puede reducir el tamaño
de V  en un (1) GiB y agregar ese espacio a la partición V.

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 (V V  ) y moviliza su V 
existente a él y utiliza todo el disco como V . Pero tiene 6 GiB sin utilizar o tiene
que utilizar enlaces simbólicos para que ese disco parezca una extensión de V  , algo
así como V VV  .

Por otra parte, Juanita sencillamente   


 "  ! c de
V  para incluir el nuevo disco. O, de hecho, podría mover los datos desde el viejo
V  al nuevo disco y luego hacer que todo la raíz (VV root) cubra el viejo disco.
‰  
@ 
!"

Los beneficios del LVM son bastante más


obvios en los sistemas grandes con muchos
discos. Manejar una granja de discos ( 
 ) 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.

]uando se añaden nuevos discos al sistema, no


es necesario mover los archivos de los usuarios por todas partes para darle mejor uso al
espacioV 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 ! $ de realizar en el
esquema clásico).

Bueno, esa sería esta primera parte, más informativa que nada, ¡espero que les sea útil!.
]omo siempre, dudas, reclamos y amenazas en los comentarios.


# @            @       @  @ 
@     @           $ @  
@  @  %        @ &

En la primera parte intenté además de explicar el concepto, permitirles evaluar si este


método para particionar el disco responde a sus necesidades. En esta parte abordaremos
dos temas, en primer lugar la anatomía del sistema y posterior a eso, veremos algunos
de los comandos más básicos.

þ 

 Esta parte puede ser más bien árida, si quieres puedes saltarte a la siguiente
sección. Es probable que igual comprendas la lógica con los ejemplos.
La anatomía de LVM está compuesta de 3 partes principales, volumen lógico (LV),
volumen físico (PV), y grupo de volúmenes (VG), más otras dos que pueden ser útiles
para complementar a las primeras, los    físicos y lógicos. La unidad base para
poder tener un sistema LVM son los VG que están formados por un número a elección
de PV, puede ser uno (en mi caso) o más de uno, y finalmente los LV que vendrían
siendo lo más parecido a una partición propiamente tal. Para simplificar:

 
 

!
"!"
"#$ 
 %V
 %V
 #!&' $ 
 V( %
 V( %
&&!&
"  )$ 
 ((( 
'''*

"  $ 

(gracias Erik Bågfors)

Por otro lado, los PE son los trozos en los que se divide un PV, estos a su vez establecen
el de los lógicos (LE) que tienen relación a los trozos de datos en los que se divide un
VG.

Si tomamos el esquema anterior, supongamos que creo un grupo de volúmenes llamado


#!&'  asignándolo una cantidad de 4 MB a cada extent, a este volumen le agregamos
la segunda partición del primer disco (sda2) y el segundo disco completo (sdb), ahora
cada uno tomará el nombre  y  (por supuesto que puede ser cualquier otro
nombre). La segunda partición tiene 40 GB y el segundo disco 400 GB, de forma que
 tendrá (aprox) 10.000    y  100.000 de forma que en total tendremos
110.000    en el VG #!&'  . ]omo consecuencia lógica, obtenemos una especie
de ³fusión´ entre ambos discos. Ya nos queda crear un volumen lógico (o varios)
asignándole una cantidad de disco (en MB, GB, etc) o a través de '! y por último,
creamos un sistema de archivos para cada volumen lógico, que funciona para casi todo
uso práctico como una partición.

?

 Los man de lvm son sumamente buenos, así que les sugiero encarecidamente que
los miren.


& "' (

Si seguimos el ejemplo anterior, vemos que lo primero que debemos hacer es crear un
PV, para ello utilizamos el intuitivo comando (siempre como root) de:

 "
V V
"!V V"

Por ej:

 "
V V
V V 
+, 
"
"!$ 
 #
 
 


!)' (

]ontinuando« tenía un disco de 40GiB y otro de 400GiB, resulta que tengo un PV de


440 GiB. Ya con nuestro volumen físico es hora de crear el (o los) grupos de volúmenes
(VG), nuevamente con un intuitivo comando:

"
&-#&!V V
V V 
+.
"!$ 
#
 


Eso por supuesto, dejará un sólo gran volumen de 440GiB con un   de 4MB que es
lo que viene por defecto, en caso de querer cambiarlo sólo basta con agregar 
/

01&!
2 (qué puede ser m [megabytes], g [gigabytes], y así. Si no se agrega un
sufijo, se asume que son megabytes).

Un PE de 4 MB nos permite un máximo de 256GB por LV.

Dependiendo de la distribución de GNU/Linux que utilices, puede ser que los


volúmenes " 
# ", en ese caso, debes ejecutar:

"
! 



* "'c (

ùinalmente llegamos a la parte interesante de este extenso y latero artículo. Este es el


momento que tenemos la mayor flexibilidad, y nuevamente LVM nos deslumbra con un
intuitivo comando:

# "
 ) & -#&! !#&!)" 
+

"
3&4!*
"5!$ 
# 
# #


Extender el tamaño de un LV es bastante simple, no así reducirlo, por lo que sugiero


que comiences con tamaños pequeños y los aumentes en la medida que lo necesites.
Recuerda que aquí eso no es problema.

]omo ejemplo, los comandos #  y # #


 en mi equipo son:

+6# 
),)789!7!
:  ).:.!  

" #!&' 
 
!#!&' 
 
 #!&' 
; 

#!&' 
 
&&!&#!&' 
;   

+6# #
 
)"
# #& 
)<
V V#!&'V  
<
#!&' 
)==>->=?@ A '.B'837CDD'A
9
)@,""
V 
)7
&

#
# 
+! 
)78; E 
.&!)CF 
7! 
,##"
!!  
G


"
& 
"&!# 
E#"D " 

)"
# #& 
)<
V V#!&'V&&!& 
<
#!&' 
)==>-B
9 /' 
) 97> HE D .EG=
)@,""
V 
)7
&

#
# 
+! 
)78;  E 
.&!)CF 
7! 
,##"
!!  
G


"
& 
"&!# 
E#"D " 

)"
# #& 
)<
V V#!&'V
 
<
#!&' 
)==>-=C!.8 
B,; , 
8C,HH-D=
)@,""
V 
)7
&

#
# 
+! 
)78 E 
.&!)C 
7! 
,##"
!!  
G


"
& 
"&!# 
E#"D " 

)"
# #& 
)<
V V#!&'V
" 
<
#!&' 
)==>- #FF/  3@>A,7!A)F!GI@  -
)@,""
V 
)7
&

#
# 
+! 
)78 E 
.&!)C 
7! 
,##"
!!  
G


"
& 
"&!# 
E#"D " 

)"
# #& 
)<
V V#!&'V! 
<
#!&' 
)==>-/G 3B  BI> JK8
 3I C 3@L9J
)@,""
V 
)7
&

#
#
+! 
)78 E 
.&!)C 
7! 
,##"
!!  
G


"
& 
"&!# 
E#"D " 

]omo pueden ver con el primer comando, yo tengo 5 volúmenes lógicos (LV),
" ,
! , , 
y &&!& , todos pertenecientes al mismo grupo de volúmenes (VG)
llamado #!&'.

Si se fijaron en las primeras líneas de cada volúmen lógico:

)"
# #& 
)<
V V#!&'V
" 
<
#!&' 

Se podrán dar cuenta de cuál es la nomenclatura que utiliza el sistema para encontrar
estas ³particiones´. LVM utiliza dos formas:

MÊ V V&-#&!V#&!)5"


Ê V V
V &-#&! #&!)5"

Por ejemplo, si quisiera montar la partición de gentoo en V! haría:

&!V V#!&'V
" V!

&!V V
V#!&' 
"

]omo decía, cualquiera de las dos es válida, yo me quedo con la primera porque me
parece más amigable.

m"
Bueno, ya para terminar, les comento algunos comandos que podían serles útiles. El
primero es # '! , que tal como su nombre lo indica, consiste en aumentar el tamaño
del LV en caso de que no hubiésemos llenado el VG. La sintaxis es como sigue:

# '! )M1/

0217&*#
&!
2&-#&!V#&!)5"

Al igual que en los casos anteriores, si no especificamos el tipo de unidad (K, para
kilobytes, M para megabytes, G para gigabytes, etc) se asumirá el por defecto que
"! $. Así por ejemplo si yo quisiera darle 10 gigas más al
volumen de gentoo ejecutaría:

# '! )M #!&'V!

Tengan en cuenta que esto sólo aumenta el tamaño del volumen lógico y  
"+ , por lo que acto seguido tendríamos que aumentar ese tamaño también.

Además de agregar y modificar, también podemos eliminar un volumen lógico, grupo


de volumen o disco físico se realiza con, #   ,   ,    más la
unidad, por ejemplo:

#  V V#!&'V&&!&

 

Luego de todo esto deberías ser capaz de crear un sistema con LVM, crear, extender y
borrar volúmenes. Tengo que hacerles notar un par de cosas importantes antes de
incursionar en este método:

MÊ #     '  @ @ @    @ j   (   @@


Ê #)* @    @    + @   #  @  @ @@ @ ,-.    /
   0 @1
!Ê .    $ @  @    @     @   @     @
@  @   -2   @   ( @      | @   
  @  @

Espero que les haya resultado interesante y que le encuentren algún uso. ]ualquier
comentario o feedback en los comentarios.