Você está na página 1de 13

Qu es LVM?

LVM es el acrnimo de Logical Volumen Managent que en computacin


hace referencia a una forma de asignar espacio de forma ms 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 ms grandes que los
administradores pueden redimensionar o mover, potencialmente sin ni
siquiera interrumpir su uso. Tambin permite la administracin de
volmenes definidos por grupos de usuarios, otorgndole al
administrador del sistema lidiar con grupos de volmenes con nombres
ms sensibles como desarrollo o sistema en vez de nombres de
discos fsicos que poco nos dicen como sda y sdb.

Ventajas.
LVM le da ms flexibilidad que la simple particin de un disco duro para:

Poder utilizar cualquier nmero de discos como un gran disco.


Tener volmenes lgicos estirados sobre varios discos.
Crear pequeos volmenes lgicos y cambiar su tamao
dinmicamente, cuando se llenen.
Cambiar el tamao de los volmenes lgicos sin importar su
orden en el disco. No depende de la posicin del volumen lgico
dentro del grupo de volmenes, ni hay necesidad de asegurar
el espacio disponible circundante.
Cambiar/crear/borrar el tamao de los volmenes lgicos y
fsicos en lnea. Los sistemas de archivos en ellos todava
tendrn que ser redimensionados, pero algunos (como ext4)
apoyan el cambio de tamao en lnea.
Migracin en lnea/vivo de volumenes lgicos, siendo utilizado
por los servicios para diferentes discos sin tener que reiniciar
los servicios.
Las instantneas que permiten hacer copias de respaldo del
sistema de archivos, mientras se mantiene el tiempo de
inactividad del servicio a un mnimo.
Soporte para albergar distintos mapeadores de dispositivos,
incluido el cifrado del sistema de archivos transparente y
almacenamiento en cach de los datos de uso frecuente.

Desventaja

Los pasos adicionales en la configuracin del sistema, que lo


hace ms complicado.

Bloques para construir LVM


Logical Volume Management (LVM) hace uso de la funcin devicemapper del krnel de lnux para proporcionar un sistema de
particiones independientes de la estructura subyacente del disco. Con
LVM es posible crear un espacio de almacenamiento abstracto as
como distintas particiones virtuales, por lo que es ms fcil de
agrandar/encoger particiones (siempre sujeto a posibles limitaciones
de su sistema de archivos).
Las particiones virtuales permiten aadir/eliminar particiones sin
tener que preocuparse acerca de si se tiene suficiente espacio
contiguo en un disco concreto, ni quedar atrapado en el fdisking de
un disco en uso (y preguntndose si el krnel est utilizando una
tabla de particiones vieja o nueva), ni tener que mover otras
particiones en el camino. Esto es un asunto que afecta estrictamente
a la facilidad de gestin: no proporciona ninguna seguridad. Sin
embargo, se acomoda muy bien con las otras dos tecnologas que
estamos usando.
Los bloques bsicos que construyen LVM son:

Physical volume/Volmenes fsicos (PV): Son las particiones en


el disco duro (o, incluso, el propio disco o un archivo loopback)
donde se tiene un grupo de volmenes. Posee una cabecera
especial y est dividida en extensiones fsicas. Piense en los
volmenes fsicos como grandes bloques de construccin
utilizados para construir su disco duro.

Volume group/Grupo de volmenes (VG): Los grupos de


volmenes fsicos son usados como volmenes de
almacenamiento (como si fueran un solo disco). Contienen
volmenes lgicos. Piense en los grupos de volmenes como
discos duros.

Logical volume/Volmenes lgicos (LV): Es una particin


virtual/lgica que reside en un grupo de volmenes y est
compuesta por extensiones fsicas. Piense en los volmenes
lgicos como particiones normales.

Physical extent/Extensiones fsicas (PE): Es una pequea parte


de un volumen fsico (por defecto, 4MB) que puede ser
asignada a un volumen lgico. Piense en las extensiones fsicas
como partes de los discos que pueden ser asignadas a
cualquier particin.

Ejemplos

Varios discos duros creando un lvm

Un disco duro divido en 3 LVM.

Instalando LVM
En forma general los pasos para crear un LVM son los siguientes pasos:

