Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

LVM: comandi avanzati

I principali comandi CLI avanzati per usare Logical Volume Manager (LVM) su Linux.
I principali comandi CLI avanzati per usare Logical Volume Manager (LVM) su Linux.
Link copiato negli appunti

Esploreremo ora una serie di comandi utili per conoscere con le potenzialità operative che rendono realmente conveniente l’adozione di LVM nella gestione del nostro spazio disco. I comandi di base sono stati illustrati al precedente capitolo di questa guida.

Aggiungere un disco LVM

Supponiamo di aver esaurito tutta la capienza dello storage a nostra disposizione su LVM. Tuttavia, dal punto di vista hardware, è ancora possibile dotare di hard disk aggiuntivi il sistema in cui i nostri dati sono ospitati. Dopo aver installato un hard disk, aver eliminato ogni partizione e aver battezzato il nuovo disco come gestito da LVM secondo la tecniche illustrate nel capitolo precedente questi comparirà fra i nuovi physical volume (PV) elencati da pvdisplay. Adesso non dovremo fare altro che estendere il Volume Group (VG) con cui vogliamo utilizzarlo inglobando il nuovo PV in esso mediante l’uso di vgextend. Gli passeremo come primo argomento il nome del VG e come secondo il nome del PV. Poi estenderemo il Logical Volume (LV) e il filesystem in esso contenuto adoperando le conoscenze già in nostro possesso.

fprincipe@html3:~$ sudo pvdisplay
  --- Physical volume ---
  PV Name               /dev/sdb
  VG Name               test2
[...]
   
  "/dev/sdc" is a new physical volume of "500.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdc
  VG Name               
  PV Size               500.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               0NQGju-TpRG-teG9-8lfY-DCtJ-xgeS-Lhx0UN
fprincipe@html3:~$ sudo vgextend test2 /dev/sdc
  Volume group "test2" successfully extended
fprincipe@html3:~$ df -h
Filesystem              Size  Used Avail Use% Mounted on
[...]
/dev/mapper/test2-lv03  492G   73M  467G   1% /home/fprincipe/mountpoint
fprincipe@html3:~$ sudo lvextend -l +10%FREE test2/lv03
Size of logical volume test2/lv03 changed from 

Liberare Spazio in un Volume Group

Ovviamente esiste anche il comando per diminuire la grandezza di un LV. Il comando in questione è lvresize. Oltre alle opzioni -L e -l di funzionamento simile a lvextend, lvresize accetta valori negativi. A esempio il comando sudo lvresize -L -3g test2/lv04 ridurrà il Logical Volume lv04 di 3 Gb.

fprincipe@html3:~$ sudo lvs
  LV   VG    Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv03 test2 -wi-ao---- 

Un altro metodo per ottimizzare la capienza di un Volume Group è quello di eliminare completamente un Logical Volume in esso contenuto. Il comando in questione è lvremove seguito come argomento dal LV che andrà eliminato.

fprincipe@html3:~$ sudo lvremove test2/lv04
Do you really want to remove and DISCARD active logical volume test2/lv04? [y/n]: y
  Logical volume "lv04" successfully removed
fprincipe@html3:~$ sudo lvs
  LV   VG    Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv03 test2 -wi-ao---- 

Spostare Dati

Anche per lo spostamento dei dati LVM esistono potenti strumenti da utilizzare. Lanciando il comando pvmove seguito da due PV riverseremo tutto il contenuto del primo nel secondo. Potremo limitare la migrazione anche a un specifico LV utilizzando l’opzione -n e facendo seguire a esso il nome di un LV. La procedura può risultare molto lunga quindi è possibile collocarla in background adoperando l’opzione -b.

fprincipe@html3:~$ sudo pvmove /dev/sdc -n lv03 /dev/sdd
  /dev/sdc: Moved: 0.25%
[...]
  /dev/sdc: Moved: 100.00%

Creare Snapshot

Di un LV è altresì possibile creare uno snapshot sempre utilizzando lvcreate ma con opzione -s, otterremo un vero e proprio nuovo LV che di fatto sarà un elemento differenziale rispetto allo LV da cui è stato creato. Occorrerà assegnare a esso uno “spazio” che all’occorrenza potremo anche espandere come abbiamo imparato a fare nel precedente capitolo. Questo spazio servirà per conservare le informazioni necessarie a risalire allo stato esatto del LV di origine nel momento in cui abbiamo creato lo snapshot. Le informazioni necessarie per far ciò aumenteranno all’aumentare delle differenze introdotte fra il LV di origine e lo snapshot man mano che modificheremo il primo. Proprio per questo all'instante iniziale in pratica queste saranno nulle. All’esaurirsi dello spazio lo snapshot sarà disallineato e quindi diventerà inutilizzabile. Utilizzando lvconvert −−merge e il nome di uno shapshot attivo potremo invertire lo snapshot con l’orgine. Lo snapshot non avrà più alcuna utilità quindi scomparirà. Come è possibile constatare nell'esempio a seguire, dopo aver usato lvconvert e aver effettuato di nuovo il montaggio, non sarà più presente la directory ~/mountpoint/appenacreata semplicemente perché nel momento in cui era stato generato lo snapshot questa non era ancora presente nell'origine.

fprincipe@html3:~$ sudo lvcreate -s -n snap2 -L 100g test2/lv03 
  Using default stripesize 64.00 KiB.
  Logical volume "snap2" created.
fprincipe@html3:~$ sudo lvs
  LV    VG    Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv03  test2 owi-a-s--- 

fprincipe@html3:~/mountpoint$ ls
lost+found
fprincipe@html3:~/mountpoint$ sudo lvs
  LV    VG    Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv03  test2 owi-aos--- 

RAID

Attraverso LVM è possibile emulare il funzionamento delle tecnologie RAID.
Per far ciò sarà semplicemente necessario utilizzare il comando lvcreate con l’opzione −−type passando a questa il nome del type desiderato. Ecco una tabella che riassume i tipi principali e il loro funzionamento.

linear I dati sono accodati uno di seguito all’altro in modo lineare. E’ la tipologia di default.
raid1 Crea copie dei dati, di default una, specificando l’argomento -m è possibile definire il numero di copie oltre la prima da creare (es.: con -m 2 le repliche totali saranno 3).
raid5 Emula un volume raid5. Sono necessari almeno tre PV.
raid6 Genera un volume raid6. Sono necessari almeno quattro PV.
stripped Al fine di incrementare le performance vengono creati dei segmenti di dati gestiti in modo simile a un raid0. E’ necessario utilizzare almeno due PV e l’opzione -i per specificare il numero di stripes da utilizzare.

Ti consigliamo anche