LFCS: come gestire e creare LVM utilizzando i comandi vgcreate, lvcreate e lvextend - Parte 11
A causa dei cambiamenti nei requisiti dell'esame LFCS in vigore dal febbraio. 2, 2016, stiamo aggiungendo gli argomenti necessari alla serie LFCS pubblicata qui. Per prepararti a questo esame, ti consigliamo vivamente di utilizzare anche la serie LFCE.
Una delle decisioni più importanti durante l'installazione di un sistema Linux è la quantità di spazio di archiviazione da allocare per file di sistema, directory home e altro. Se si commette un errore a quel punto, far crescere una partizione che ha esaurito lo spazio può essere gravoso e alquanto rischioso.
La gestione dei volumi logici (nota anche come LVM), che è diventata un'impostazione predefinita per l'installazione della maggior parte (se non di tutte) le distribuzioni Linux, presenta numerosi vantaggi rispetto alla tradizionale gestione del partizionamento. Forse la caratteristica più distintiva di LVM è che consente di ridimensionare (ridurre o aumentare) le divisioni logiche a piacimento senza troppi problemi.
La struttura del LVM è composta da:
- Uno o più interi dischi rigidi o partizioni sono configurati come volumi fisici (PV).
- Un gruppo di volumi (VG) viene creato utilizzando uno o più volumi fisici. Puoi pensare a un gruppo di volumi come a una singola unità di archiviazione.
- È quindi possibile creare più volumi logici in un gruppo di volumi. Ogni volume logico è in qualche modo equivalente a una partizione tradizionale, con il vantaggio che può essere ridimensionato a piacimento, come accennato in precedenza.
In questo articolo utilizzeremo tre dischi da 8 GB ciascuno (/dev/sdb, /dev/sdc e /dev /sdd) per creare tre volumi fisici. Puoi creare i PV direttamente sul dispositivo o prima partizionarlo.
Sebbene abbiamo scelto di utilizzare il primo metodo, se decidi di utilizzare il secondo (come spiegato nella Parte 4 – Creare partizioni e file system in Linux di questa serie) assicurati di configurare ciascuna partizione come tipo 8e< /codice>.
Creazione di volumi fisici, gruppi di volumi e volumi logici
Per creare volumi fisici su /dev/sdb, /dev/sdc e /dev/sdd, esegui:
pvcreate /dev/sdb /dev/sdc /dev/sdd
Puoi elencare i PV appena creati con:
pvs
e ottieni informazioni dettagliate su ciascun PV con:
pvdisplay /dev/sdX
(dove X è b, c o d)
Se ometti /dev/sdX
come parametro, otterrai informazioni su tutti i PV.
Per creare un gruppo di volumi denominato vg00
utilizzando /dev/sdb
e /dev/sdc
(salveremo /dev/sdd
per illustrare in seguito la possibilità di aggiungere altri dispositivi per espandere la capacità di archiviazione quando necessario):
vgcreate vg00 /dev/sdb /dev/sdc
Come nel caso dei volumi fisici, potete anche visualizzare le informazioni su questo gruppo di volumi immettendo:
vgdisplay vg00
Poiché vg00
è formato da due dischi da 8 GB, apparirà come una singola unità da 16 GB:
Quando si tratta di creare volumi logici, la distribuzione dello spazio deve tenere in considerazione sia le esigenze attuali che quelle future. È considerata buona pratica denominare ciascun volume logico in base all'uso previsto.
Ad esempio, creiamo due LV denominati vol_projects
(10 GB) e vol_backups
(spazio rimanente), che possiamo utilizzare in seguito per archiviare la documentazione del progetto e backup di sistema, rispettivamente.
L'opzione -n
viene utilizzata per indicare un nome per la LV, mentre -L
imposta una dimensione fissa e -l
(L minuscola) è utilizzato per indicare una percentuale dello spazio rimanente nel contenitore VG.
lvcreate -n vol_projects -L 10G vg00
lvcreate -n vol_backups -l 100%FREE vg00
Come prima è possibile visualizzare l’elenco dei VL e le informazioni di base con:
lvs
e informazioni dettagliate con
lvdisplay
Per visualizzare le informazioni su un singolo LV, utilizzare lvdisplay con VG e LV come parametri, come segue:
lvdisplay vg00/vol_projects
Nell'immagine sopra possiamo vedere che i LV sono stati creati come dispositivi di archiviazione (fare riferimento alla riga Percorso LV). Prima di poter utilizzare ciascun volume logico, è necessario creare un file system sopra di esso.
Utilizzeremo ext4 come esempio qui poiché ci consente sia di aumentare che di ridurre la dimensione di ciascun LV (al contrario di xfs che consente solo di aumentare la dimensione):
mkfs.ext4 /dev/vg00/vol_projects
mkfs.ext4 /dev/vg00/vol_backups
Nella sezione successiva spiegheremo come ridimensionare i volumi logici e aggiungere ulteriore spazio di archiviazione fisico quando se ne presenta la necessità.
Ridimensionamento dei volumi logici ed estensione dei gruppi di volumi
Ora immagina il seguente scenario. Stai iniziando a esaurire lo spazio in vol_backups
, mentre hai molto spazio disponibile in vol_projects
. A causa della natura di LVM, possiamo facilmente ridurre la dimensione di quest'ultimo (diciamo 2,5 GB) e allocarla per il primo, ridimensionando contemporaneamente ciascun filesystem.
Fortunatamente, questo è facile come fare:
lvreduce -L -2.5G -r /dev/vg00/vol_projects
lvextend -l +100%FREE -r /dev/vg00/vol_backups
È importante includere i segni meno (-)
o più (+)
durante il ridimensionamento di un volume logico. Altrimenti, stai impostando una dimensione fissa per il LV invece di ridimensionarlo.
Può succedere che arrivi a un punto in cui il ridimensionamento dei volumi logici non può più risolvere le tue esigenze di archiviazione e devi acquistare un dispositivo di archiviazione aggiuntivo. Per mantenerlo semplice, avrai bisogno di un altro disco. Simuleremo questa situazione aggiungendo il PV rimanente dalla nostra configurazione iniziale (/dev/sdd
).
Per aggiungere /dev/sdd
a vg00
, fai
vgextend vg00 /dev/sdd
Se esegui vgdisplay vg00
prima e dopo il comando precedente, vedrai l'aumento delle dimensioni del VG:
vgdisplay vg00
Ora puoi utilizzare lo spazio appena aggiunto per ridimensionare i LV esistenti in base alle tue esigenze o per crearne di aggiuntivi secondo necessità.
Montaggio di volumi logici all'avvio e su richiesta
Ovviamente non avrebbe senso creare volumi logici se non li utilizzeremo effettivamente! Per identificare meglio un volume logico dovremo scoprire qual è il suo UUID
(un attributo immutabile che identifica in modo univoco un dispositivo di archiviazione formattato).
Per fare ciò, utilizza blkid seguito dal percorso di ciascun dispositivo:
blkid /dev/vg00/vol_projects
blkid /dev/vg00/vol_backups
Crea punti di montaggio per ciascun LV:
mkdir /home/projects
mkdir /home/backups
e inserisci le voci corrispondenti in /etc/fstab
(assicurati di utilizzare gli UUID ottenuti in precedenza):
UUID=b85df913-580f-461c-844f-546d8cde4646 /home/projects ext4 defaults 0 0
UUID=e1929239-5087-44b1-9396-53e09db6eb9e /home/backups ext4 defaults 0 0
Quindi salva le modifiche e monta i LV:
mount -a
mount | grep home
Quando si tratta di utilizzare effettivamente i LV, sarà necessario assegnare i permessi ugo+rwx
appropriati come spiegato nella Parte 8 – Gestire utenti e gruppi in Linux di questa serie.
Riepilogo
In questo articolo abbiamo introdotto Logical Volume Management, uno strumento versatile per gestire i dispositivi di archiviazione che fornisce scalabilità. Se combinato con RAID (che abbiamo spiegato nella Parte 6 – Creare e gestire RAID in Linux di questa serie), puoi godere non solo della scalabilità (fornita da LVM) ma anche della ridondanza (offerta da RAID).
In questo tipo di configurazione, in genere troverai LVM sopra RAID, ovvero configuri prima il RAID e poi configuri LVM sopra di esso.
Se hai domande su questo articolo o suggerimenti per migliorarlo, non esitare a contattarci utilizzando il modulo di commento qui sotto.