Información aquí y aquí.

Definiciones

PV : Physical Volumes. Disco duro, particiones de disco duro, RAID o LUNs de una SAN son ejemplos de volúmenes físicos.

VG : Volume Groups. El conjunto de uno o varios PV.

LV : Logical Volumes. Son particiones lógicas dentro de un VG.

Instalación

Para instalar los programs necesarios ejecutamos lo siguiente.

$ sudo apt-get install lvm2 dmsetup mdadm reiserfsprogs xfsprogs

Formateando las unidades de disco

Damos formato a la unidad de disco con fdisk.

$ sudo fdisk /dev/sdb

Command (m for help): t
Selected partition 1
Hex code (type L to list all codes):8e
Changed type of partition 'Linux' to 'Linux LVM'.

Command (m for help): w

Preparamos la partición para LVM

$ sudo pvcreate /dev/sdb1

Si lo deseamos es posible deshacer el cambio mediante el comando.

$ sudo pvremove /dev/sdb1

Comandos para mostrar el estado de LVM

Un comando para mostrar el estado de las máquinas vituales.

$ sudo pvdisplay 
  "/dev/sdb1" is a new physical volume of "931.51 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name               
  PV Size               931.51 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               xxxxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx

Comando para ver el listado de todos los volúmenes virtuales:

$ sudo lvmdiskscan 
  /dev/sda1 [     555.88 GiB] 
  /dev/sdb1 [     931.51 GiB] LVM physical volume
  0 disks
  1 partition
  0 LVM physical volume whole disks
  1 LVM physical volume

Creación y listado de grupos

Creamos el grupo llamado servidor_de_archivos.

$ sudo vgcreate servidor_de_archivos /dev/sdb1

Listado de configuración VG (Volume Groups)

$ sudo vgdisplay 
  --- Volume group ---
  VG Name               servidor_de_archivos
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               931.51 GiB
  PE Size               4.00 MiB
  Total PE              238466
  Alloc PE / Size       0 / 0   
  Free  PE / Size       238466 / 931.51 GiB
  VG UUID               xxxxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx

Otro comando similar con salida más breve es este.

$ sudo vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "servidor_de_archivos" using metadata type lvm2

Podemos cambiar el nombre del grupo servidor_de_archivos

$ sudo vgrename servidor_de_archivos archivador

Es posible borrar el grupo mediante el comando siguiente.

$ sudo vgremove data

Creación y listado de volúmenes

$ sudo lvcreate --name data --size 35G archivador

Mostramos el nuevo volúmen con este comando.

$ sudo lvdisplay
  --- Logical volume ---
  LV Path                /dev/archivador/data
  LV Name                data
  VG Name                archivador
  LV UUID                xxxxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx
  LV Write Access        read/write
  LV Creation host, time AMD-II, 2016-11-06 00:19:27 +0000
  LV Status              available
  # open                 0
  LV Size                35.00 GiB
  Current LE             8960
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

Trambién puede ser útil lvscan.

$ sudo lvscan

Podemos cambiar el nómbre a los volúmenes de un grupo mediante el comando.

$ lvrename archivador data datos

Podremos eliminar un volúmen mediante este comando.

$ lvremove /dev/archivador/datos

Podemos aumentar el tamaño de un volúmen.

$ sudo lvextend -L40G /dev/archivador/data
  Size of logical volume archivador/data changed from 35.00 GiB (8960 extents) to 40.00 GiB (10240 extents).
  Logical volume data successfully resized

O reducirlo.

$ sudo lvreduce -L35G /dev/archivador/data
  WARNING: Reducing active logical volume to 35.00 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce data? [y/n]: y
  Size of logical volume archivador/data changed from 40.00 GiB (10240 extents) to 35.00 GiB (8960 extents).
  Logical volume data successfully resized

Formateando los volúmenes

Damos formato Ext4 al volúmen /dev/archivador/data.

$ sudo mkfs.ext4 /dev/archivador/data

Montando los volúmenes en ficheros

Creamos un directorio donde montar el volúmen.

$ sudo mkdir /media/data

Podemos montar ahora el volúmen.

$ sudo mount /dev/archivador/data /media/data

Si queremos que las unidades se monten en el arranque debemos editar /etc/fstab añadiendo lo que sigue al final del archivo.

/dev/archivador/data    /media/data      ext4   rw,noatime    0 0

Extra: Swap en un lvm

Creamos el volúmen swap.

lvcreate --name swap --size 8G archivador

Le damos formato.

mkswap /dev/archivador/swap 
Setting up swapspace version 1, size = 8388604 KiB
no label, UUID=e16c3452-5bbf-4dde-a5a1-8f03ebacb5aa

Añadimos los siguiente a /etc/fstab.

/dev/mapper/archivador-swap none            swap    sw              0       0

Y reiniciamos o swapon -va.

Para comprobar si está funcionando correctamente ejecutamos lo siguiente.

cat /proc/swaps
free -h