====== 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
===== 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
===== 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
===== Resize disco => LVM => filesystem =====
Vedere **[[http://sirlagz.net/2016/01/20/live-resizing-lvm-on-linux/|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 =====
* **[[https://wiki.archlinux.org/title/LVM|ArchWiki LVM]]**