Logical Volume Manager (LVM) consente un livello di astrazione tra il sistema operativo e l'hardware. Normalmente, il tuo sistema operativo cerca i dischi (/dev/sda
, /dev/sdb
e così via) e partizioni all'interno di quei dischi (/dev/sda1
, /dev/sdb1
, e così via).
In LVM, viene creato uno strato virtuale tra il sistema operativo ei dischi. Invece di un'unità che contiene un certo numero di partizioni, LVM crea un pool di archiviazione unificato (chiamato Gruppo di volumi ) che si estende su un numero qualsiasi di unità fisiche (denominate Volumi fisici ). Utilizzando lo spazio di archiviazione disponibile in un gruppo di volumi, LVM fornisce quelli che sembrano essere dischi e partizioni al tuo sistema operativo.
E il sistema operativo è completamente ignaro di essere stato "ingannato".
Poiché LVM crea virtualmente gruppi di volumi e volumi logici, semplifica il ridimensionamento, lo spostamento o la creazione di nuovi volumi, anche mentre il sistema è in esecuzione. Inoltre, LVM fornisce funzionalità che non sono altrimenti presenti, come la creazione di snapshot live di volumi logici, senza prima smontare il disco.
Un gruppo di volumi in un LVM è un contenitore virtuale denominato che raggruppa i dischi fisici sottostanti. Funge da pool da cui è possibile creare volumi logici di diverse dimensioni. I volumi logici contengono il file system effettivo e possono estendersi su più dischi e non è necessario che siano fisicamente contigui.
Più risorse Linux
- Comandi Linux cheat sheet
- Cheat sheet sui comandi avanzati di Linux
- Corso online gratuito:Panoramica tecnica RHEL
- Cheat sheet della rete Linux
- Cheat sheet di SELinux
- Cheat sheet dei comandi comuni di Linux
- Cosa sono i container Linux?
- I nostri ultimi articoli su Linux
Caratteristiche
- I nomi delle partizioni normalmente hanno designazioni di sistema come
/dev/sda1
. I volumi LVM hanno nomi normali comprensibili dall'uomo, comehome
omedia
. - La dimensione totale delle partizioni è limitata dalla dimensione del disco fisico sottostante. In LVM, i volumi possono estendersi su più dischi e sono limitati solo dalla dimensione totale di tutti i dischi fisici nell'LVM.
- Le partizioni normalmente possono essere ridimensionate, spostate o eliminate solo quando il disco non è in uso ed è smontato. I volumi LVM possono essere manipolati mentre il sistema è in esecuzione.
- Le partizioni possono essere espanse solo assegnando loro spazio libero adiacente alla partizione. I volumi LVM possono occupare spazio libero da qualsiasi luogo.
- L'espansione di una partizione comporta lo spostamento dei dati per liberare spazio, il che richiede molto tempo e potrebbe causare la perdita di dati durante un'interruzione di corrente. I volumi LVM possono occupare spazio libero da qualsiasi punto del gruppo di volumi, anche su un altro disco.
- Poiché è così facile creare volumi in un LVM, incoraggia la creazione di volumi diversi, come la creazione di volumi separati per testare funzionalità o per provare sistemi operativi diversi. Con le partizioni, questo processo richiederebbe molto tempo e sarebbe soggetto a errori.
- Gli snapshot possono essere creati solo in un LVM. Consente di creare un'immagine point-in-time del volume logico corrente, anche mentre il sistema è in esecuzione. Questo è ottimo per i backup.
Impostazione di prova
A titolo dimostrativo, supponi che il tuo sistema abbia la seguente configurazione dell'unità:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 8G 0 disk
`-xvda1 202:1 0 8G 0 part /
xvdb 202:16 0 1G 0 disk
xvdc 202:32 0 1G 0 disk
xvdd 202:48 0 2G 0 disk
xvde 202:64 0 5G 0 disk
xvdf 202:80 0 8G 0 disk
Passaggio 1. Inizializza i dischi da utilizzare con LVM
Esegui pvcreate /dev/xvdb /dev/xvdc /dev/xvdd /dev/xvde /dev/xvdf
. L'output dovrebbe essere:
Physical volume "/dev/xvdb" successfully created
Physical volume "/dev/xvdc" successfully created
Physical volume "/dev/xvdd" successfully created
Physical volume "/dev/xvde" successfully created
Physical volume "/dev/xvdf" successfully created
Guarda il risultato utilizzando pvs
o pvdisplay
:
"/dev/xvde" is a new physical volume of "5.00 GiB"
--- NEW Physical volume ---
PV Name /dev/xvde
VG Name
PV Size 5.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 728JtI-ffZD-h2dZ-JKnV-8IOf-YKdS-8srJtn
"/dev/xvdb" is a new physical volume of "1.00 GiB"
--- NEW Physical volume ---
PV Name /dev/xvdb
VG Name
PV Size 1.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID zk1phS-7uXc-PjBP-5Pv9-dtAV-zKe6-8OCRkZ
"/dev/xvdd" is a new physical volume of "2.00 GiB"
--- NEW Physical volume ---
PV Name /dev/xvdd
VG Name
PV Size 2.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID R0I139-Ipca-KFra-2IZX-o9xJ-IW49-T22fPc
"/dev/xvdc" is a new physical volume of "1.00 GiB"
--- NEW Physical volume ---
PV Name /dev/xvdc
VG Name
PV Size 1.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID FDzcVS-sq22-2b13-cYRj-dXHf-QLjS-22Meae
"/dev/xvdf" is a new physical volume of "8.00 GiB"
--- NEW Physical volume ---
PV Name /dev/xvdf
VG Name
PV Size 8.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID TRVSH9-Bo5D-JHHb-g0NX-8IoS-GG6T-YV4d0p
Passaggio 2. Crea il gruppo di volumi
Esegui vgcreate myvg /dev/xvdb /dev/xvdc /dev/xvdd /dev/xvde /dev/xvdf
. Guarda i risultati con vgs
o vgdisplay
:
--- Volume group ---
VG Name myvg
System ID
Format lvm2
Metadata Areas 5
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 5
Act PV 5
VG Size 16.98 GiB
PE Size 4.00 MiB
Total PE 4347
Alloc PE / Size 0 / 0
Free PE / Size 4347 / 16.98 GiB
VG UUID ewrrWp-Tonj-LeFa-4Ogi-BIJJ-vztN-yrepkh
Fase 3:crea volumi logici
Esegui i seguenti comandi:
lvcreate myvg --name media --size 4G
lvcreate myvg --name home --size 4G
Verifica i risultati utilizzando lvs
o lvdisplay
:
--- Logical volume ---
LV Path /dev/myvg/media
LV Name media
VG Name myvg
LV UUID LOBga3-pUNX-ZnxM-GliZ-mABH-xsdF-3VBXFT
LV Write Access read/write
LV Creation host, time ip-10-0-5-236, 2017-02-03 05:29:15 +0000
LV Status available
# open 0
LV Size 4.00 GiB
Current LE 1024
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0
--- Logical volume ---
LV Path /dev/myvg/home
LV Name home
VG Name myvg
LV UUID Hc06sl-vtss-DuS0-jfqj-oNce-qKf6-e5qHhK
LV Write Access read/write
LV Creation host, time ip-10-0-5-236, 2017-02-03 05:29:40 +0000
LV Status available
# open 0
LV Size 4.00 GiB
Current LE 1024
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:1
Fase 4:crea il file system
Crea il file system usando:
mkfs.ext3 /dev/myvg/media
mkfs.ext3 /dev/myvg/home
Montalo:
mount /dev/myvg/media /media
mount /dev/myvg/home /home
Visualizza la configurazione completa utilizzando lsblk
:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 8G 0 disk
`-xvda1 202:1 0 8G 0 part /
xvdb 202:16 0 1G 0 disk
xvdc 202:32 0 1G 0 disk
xvdd 202:48 0 2G 0 disk
xvde 202:64 0 5G 0 disk
`-myvg-media 252:0 0 4G 0 lvm /media
xvdf 202:80 0 8G 0 disk
`-myvg-home 252:1 0 4G 0 lvm /home
Fase 5:estensione dell'LVM
Aggiungi un nuovo disco in /dev/xvdg
. Per estendere la home
volume, esegui i seguenti comandi:
pvcreate /dev/xvdg
vgextend myvg /dev/xvdg
lvextend -l 100%FREE /dev/myvg/home
resize2fs /dev/myvg/home
Esegui df -h
e dovresti vedere la tua nuova taglia riflessa.
E questo è tutto!
LVM consente un'estrema flessibilità nella configurazione dello storage. Provalo e divertiti con LVM!
Questo articolo è stato originariamente pubblicato sul blog personale dell'autore ed è stato adattato previa autorizzazione.