Cree los volmenes fsicos (PV). Si se tiene un disco lo mejor es


simplemente crear un volumen fsico en una particin grande. Si tiene
varios discos se pueden crear particiones en cada uno de ellos y crear un
volumen fsico en cada particin.

Cree el grupo de volmenes (VG) y asocie todos los volmenes fsicos


(PV) al mismo.
Cree volmenes lgicos (LV) dentro de su grupo de volmenes (VG)
Crear el sistema de archivos y montar los volmenes lgicos

Advertencia: /boot no puede residir en LVM cuando se utiliza GRUB LEGACY


ya que no soporta LVM. Los usuarios de GRUB no tienen esta limitacin. Si
necesita utilizar GRUB Legacy, debe crear una particin /boot separada y
peticionarla directamente.

Crear volmenes fsicos


Para listar todos los dispositivos capaces de ser utilizados como un volumen fsico:
# lvmdiskscan

Cree un volumen fsico en ellos:

# pvcreate DISPOSITIVO

Esta orden crea una cabecera en cada dispositivo para que se pueda
utilizar para LVM. Tal como se define en LVM #Bloques para construir
LVM, el DISPOSITIVO puede ser un disco (por ejemplo, /dev/sda), una
particin (por ejemplo, /dev/sda2) o un dispositivo loop back.
Por ejemplo:
# pvcreate /dev/sda2
Puede hacer un seguimiento de los volmenes fsicos creados con:
# pvdisplay

Crear grupo de volmenes


El siguiente paso, ser crear un grupo de volmenes sobre el volumen
fsico:
Lo primero que se necesita es crear un grupo de volmenes sobre uno
de los volmenes fsicos:
# vgcreate <grupo_de_volmenes> <volumen_fsico>
Por ejemplo:
# vgcreate VolGroup00 /dev/sda2
A continuacin, puede aadir a dicho grupo de volmenes tantos
volmenes fsicos como desee tener en el mismo (a modo de una sola
unidad):
# vgextend <grupo_de_volmenes> <volumen_fsico>
# vgextend <grupo_de_volmenes> <otro_volumen_fsico>
Por ejemplo:
# vgextend VolGroup00 /dev/sdb1
# vgextend VolGroup00 /dev/sdc
Puede hacer un seguimiento de cmo su grupo de volmenes ha crecido
con:

# vgdisplay

Crear volmenes lgicos


Necesitaremos crear volmenes lgicos en este grupo de volmenes.
Para ello debe utilizar la siguiente orden, proporcionndole como
parmetros, su tamao (-L), el grupo de volmenes al que pertenecer,
y el nombre (-n) del nuevo volumen lgico:
# lvcreate -L <tamao> <grupo_de_volmenes> -n <volumen_lgico>
Por ejemplo:
# lvcreate -L 10G VolGroup00 -n lvolhome
Luego, podr acceder al nuevo volumen lgico creado con
/dev/mapper/Volgroup00-lvolhome o /dev/VolGroup00/lvolhome. Igual
que sucede con los grupos de volmenes, puede ponerle el nombre que
desee al volumen lgico cuando lo crea.
Tambin puede especificar uno o ms volmenes fsicos para limitar
donde quiere que LVM asigne los datos. Por ejemplo, es posible que
desee crear un volumen lgico para el sistema de archivos raz en SSD
(si es pequeo), y el volumen de su home en una unidad mecnica ms
grande y lenta. Tan solo tiene que aadir el dispositivo del volumen fsico
a la lnea de rdenes, por ejemplo:
# lvcreate -L 10G VolGroup00 -n lvolhome /dev/sdc1
Si desea ocupar todo el espacio libre que queda del grupo de
volmenes, utilice la siguiente orden:
# lvcreate -l +100%FREE <grupo_de_volmenes> -n <volumen_lgico>
Puede hacer un seguimiento de los volmenes lgicos creados con:
# lvdisplay

Crear el sistema de archivos y montar los volmenes


lgicos
Sus volmenes lgicos deberian encontrarse en /dev/mapper/ y
/dev/NombredelGrupodedeVolmenes. De no encontrarse, use la
siguiente orden para cargar el modulo que crea nodos de dispositivos y
hacer que los grupos de volmenes estn disponibles:
# modprobe dm-mod
# vgscan
# vgchange -ay
Ahora puede crear el sistema de archivos en los volmenes lgicos, y
montarlos como particiones normales:
# mkfs.<tipo_sistema_archivos>
<volumen_lgico>

