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 il 2 febbraio 2016, stiamo aggiungendo gli argomenti necessari alla serie LFCS pubblicata qui. Per prepararsi a questo esame, si consiglia vivamente di utilizzare anche la serie LFCE.

LFCS: Manage LVM and Create LVM Partition – Part 11

Una delle decisioni più importanti durante l’installazione di un sistema Linux è la quantità di spazio di archiviazione da allocare per i file di sistema, le directory home e altri. Se si commette un errore in quel momento, far crescere una partizione che ha esaurito lo spazio può essere gravoso e un po’ rischioso.

Gestione dei volumi logici (nota anche come LVM), diventata predefinita per l’installazione della maggior parte (se non tutte) le distribuzioni Linux, ha numerosi vantaggi rispetto alla gestione tradizionale delle partizioni. 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ù dischi rigidi o partizioni intere configurati come volumi fisici (PV).
  2. A volume group (VG) is created using one or more physical volumes. You can think of a volume group as a single storage unit.
  3. Poi possono essere creati 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 abbiamo già menzionato.

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 partizionarlo prima.

Anche se abbiamo scelto il primo metodo, se decidi di optare per il secondo (come spiegato in Parte 4 – Creare Partizioni e Sistemi di File in Linux di questa serie), assicurati di configurare ciascuna partizione come tipo 8e.

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 ottenere 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 chiamato vg00 utilizzando /dev/sdb e /dev/sdc (salveremo /dev/sdd per dopo per illustrare 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, puoi anche visualizzare informazioni su questo gruppo di volumi eseguendo:

# vgdisplay vg00

Dato che vg00 è formato da due dischi da 8 GB, apparirà come un singolo disco da 16 GB:

List LVM Volume Groups

Quando si tratta di creare volumi logici, la distribuzione dello spazio deve tener conto delle esigenze attuali e future. È considerata una buona pratica denominare ciascun volume logico in base all’uso previsto.

Ad esempio, creiamo due LV chiamati vol_progetti (10 GB) e vol_backup (spazio rimanente), che possiamo utilizzare successivamente per archiviare la documentazione del progetto e i backup di sistema, rispettivamente.

L’opzione -n viene utilizzata per indicare un nome per il LV, mentre -L imposta una dimensione fissa e -l (l minuscola) viene utilizzato per indicare un percentuale dello spazio rimanente nel VG contenitore.

# lvcreate -n vol_projects -L 10G vg00
# lvcreate -n vol_backups -l 100%FREE vg00

Come prima, è possibile visualizzare l’elenco dei LV e le informazioni di base con:

# lvs

e informazioni dettagliate con

# lvdisplay

Per visualizzare le informazioni su un singolo LV, utilizzare lvdisplay con i parametri VG e LV, come segue:

# lvdisplay vg00/vol_projects
List Logical Volume

Nell’immagine sopra possiamo vedere che i LV sono stati creati come dispositivi di archiviazione (fare riferimento alla riga Percorso LV). Prima che ciascun volume logico possa essere utilizzato, è necessario creare un filesystem in cima ad esso.

Utilizzeremo ext4 come esempio qui poiché ci consente sia di aumentare che di ridurre la dimensione di ciascun LV (a differenza 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 spazio di archiviazione fisico aggiuntivo quando si rende necessario farlo.

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 abbondante spazio disponibile in vol_projects. Grazie alla natura di LVM, possiamo facilmente ridurre le dimensioni di quest’ultimo (diciamo 2.5 GB) e allocarlo per il primo, ridimensionando contemporaneamente ciascun filesystem.

Fortunatamente, è semplice come fare:

# lvreduce -L -2.5G -r /dev/vg00/vol_projects
# lvextend -l +100%FREE -r /dev/vg00/vol_backups
Resize Reduce Logical Volume and Volume Group

È importante includere i segni meno (-) o più (+) durante il ridimensionamento di un volume logico. Altrimenti, stai impostando una dimensione fissa per il VL anziché ridimensionarlo.

Può capitare di arrivare a un punto in cui il ridimensionamento dei volumi logici non può più soddisfare le tue esigenze di archiviazione e hai bisogno di acquistare un dispositivo di archiviazione aggiuntivo. Semplificando, 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, esegui

# vgextend vg00 /dev/sdd

Se esegui vgdisplay vg00 prima e dopo il comando precedente, vedrai l’aumento delle dimensioni del VG:

# vgdisplay vg00
Check Volume Group Disk Size

Ora puoi utilizzare lo spazio appena aggiunto per ridimensionare i VL esistenti secondo le tue esigenze, o per crearne di aggiuntivi se necessario.

Montaggio dei Volumi Logici all’Avvio e su Richiesta

Certo, 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 farlo, utilizza blkid seguito dal percorso di ciascun dispositivo:

# blkid /dev/vg00/vol_projects
# blkid /dev/vg00/vol_backups
Find Logical Volume UUID

Crea punti di mount per ciascun LV:

# mkdir /home/projects
# mkdir /home/backups

e inserisci le voci corrispondenti in /etc/fstab (assicurati di utilizzare gli UUID ottenuti prima):

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 gli LV:

# mount -a
# mount | grep home
Mount Logical Volumes on Linux

Quando si tratta di utilizzare effettivamente gli LV, sarà necessario assegnare le adeguate autorizzazioni ugo+rwx come spiegato in Parte 8 – Gestire Utenti e Gruppi in Linux di questa serie.

Riepilogo

In questo articolo abbiamo presentato Gestione dei Volumi Logici, uno strumento versatile per gestire dispositivi di archiviazione che offre scalabilità. Quando combinato con RAID (che abbiamo spiegato in Parte 6 – Creare e Gestire RAID in Linux di questa serie), è possibile godere non solo di scalabilità (fornita da LVM) ma anche di ridondanza (offerta da RAID).

In questo tipo di configurazione, troverai tipicamente LVM sopra RAID, cioè configurare RAID prima e poi configurare 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.

Source:
https://www.tecmint.com/manage-and-create-lvm-parition-using-vgcreate-lvcreate-and-lvextend/