Despre Linux

  • Facebook
  • Twitter
  • LinkedIn
  • Acasă
  • Linux
    • Comenzi Linux
    • Tutoriale
  • Kubernetes
  • RHCSA
    • Exerciții RHCSA
    • SELinux
    • Permisiuni
  • General
    • Open source
  • Contact

Exerciții RHCSA - Logical Volume Manager (LVM)

18 mai 2019 By Bobses 2 comentarii

Chiar dacă într-un alt articol am vorbit mai detaliat despre gestionarea spațiului de stocare cu ajutorul LVM, voi reaminti și acum câteva generalități, concentrându-mă mai mult pe comenzile necesare creării și gestionării acestora. Logical Volume Manager (LVM) furnizează o metodă eficientă de a gestiona un fond comun de discuri pentru a crea un disc "virtual" în mod dinamic. Un Logical Volume (LV) are la bază un Volume Group (VG) care poate include mai multe Physical Volumes (PV). Când un disc fizic este configurat pentru LVM, metadatele sunt scrise la începutul discului în cazul unei folosiri normale și la finalul său în cazul unui disc care va fi solosit pentru backup.

Înainte de a începe aceste exerciții, recomand adăugarea mai multor discuri mașinii voastre virtuale, astfel încât să aveți suficient spațiu de manevră:

# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom 
vda 252:0 0 20G 0 disk 
├─vda1 252:1 0 1G 0 part /boot
└─vda2 252:2 0 19G 0 part 
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
vdb 252:16 0 1G 0 disk 
vdc 252:32 0 1G 0 disk 
vdd 252:48 0 1G 0 disk 
vde 252:64 0 1G 0 disk 

 

1. Creați un sistem de fișiere XFS pe un pe un Logical Volume nou de 200 MB numit lv_xfs; Volume Group-ul folosit se va numi vg_xfs. Montați-l permanent, folosind UUID, sub directorul /xfs.

Atenție maximă la dimensiunea stabilită și la codul alocat noii partiții:

# fdisk /dev/vdb

Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-2097151, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151): +200M
Partition 1 of type Linux and of size 200 MiB is set
Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'
Command (m for help): p
Device Boot Start End Blocks Id System
/dev/vdb1 2048 411647 204800 8e Linux LVM
Command (m for help): w
The partition table has been altered!

# partprobe

Facem un nou Physical Volume pe noua partiție:

# pvcreate /dev/vdb1
Physical volume "/dev/vdb1" successfully created.

# pvdisplay /dev/vdb1

Facem un nou Volume Group din /dev/vdb1:

# vgcreate vg_xfs /dev/vdb1
Volume group "vg_xfs" successfully created

# vgdisplay vg_xfs

Construim volumul logic cu numele lv_xfs, care va lua tot spațiul liber (toate unitățile extents) din volume group-ul vg_xfs:

# lvcreate -n lv_xfs -l 100%FREE vg_xfs
Logical volume "lv_xfs" created.

# lvdisplay /dev/vg_xfs/

Ni se cere să-l formatăm XFS, apoi montarea permanentă sub directorul /xfs, folosind UUID:

# mkfs -t xfs /dev/vg_xfs/lv_xfs
# mkdir -p /xfs
# blkid | grep lv_xfs | awk '{print $2}' >> /etc/fstab
# vi /etc/fstab
UUID=f7cdaa16-7358-4d0d-9f05-3a8f8a5196d6 /xfs xfs defaults 0 0 
# mount -a
# df -hT

Discul e montat sub directorul cerut.

 

2. Creați un sistem de fișiere EXT4 pe un pe un Logical Volume nou de 300 MB numit lv_ext4; Volume Group-ul folosit se va numi vg_ext4 și va avea dimensiunea extentului de 8 MB. Montați-l permanent sub directorul /ext4.

# lsblk
[...]
vdc 252:32 0 1G 0 disk 
vdd 252:48 0 1G 0 disk 

Vom crea o nouă partiție pe întreg discul /dev/vdc (atenție la codul alocat acestei partiții - 8e pentru Linux LVM), vom face un Physical Volume din această partiție, apoi un Volume Group (atenție la comanda care stabilește dimensiunea unui extent), după care vom crea și Logical Volume-ul de dimensiunea cerută. Vom aplica sistemul de fișiere ext4 și îl vom monta sub /ext4.