/dev/mapper/<grupo_volmenes>-

#
mount
/dev/mapper/<grupo_volmenes>-<volumen_lgico>
/<punto_montaje>
Por ejemplo:
# mkfs.ext4 /dev/mapper/VolGroup00-lvolhome
# mount /dev/mapper/VolGroup00-lvolhome /home

Operaciones sobre los volmenes


Opciones avanzadas
Si necesita monitorizacin (necesario para snapshots instantneas)
puede activar lvmetad. Para ello establezca use_lvmetad = 1 en
/etc/lvm/lvm.conf. Este es el valor predeterminado por ahora.
Puede restringir los volmenes que se activan de forma automtica
mediante el establecimiento de la variable auto_activation_volume_list
en el archivo /etc/lvm/lvm.conf. En caso de duda, deje esta opcin
comentada.

Redimensionar los volmenes


Volmenes fsicos
Despus de aumentar o antes de reducir el tamao de un dispositivo
que tiene sobre l un volumen fsico, necesita aumentar o reducir el
tamao del volumen fsico mediante pvresize.
Agrandar
Para ampliar el volumen fsico existente sobre el dispositivo /dev/sda1,
despus de aumentar dicha particin, ejecute:
# pvresize /dev/sda1
Esto detectar automticamente el nuevo tamao del dispositivo y
extender el volumen fsico a su mximo.
Reducir
Para reducir un volumen fsico antes de reducir el dispositivo subyacente, agregue el
parmetro --setphysicalvolumesize tamao a la orden, por ejemplo:
# pvresize --setphysicalvolumesize 40G /dev/sda1

La orden anterior puede arrojar el siguiente error:


/dev/sda1: cannot resize to 25599 extents as later ones are allocated.
0 physical volume(s) resized / 1 physical volume(s) not resized

De hecho pvresize se negar a reducir un volumen fsico si tiene


asignadas extensiones adyacentes a lo que sera su nuevo final. Se tiene
que ejecutar pvmove de antemano para reubicar estas extensiones en el
grupo de volmenes a otro lugar, si no hay suficiente espacio libre.
Mover extensiones fsicas
Antes de mover extensiones libres al final del volumen, se debe ejecutar
# pvdisplay -v -m para ver los segmentos fsicos. En el siguiente
ejemplo, hay un volumen fsico sobre /dev/sdd1, un grupo de volumen
vg1 y un volumen lgico backup.

Se puede observar que el espacio LIBRE se intercala por todo el


volumen. Para reducir el tamao del volumen fsico, primero tenemos
que mover todos los segmentos utilizados al comienzo.
Aqu, el primer segmento libre es desde 0 a 153.600, lo cual nos deja
con 153.601 extensiones libres. Ahora podemos mover este nmero de
segmentos desde la ltima extensin fsica de la primera. La orden sera
as:

Redimensionar el Volumen Fsico


Una vez que todos sus segmentos fsicos libres estn en la ltima extensin fsica, ejecute #
vgdisplay y vea su extensin fsica libre.
Entonces, podr ejecutar de nuevo la orden:
# pvresize --setphysicalvolumesize tamao VolumenFsico
# pvs

PV
/dev/sdd1

VG
vg1

FMT
lvm2

Attr
a--

pSize PFree
1T
500gpv

#pvresize /dev/sdd1

Redimensionar la particin
Volmenes lgicos
Lvresise proporciona ms o menos las mismas opciones que las rdenes
especializadas lvextend y lvreduce al mismo tiempo que permite hacer
ambos tipos de operacin. A Pesaar de esto, todas las utilidades ofrecen
una opcin r, --resizefs que permite cambiar el tamao del sistema de
archivos junto con el volumen lgico mediante fsadm(opcin
) Soporta ext2, ext3, ext4, reiserFS y XFS. Por lo tanto, es ms fcil
utilizar lvresize para ambas operaciones y utilizar resizefs para
simplificar un poco las cosas excepto si tiene necesidades especficas o
desea tener un control total sobre el proceso.

