This is an old revision of the document!
Table of Contents
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
…
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