Mai jos voi scrie doar comenzile necesare (aproape se repetă cele de sus):

# fdisk /dev/vdc
# partprobe
# pvcreate /dev/vdc1
# vgcreate -s 8M vg_ext4 /dev/vdc1
# vgdisplay vg_ext4
# lvcreate -n lv_ext4 -L 300M vg_ext4
# lvdisplay /dev/vg_ext4/lv_ext4 
# mkfs -t ext4 /dev/vg_ext4/lv_ext4
# mkdir -p /ext4
# vi /etc/fstab
     /dev/vg_ext4/lv_ext4 /ext4 ext4 defaults 0 0
# mount -a
# df -hT
# reboot

Am îndeplinit și această sarcină, noul Logical Volume fiind montat permanent sub directorul /ext4.

 

3. Redimensionați Logical Volume-ul de la punctul 1 cu 200 MB, iar LV-ul creat la punctul 2 micșorați-l cu 20 extents.

# lvextend -r /dev/vg_xfs/lv_xfs -L +200M
Insufficient free space: 50 extents needed, but only 0 available

Observăm că nu există spațiu suficient pe acest Volume Group pentru a mărti sistemul de fișiere, așa că vom crea o nouă partiție pe /dev/vdb (/dev/vdb2 de 500M cu codul pentru Linux LVM - 8e) și o vom adăuga la Volume Group-ul vg_xfs:

# fdisk /dev/vdb
# partprobe
# lsblk
# pvcreate /dev/vdb2
# vgextend vg_xfs /dev/vdb2
# vgdisplay vg_xfs
# lvdisplay /dev/vg_xfs/lv_xfs
# lvextend -r /dev/vg_xfs/lv_xfs -L +200M
# lvdisplay /dev/vg_xfs/lv_xfs
# df -hT
   *remarcăm noua dimensiune a LV-ului

Remarcați parametrul -r al comenzii lvextend: acest parametru face și redimensionarea sistemului de fișiere, astfel încât nu mai trebuie folosită comanda xfs_growfs.

# umount /ext4
# lvdisplay /dev/vg_ext4/lv_ext4
   *în acest moment, LV-ul are 38 extents*
# lvresize -r /dev/vg_ext4/lv_ext4 -l -20
# lvdisplay /dev/vg_ext4/lv_ext4
    *în acest moment, LV-ul are 18 extents*
# mount -a
# df-hT
   *remarcăm noua dimensiune a LV-ului

Observați, din nou, folosirea argumentului -r la comanda lvresize: la fel ca mai sus, folosirea acestui parametru face inutilă folosirea ulterioară a comenzii resize2fs.

Trebuie reținut că un Logical Volume care are sistemul de fișiere XFS poate fi redimensionat fără a fi demontat, pe când un LV formatat ext4 necesită demontare și remontare ulterior redimensionării. Sistemul de fisiere XFS nu poate fi micsorat (poate fi redimensionat doar in sus).

 

4. Creați un Logical Volume de 300 MB numt lv_swap și adăugați-l permanent spațiului swap curent.

Verificăm swap-ul curent:

# free -m
total used free shared buff/cache available
Mem: 3950 139 3652 8 158 3591
Swap: 2047 0 2047

Verificăm spațiul swap după device:

# swapon -s
Filename Type Size Used Priority
/dev/dm-1 partition 2097148 0 -2

Observăm că spațiul swap curent este de 2 GB și avem o singură partiție swap.

Pașii pentru realizarea acestei sarcini seamănă aproape perfect cu cei din exercițiile de mai sus (diferențele vor fi comenzile necesare realizării spațiului swap). În principiu, identificăm spațiul liber pe sistem, facem o nouă partiție (atenție la codul alocat - 82 pentru Linux Swap), un Physical Volume, un Volume Group și LV-ul. La final, marcăm noul LV ca swap și-l montăm permanent după UUID.

Să începem:

