Logical Volume Management 2 (LVM2)

Las herramientas de LVM2 de Linux permiten un manejo más avanzado del los volúmenes de datos (filesystems, discos, etc.) respecto al común de Linux. LVM2 se podría dividir en tres partes, la primera o la más baja serían los Phisical Volumes, que como su nombre lo indica son los volúmenes físicos sobre los cuales luego se crearán los Volume Groups. Los Volume Groups son la capa intermedia que se monta sobre los Phisical Volumes, y permiten combinar las capacidades de los estos en un Volume Group del tamaño de la suma de las capacidad de los Phisical Volumes que lo integran, por ejemplo, si tenemos dos Phisical Volumes de 4Gb cada uno integrando un Volume Group, dicho Volume Group sera de aproximadamente 8Gb. Por último y en la capa superior tenemos a los Logical Volumes que son subdivisiones de los Volume Groups las cuales utilizaremos como si fuesen particiones de disco por ejemplo. Las operaciones básicas que podremos realizar sobre los Logical Voumes son

Creación de volúmenes

Eliminación de volúmenes

Ampliación de volúmenes

Reducción de volúmenes

Concatenación de volúmenes

Re-dimensionado de grupos lógicos

Re-dimensionado de volúmenes lógicos

Instantáneas de lectura y escritura)

RAID 0 de volúmenes lógicos

Snapshots

Que es LVM ?

El LVM es un módulo que se le agrega al núcleo Linux y genera una abstracción entre los discos físicos y los dispositivos para accederlos. Con la ayuda de herramientas de administración, el administrador puede acceder a los beneficios de utilizar LVM. Básicamente lo que se logra es tener un nuevo dispositivo que apunta no a un disco o una partición, sino a un grupo de discos y particiones como un todo (manejar muchos espacios de disco como si fuera un único disco).

Funcionamiento de LVM

Conceptos que se utilizan :

Volumen Físico

Los Volúmenes Físicos (PV) son los discos o particiones de un disco

Grupo de Volumen

Grupo de Volumen (GV) es un área que cuelga de los PV y se agrupan los LV

Volumen Lógico

Los Volúmenes Lógicos (LV) son dispositivos donde se pueden crear sistemas de archivos

Niveles de un LVM

Un LVM se divide en 5 niveles, estos son:

1.Volúmenes Físicos o Physical Volumes

Volúmenes Lógicos o Logical Volumes

Grupos de volúmenes o Volume Groups

Extensión Lógica o Logical Extents

Extensión Física o Physical Extents

Volúmenes Físicos (Physical Volumes)

Son los discos duros físicos o particiones de un disco duro

Volúmenes Lógicos (Logical Volumes)

Es el equivalente a una partición de un disco duro, por lo que puede contener un sistema de archivos como por ejemplo /home.

Grupos de volúmenes (Volume Groups)

Es la parte que engloba los volúmenes lógicos (Logical Volumes) y nuestros volúmenes físicos (Physical Volumes), es decir, es una especie de contenedor donde se sitúan los volúmenes lógicos (Logical Volumes) y los volúmenes físicos (Physical Volumes).

Extensión Lógica (Logical Extents)

Cada volumen físico esta divido en pequeños trozo de datos llamados extensión lógica(logical extents).

Extensión Física (Physical Extents)

Cada volumen físico(LV) esta divido en pequeños trozos datos que se llaman extensión física(physical extents), que es del mismo tamaño que una extensión lógica(LE).

Creación de Phisical Volumes

Al crear un Phisical Volume lo que estamos haciendo es inicializarlo para poder utilizarlo luego con LVM2 y poder crear un Volume Group, los Phisical Volume pueden ser creados a partir de discos completos, particiones de discos, meta devices y loop devices, para crear un Phisical Volume utilizaremos

# pvcreate [dispositivo]

por ejemplo

# pvcreate /dev/md2

Creación de Volume Groups

Para crear un Volume Group necesitaremos dos cosas, primero, al menos un Phisical Volume, y un nombre para el Volume Group, la sintaxis del comando para crear Volume Group es

# vgcreate [nombre_del_volume_group] [Phisical Volume]

por ejemplo

# vgcreate vg-storage1 /dev/vg-storage1

Creación de Logical Volumes

Los Logical Volume son la capa superior de LVM2, en ellos crearemos los filesystems o cualquier cosa para la que necesitemos un block device. La sintaxis mas frecuente del comando es

# lvcreate -L [tamaño] -l [nombre] [nombre_del_volume_group]

se hizo: para el disco

# lvcreate -L 5G -nlv-wiki-root vg-storage1

para swap

#lvcreate -L 512M -nlv-wiki-swap vg-storage1