Agrandando o Reduciendo con lvresize


Si bien la ampliacin de un sistema de archivos puede, a menudo,
hacerse en lnea (es decir mientras el mismo est montado), incluso
para la particin raz, en cambio, la reduccin necesitar, casi siempre,
desmontar primero el sistema de archivos con el fin de evitar prdida de
datos. Asegrese de que su sistema de archivos apoya lo que est
tratando de hacer.
Ampliar 2GB el volumen lgico nv1 dentro del grupo de volmenes vg1
sin tocar su sistema de archivos:
# lvresize -L +2G vg1/lv1
Reducir 500MB el volumen lgico vg1/nv1 sin cambiar el tamao de su
sistema de archivos (asegrese de que este ltimo est ya reducido en
este caso):
# lvresize -L -500M vg1/lv1
Ajustar vg1/lv1 a 15GB y redimensionar su sistema de archivos todo a la
vez:

# lvresize -L 15G -r vg1/lv1


Si desea ocupar todo el espacio libre de un grupo de volmenes, utilice
la siguiente orden:
# lvresize -l +100%FREE grupovolumen/volumenlgico

Redimensionar por separado el sistema de archivos


Si no utiliza la opcin -r, --resizefs para lv{resize,extend,reduce} o utiliza
un sistema de archivos no soportado por fsadm(8) (Btrfs, ZFS...), es
necesario cambiar el tamao del sistema de archivos manualmente
antes de encoger el volumen lgico o despus de agrandar el mismo
Por ejemplo, con los sistemas de archivos ext2/ext3/ext4:
# resize2fs grupovolumenes/volumenfsico
se ampliar el sistema de archivos al tamao mximo del volumen
lgico subyacente, mientras que con:
# resize2fs -M grupovolumenes/volumenfsico
se contraer a su tamao mnimo. Para redimensionar a un tamao
determinado, utilice:
# resize2fs grupovolumenes/volumenfsico NuevoTamao

Eliminar volmenes lgicos


En primer lugar, averige el nombre del volumen lgico que desea
eliminar. Se puede obtener una lista de todos los volmenes lgicos
instalados en el sistema con:
# lvs
A continuacin, busque el punto de montaje del volumen lgico elegido,
con:
$ lsblk

Ahora, desmonte el sistema de archivos del volumen lgico:


# umount /<punto_montaje>
Por ltimo, elimine el volumen lgico:
# lvremove <grupo_volmenes>/<volumen_lgico>
Por ejemplo:
# lvremove VolGroup00/lvolhome
Confirme la operacin escribiendo y.
No se olvide de actualizar el archivo /etc/fstab.
Se puede verificar la eliminacin del volumen lgico escribiendo lvs.

Agregar un volumen fsico al grupo de volmenes


En primer lugar, cree un nuevo volumen fsico en el dispositivo de
bloque que desea usar, y luego intgrelo en su grupo de volmenes:
# pvcreate /dev/sdb1
# vgextend VolGroup00 /dev/sdb1
Por supuesto, esto aumentar el nmero total de extensiones fsicas en
el grupo de volmenes, que podr asignar a los volmenes lgicos como
mejor le parezca.
Eliminar una particin de un grupo de volmenes
Si ha creado un volumen lgico en la particin, elimnelo primero.
Todos los datos de la particin deben ser movidos a otra particin.
Afortunadamente, LVM lo hace sencillo:

# pvmove /dev/sdb1
Si quiere tener los datos en un volumen fisico especfico, agrguelo
como segundo argumento a pvmove:
# pvmove /dev/sdb1 /dev/sdf1
Luego, eliminamos los volmenes fsicos del grupo de volmenes:
# vgreduce myVg /dev/sdb1
O, eliminamos todos los volmenes vacos:
# vgreduce --all vg0
Por ltimo, si quiere usar la particin para algo ms, y quiere evitar a
LVM, piense que esa particin es un volumen fisico ms:
# pvremove /dev/sdb1
Desactivar un grupo de volmenes
Basta con invocar la orden:
# vgchange -a <grupo_volmenes>
Esto desactivar el grupo de volmenes y le permitir desmontar el
contenedor donde est almacenado.