User Tools

Site Tools


doc:appunti:linux:sa:linux_lvm

This is an old revision of the document!


Logical Volume Manager (LVM)

Si installa il pacchetto Debian lvm2:

apt install lvm2

Con parted si crea la partizione e si imposta il flag lvm:

(parted) set 5 lvm on

Concetti

physical volumes Dispositivi a blocchi (block devices) che costituiscono la base per lo spazio di memorizzazione LVM. Possono essere semplici partizioni di un disco, volumi RAID, ecc.
volume groups Un volume group è l'unione di uno o più physical volumes, il cui spazio totale viene visto come entità unica di cui disporre.
logical volumes Lo spazio di un volume group viene allocato creando uno o più logical volumes al suo interno. Tale volume è un block device che può essere utilizzato ad esempio per contenere un filesystem.

physical volumes, volume groups e logical volumes

Crea due physical volumes:

pvcreate /dev/sda5
pvcreate /dev/sdb1

Crea un volume group (per il momento con un solo volume fisico) e lo attiva:

vgcreate data_vg /dev/sda5
vgchange --activate y data_vg 

Crea un logical volume che si estende per il 100% dello spazio libero:

lvcreate --extents +100%FREE data_vg --name data

Creazione di alcuni logical volume con dimensione specifica nel volume group vg_server1:

lvcreate --size 32G   --name lv_rootfs vg_server1
lvcreate --size 16G   --name lv_swap   vg_server1
lvcreate --size 100G  --name lv_var    vg_server1

Verifica configurazione

Verifica i volumi fisici, i gruppi di volumi e i volumi logici esistenti:

pvs
  PV         VG      Fmt  Attr PSize   PFree  
  /dev/sda5  data_vg lvm2 a--  918,47g      0 
  /dev/sdb1          lvm2 ---  931,51g 931,51g
vgs
  VG      #PV #LV #SN Attr   VSize   VFree  
  data_vg   1   0   0 wz--n- 918.47g 918.47g
lvs
  LV   VG      Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  data data_vg -wi-a----- 918.47g
/dev/data_vg/data -> ../dm-0

Modifica configurazione

Estende il volume group con un volume fisico aggiuntivo:

vgextend data_vg /dev/sdb1

Estende il volume logico data aggiungendo tutto lo spazio libero nel volume group data_vg. Il filesystem viene ridimensionato contestualmente (funziona anche con filesystem montato e in uso):

lvextend --extents +100%FREE --resizefs data_vg/data

Riduzione di un volume logico

Può capitare che di desideri aggiungere o aumentare lo spazio libero in un volume group, ad esempio per poter creare uno snapshot di un volume logico. In questo caso di decide di ridurre la dimensione di un volume logico esistente, effettuando contestualmente il resize del filesystem in esso contenuto:

lvreduce --resizefs --size -2G /dev/vg_inside/lv_home

Resize disco => LVM => filesystem

Vedere Live Resizing LVM on Linux.

Supponiamo che esista una partizione LVM che occupa un intero disco. La partizione potrebbe essere stata creata in precedenza con questi comandi, prima usando parted:

parted
(parted) mklabel gpt
(parted) mkpart primary 0% 100%
(parted) set 1 lvm on                                                     

e quindi usando i tool LVM:

~# pvcreate /dev/sdb1
~# vgcreate home_vg /dev/sdb1
~# vgchange --activate y home_vg
~# lvcreate --extents +100%FREE home_vg --name homefs
~# pvs
~# vgs
~# lvs

FIXME Il seguito è da verificare! Appunti per aumentare la dimensione di una partizione LVM dopo aver allargato il disco (virtuale, ovviamente!).

Con parted verificare che il disco sia davvero allargato e che abbia spazio libero contiguo alla partizione da allargare:

parted /dev/sdb
(parted) unit b
(parted) print free

Allargare la partizione per lo spazio libero risultante:

(parted) resizepart 1 75161927679B

Allargare il physical volume:

pvresize /dev/sdb1

Allargare il logical volume:

lvresize -l +100%FREE /dev/home_vg/homefs

Il percorso del volume logico si vede con lvs, ed è composto da /dev/[VolumeGroup]/[LogicalVolume].

Allaragare il filesystem:

resize2fs /dev/home_vg/homefs

Web References

doc/appunti/linux/sa/linux_lvm.1763639726.txt.gz · Last modified: by niccolo