# lvcreate -L 5G -nlv-nagios-root vg-storage1

para swap

# lvcreate -L 512M -nlv-wnagios-swap vg-storage1

el comando lvcreate acepta como unidades de tamaño K para kilobyte, M para megabyte, G para gigabyte y T para terabyte, tanto en mayúsculas como en minúsculas.

Salida de los comandos pvscan, vgscan y lvscan.

xen01:~# lvscan
ACTIVE '/dev/vg-storage1/lv-swap' [2.00 GB] inherit
ACTIVE '/dev/vg-storage1/files-nagios' [40.00 GB] inherit
ACTIVE '/dev/vg-storage1/lv-nagios-root' [8.00 GB] inherit
ACTIVE '/dev/vg-storage1/lv-nagios-swap' [1.00 GB] inherit
ACTIVE '/dev/vg-storage1/lv-wiki-root' [5.00 GB] inherit
ACTIVE '/dev/vg-storage1/lv-wiki-swap' [512.00 MB] inherit
xen01:~#

xen01:~# vgscan
Reading all physical volumes. This may take a while...
Found volume group "vg-storage1" using metadata type lvm2
xen01:~#

xen01:~# pvscan
PV /dev/md2 VG vg-storage1 lvm2 [283.93 GB / 227.43 GB free]
Total: 1 [283.93 GB] / in use: 1 [283.93 GB] / in no VG: 0 [0 ]
xen01:~#

Con vgdisplay obtenemos informacion del Volume Group

xen01:~# vgdisplay
--- Volume group ---
VG Name vg-storage1
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 8
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 6
Open LV 6
Max PV 0
Cur PV 1
Act PV 1
VG Size 283.93 GB
PE Size 4.00 MB
Total PE 72686
Alloc PE / Size 14464 / 56.50 GB
Free PE / Size 58222 / 227.43 GB
VG UUID gq1nG2-ZqGu-P7sP-M7Yl-vhGT-nLfj-2yZRPp
xen01:~#

Notas

Otros Comandos de LVM

Comando	Uso
Comandos de volúmenes físicos
pvchange	Cambia los atributos de un volumen físico
pvcreate	Crea un volumen físico
pvdata	Muestra información de depuración sobre un volumen físico
pvdisplay	Muestra información sobre un volumen físico
pvmove Mueve extensiones físicas de un volumen físico a otro
pvscan Localiza y enumera todos los volúmenes físicos
Comandos de grupos volumen
vgcfgbackup	Hace una copia del área del descriptor de grupo volumen
vgcfgrestore	Recupera el área del descriptor de grupo volumen al disco
vgchange	Cambia los atributos de un grupo volumen
vgck	Comprueba la consistencia del área del descriptor de grupo volumen
vgcreate	Crea un grupo volumen a partir de volúmenes físicos
vgdisplay	Muestra los atributos de un grupo volumen
vgexport	Exporta un grupo volumen del sistema
vgextend	Añade volúmenes físicos a un grupo volumen
vgimport	Importa un grupo volumen al sistema
vgmerge	Combina dos grupos volumen
vgmknodes	Combina un directorio y los archivos especiales de un grupo volumen
vgreduce	Elimina volúmenes físicos de un grupo volumen
vgremove	Elimina un grupo volumen
vgrename	Renombra un grupo volumen
vgscan	Localiza y enumera todos los grupos volumen del sistema
vgsplit	Divide un grupo volumen
Comandos de volúmenes lógicos
lvchange	Cambia los atributos de un volumen lógico
lvcreate	Crea un volumen lógico
lvdisplay	Muestra los atributos de un volumen lógico
lvextend	Incrementa el tamaño de un volumen lógico
lvreduce	Reduce el tamaño de un volumen lógico
lvremove	Elimina un volumen lógico
lvrename	Renombra un volumen lógico
lvscan	Localiza y enumera todos los volúmenes lógicos, creando /etc/lvmtab y /etc/lvmtab.d/*
Comandos del Administrador de Volúmenes Lógicos (LVM)
lvmchange
lvmdiskscan	Localiza y enumera todos los discos disponibles, los dispositivos múltiples y las particiones
lvmsadc	Recoge información sobre la actividad de LVM
lvmsar	Muestra información sobre la actividad de LVM

Como crear un LV usando todo el espacio disponible en el VG

lvcreate -n NAME -l 100%FREE vg0

Ver los dispositivos dm- asociados a un LV

lvdisplay|awk '/LV Name/{n=$3} /Block device/{d=$3; sub(".*:","dm-",d); print d,n;}'

http://www.linuxquestions.org/questions/linux-newbie-8/dm0-in-iostat-652771/