LVM

De jagfloriano.com
Ir a la navegaciónIr a la búsqueda

Logical Volume Manager

Introducción

De forma simplificada, LVM (Logical Volume Manager) es una capa de abstracción entre un dispositivo de almacenamiento físico (por ejemplo, un disco) y el sistema de ficheros.

La principal ventaja frente al particionado tradicional es la flexibilidad, ya que permite redimensionar, mover y reorganizar el almacenamiento de forma dinámica, incluso en caliente y sin afectar a las aplicaciones.

Para entender LVM basta con tener claros tres conceptos fundamentales:

  • Physical Volume (PV)
  • Volume Group (VG)
  • Logical Volume (LV)


Conceptos básicos de LVM

Physical Volume

Un PV es una fuente de almacenamiento, es decir, un dispositivo que proporciona espacio (disco completo o partición).

  • No se formatea.
  • Se entrega al LVM “en crudo”.
  • Una vez asignado a LVM, el dispositivo pasa a ser gestionado exclusivamente por este y no se manipula directamente.


Volume Group

Para poder utilizar el espacio de uno o varios PVs, estos deben pertenecer a un VG.

  • Un VG puede verse como un “disco lógico” formado por uno o más PVs.
  • Puede crecer en cualquier momento añadiendo nuevos PVs.
  • El crecimiento es transparente y no requiere reinstalaciones.


Logical Volume

Los LVs son el resultado final de LVM.

  • Sobre ellos se crean sistemas de ficheros, swap, etc.
  • Pueden crecer o reducirse siempre que exista espacio libre en el VG.
  • El sistema de ficheros ve el espacio como continuo, aunque esté distribuido físicamente en varios discos.

LVM permite incluso mover datos entre distintos PVs dentro de un mismo VG (en caliente y sin interrupciones).


Gestión de Physical Volume (PV)

Visualizar PV:


[root@JBoss0 bonzo]# pvs
  PV         VG     Fmt  Attr PSize   PFree
  /dev/sda2  centos lvm2 a--  <19,00g    0
[root@JBoss0 bonzo]# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               <19,00 GiB / not usable 3,00 MiB
  Allocatable           yes (but full)
  PE Size               4,00 MiB
  Total PE              4863
  Free PE               0
  Allocated PE          4863
  PV UUID               e2dQlV-R0uN-Z3Wd-sL5D-8bjR-KI0Q-BYEZCH


Crear un Volumen Físico (PV)


[root@JBoss0 bonzo]# pvcreate /dev/sda2
  Physical volume "/dev/sda2" successfully created


Eliminar un Volumen Físico (PV)


[root@JBoss0 bonzo]# pvremove /dev/sda2
  Labels on physical volume "/dev/sda2" successfully wiped.

Gestión de Volume Groups (VG)


Crear un Volume Group:

vgcreate Nombre_Grupo_Vol /dev/sdX /dev/sdY


Eliminar un Grupo de Volúmenes:

vgremove myvg1


Visualizar Grupos de Volúmenes:

[root@JBoss0 bonzo]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree
  centos   1   2   0 wz--n- <19,00g    0
[root@JBoss0 bonzo]# vgdisplay
  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <19,00 GiB
  PE Size               4,00 MiB
  Total PE              4863
  Alloc PE / Size       4863 / <19,00 GiB
  Free  PE / Size       0 / 0   
  VG UUID               vIUogQ-9YZs-shm0-DlJs-fpKK-wS6o-7UtsB4


Añadir un PV a un VG existente:

vgextend grupoVol /dev/vdb1

Gestión de Logical Volume (LV)


Visualizar Logical Volume:

[root@serveripa bonzo]# lvs
  LV   VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home myvg1  -wi-ao----  2.98g                                                    
  var  rhel   -wi-ao----  2.49g                                                    
  root rhel00 -wi-ao---- 12.99g                                                    
  swap vgswap -wi-ao----  2.00g
[root@serveripa bonzo]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/rhel00/root
  LV Name                root
  VG Name                rhel00
  LV UUID                LrjVhq-qX56-AAUw-xCYR-tUoz-Olpc-8NlQr9
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2019-08-08 12:18:13 -0700
  LV Status              available
  # open                 1
  LV Size                12.99 GiB
  Current LE             3325
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0


Visualizar si un LV está en mirror:

[root@serveripa ~]# lvs -a -o+devices vgsap_p9b|grep -i lv_datasource
  lv_usrbmpp9b            vgsap_p9b rwi-aor--- 205.00g                                    100.00           lv_datasource_rimage_0(0),lv_datasource_rimage_1(0)
  [lv_datasource_rimage_0] vgsap_p9b iwi-aor--- 205.00g                                                     /dev/mapper/mp-A-005(1)
  [lv_datasource_rimage_1] vgsap_p9b iwi-aor--- 205.00g                                                     /dev/mapper/mp-B-014(1)
  [lv_datasource_rmeta_0]  vgsap_p9b ewi-aor---   4.00m                                                     /dev/mapper/mp-A-005(0)
  [lv_datasource_rmeta_1]  vgsap_p9b ewi-aor---   4.00m                                                     /dev/mapper/mp-B-014(0)


Crear un Volumen Lógico:

lvcreate NombreVG -n lv01 -L 300M
:
lvcreate myvg1 -n home -L 3G


Extender un Volumen Lógico:

lvextend -L +500M /dev/mapper/myvg1-home


Usando un PV concreto:

lvextend -L +120M /dev/rhel/var /dev/sdc


Redimensionar el Sistema de Ficheros


Dependiendo del sistema de ficheros:

ext2 / ext3 / ext4:

resize2fs /dev/myvg1/home

xfs:

xfs_growfs /dev/rhel/var


Extender LV y FS en un solo comando:

lvextend -L +10G /dev/mapper/myvg1-home -r


Notas finales


- Mantener espacio libre en el VG maximiza la flexibilidad de LVM. - LVM permite crecimiento dinámico, migración de datos y alta disponibilidad. - Es una tecnología clave para entornos empresariales y certificaciones RHCSA/RHCE.