Ricerca nel sito web

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:

  1. Uno o più interi dischi rigidi o partizioni sono configurati come volumi fisici (PV).
  2. 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.
  3. È 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.