LVM (Logical Volume Manager)

          Deseori studentii chiar din prima lectie de LPI, ma intreaba ce inseamna LVM 🙂 Si ca sa nu fac copy/paste de pe wiki incerc sa explic in 2 cuvinte sa fie pe intelesul tuturor:

LVM (Logical Volume Manager) – Este un nivel de abstractizare, care ne permite sa folosim 1 sau mai multe discuri rigide (S/HDD) ca o singura entitate, dupa care aceasta entintate o putem partitiona dupa nevoi.

Nota!: Este importat de memorat, ca partitia /boot/ nu poate fi utilizata ca partitie LVM deoarece GRUB nu "intelege" partitiile LVM si respectiv nu poate citi fisierele de configurare si imaginea kernelului, ca urmare nu vom fi capabili sa pornim sistemul de operare.


Spre exemplu avem un JBOD, sau sa luam un exemplu mai simplu – 3 HDD-uri de dimensiuni diferite, fie 10, 20, 30 GB (Total 60Gb). Cu ajutorul tehnologiei LVM unim toate aceste HDD_uri in unul Logic, dupa care il partitionam dupa necesitate.
LVM

Cum lucram cu LVM ?
In LVM avem 3 nivele de abstractizare, si un set de comenzi pentru fiecare nivel care este intuitiv simplu de memorat:

Nivele de abstractizare Comenzi de lucru (lista incompleta)
1. PV (Physical Volume) — Discurile fizice, pot fi atit partitii aparte cat si discurile rigide in intregime.

pvcreate – initializeaza discurile fizice pentru a fi folosite in LVM
pvdisplay – afiseaza informatii despre discurilor fizice
pvremove – sterge un volum fizic

2. VG (Volume Group)  – Grupul de discuri care vor face parte din LVM  (Prin crearea grupei, noi indincam care partitii sau HDD-uri vor face parte din LVM)

vgcreate – creaza grupa de volume
vgdisplay – afiseaza informatii despre grupele de volume
vgreduce – sterge un grup volum

3. LV (Logical Volume) – Partitiile sau partitia logica care va/vor fi create din grupul de volume (VG).

lvcreate – creaza volumul logic
lvdisplay – afiseaza informatii despre volumele logice
lvremove – sterge un volum logic

Trecem la lucru practic:

Pentru a lucra cu LVM avem nevoie de setul de comenzi mentionate anterior, deci instalam pachetul LVM2, in caz ca el deja nu este instalat.

Pentru a vedea ce discuri avem in sistem, ce capacitate, care unde este montat executam lsblk:

Ca rezultat vedem ca la noi in sistem sint 3 HDD-uri sda, sdb si sdc.
sda – care e partitionat in 3, si pe care e instalat sistemul de operare
sdb si sdc – 2 HDD-uri care sint absolut noi, fara oricare file sistem (FS) si partitii.

Scopul nostru este de a crea un LVM din aceste 2 HDD-uri sdb si sdc.

Initializam discul sdb si sdc pentru a fi folosit in LVM:

Acum cream un Volum Group (discul virtual care este format din mai multe partitii sau hdd-uri) cu un nume user friendly

(!) Atrageti atentia ca dupa comenzile pvcreate si vgcreate am indicat doar discurile care vor face parte din LVM

Dupa ce am creat grupul de volume care vor face parte din LVM ne-a mai ramas doar sa cream volumele sau partitiile logice LV (Logical Volumes) :

Sa presupunem ca vrem sa cream 3 partitii logice (Total avem 2Gb, HDD1 + HDD2 = 1Gb +1Gb)
1 = 1.5Gb
2 = 128Mb
3 = 384Mb

Unde:
-n – este optiunea pentru numele partitiei
-L sau –size  – este optiunea pentru marimea partitiei.
MyVG – este numele Grupei de volume

Partitiile (Volumele logice) create vor aparea in /dev/[nume_vg]/ , care de fapt sint niste symlink-uri user friendly

 

Pasul urmator consta in formatare partitiilor sub un anumit file sistem, sau chiar si swap.

ulterior aceste partii pot fi montate si utilizate.

Scopul a fost atins! Ca rezultat am obtinut un disc Logic (Volume Group) din 2 discuri a cate 1Gb, care ulterior a fost repartitionat in 3 partitii.


Acum ca presupunem ca peste ceva timp am mai procurat un HDD (de 4Gb, acest HDD fiind deja al 4-a dupa numar)  care la fel dorim sa-l includem in LVM-ul deja existen. Ca urmare in loc de 2Gb vom avea 6Gb. Deci adaugam noul disc in LVM-ul deja existent:

Dupa cum vedem, hdd-ul a fost adaugat cu success in LVM, acum verificam:

 

In caz ca dorim sa excludem un HDD din LVM  parcurgem pasii urmatori:


Administrare GUI, pentru cei mai putini harnici:
Ca alternativa de administrare a LVM puteti folosi system-config-lvm, care desigur trebuie instalata in sistem

lvextend_ubuntu_root_visual

Sper ca acest articol a adus ceva lumina la capitolul LVM

Enjoy