# lsblk
# fdisk /dev/vdd
# partprobe
# pvcreate /dev/vdd1
# vgcreate vg_swap /dev/vdd1
# vgdisplay vg_swap
# lvcreate -n lv_swap -L 300M vg_swap
# lvdisplay /dev/vg_swap/lv_swap
# mkswap /dev/vg_swap/lv_swap
# blkid
# blkid | grep lv_swap
# blkid | grep lv_swap | awk '{print $2}' >> /etc/fstab
# vi /etc/fstab
     UUID=95bb2c22-b138-4872-b421-feb6128afed9 swap swap defaults 0 0
# swapon -a
# swapon -s
# free -m
# reboot

La verificarea făcută cu ultimele 2 comenzi de mai sus, observăm că spațiul swap a crescut la 2,3 GB și că avem 2 partiții folosite pentru swap.

 

Pentru a vă simți confortabil cu Logical Volume Manager (LVM), trebuie să lucrați mult în mașini virtuale: creare, ștergere, mărire, micșorare, etc. Astfel, la aceste exerciții nu veți avea deloc emoții în timpul examenului RHCSA.

Partajează asta:

  • Dă clic pentru a partaja pe Facebook(Se deschide într-o fereastră nouă)
  • Dă clic pentru a partaja pe LinkedIn(Se deschide într-o fereastră nouă)
  • Dă clic pentru a partaja pe Twitter(Se deschide într-o fereastră nouă)

Similare

Din categoria: Exerciții RHCSA Etichete: exercitii RHCSA, LVM, partitionare, RHCSA, Volume Group

Comentarii

  1. Catalin a zis

    20 mai 2019 la ora 14:02

    Bine construit articolul, dar as avea doua mici observatii.
    1. Un volum logic cu sistem de fisiere ext4 poate fi redimensionat (marit) fara a fi demontat folosind resize2fs (pentru xfs este comanda xfs_growfs) cu lvresize / lvextend -r nu am incercat dar e bun de stiut 🙂
    2. Ar fi fost bine de mentionat faptul ca sistemul de fisiere xfs nu se poate micsora.

    Răspunde
    • Bobses a zis

      20 mai 2019 la ora 14:23

      Da, ai dreptate, am gresit eu si din graba am scris xfs_admin in loc de xfs_growfs. 🙂 Am corectat si am adaugat si observatia despre redimensionarea XFS. Multumesc.

      Pe unele sisteme am intampinat erori la redimensionarea ext4 montat, erori care au disparut cand fs-ul era demontat - de aceea am facut precizarea respectiva.

      Răspunde

Lasă un răspuns Anulează răspunsul

Acest site folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.

Copyright © 2023 · Bobses

Administrează consimțămintele pentru cookie-uri
Pentru a oferi cea mai bună experiență, folosim tehnologii, cum ar fi cookie-uri, pentru a stoca și/sau accesa informațiile despre dispozitive. Consimțământul pentru aceste tehnologii ne permite să procesăm date, cum ar fi comportamentul de navigare sau ID-uri unice pe acest site. Dacă nu îți dai consimțământul sau îți retragi consimțământul dat poate avea afecte negative asupra unor anumite funcționalități și funcții.
Funcționale Mereu activ
Stocarea tehnică sau accesul sunt strict necesare în scopul legitim de a permite utilizarea unui anumit serviciu cerut în mod explicit de către un abonat sau un utilizator sau în scopul exclusiv de a executa transmiterea unei comunicări printr-o rețea de comunicații electronice.
Preferințe
Stocarea tehnică sau accesul este necesară în scop legitim pentru stocarea preferințelor care nu sunt cerute de abonat sau utilizator.
Statistici
Stocarea tehnică sau accesul care sunt utilizate exclusiv în scopuri statistice. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
Stocarea tehnică sau accesul sunt necesare pentru a crea profiluri de utilizator pentru a trimite publicitate sau pentru a urmări utilizatorul pe un site web sau pe mai multe site-uri web în scopuri de marketing similare.
Administrează opțiunile Administrează serviciile Administrează vânzătorii Citește mai multe despre aceste scopuri
Vizualizează preferințele
{title} {title} {title}