Come parte della preparazione all'esame RHCSA, abbiamo già imparato a gestire le partizioni su disco. Le partizioni sono utili per separare lo spazio su disco (ad esempio, separando i file relativi al database dai file relativi al server web), ma abbiamo una soluzione molto più flessibile che può separare o aggregare lo spazio di archiviazione.
Questa soluzione si chiama LVM, il Logical Volume Manager. LVM ci consente di vedere più dischi come un unico filesystem, superando così i limiti del sito di un disco fisico. Possiamo anche creare mirroring del software su dischi per proteggere o dati scritti sul filesystem. In questo tutorial tratteremo le basi:gestiremo i tre livelli di LVM, volumi fisici, gruppi di volumi e volumi logici.
In questo tutorial imparerai:
- Come creare e rimuovere volumi fisici
- Come assegnare i volumi fisici ai gruppi di volumi
- Come creare ed eliminare volumi logici
Creazione di un nuovo volume fisico con LVM.
Requisiti e convenzioni software utilizzati
Categoria | Requisiti, convenzioni o versione del software utilizzata |
---|---|
Sistema | Red Hat Enterprise Linux 8.1 |
Software | LVM 2.03 |
Altro | Accesso privilegiato al tuo sistema Linux come root o tramite sudo comando. |
Convenzioni | # – richiede che i comandi linux dati vengano eseguiti con i privilegi di root direttamente come utente root o usando sudo comando$ – richiede che i comandi linux dati vengano eseguiti come un normale utente non privilegiato |
Con LVM, abbiamo tre livelli che si sovrappongono:physical volumes
(pv), che sono molto simili alle partizioni, contrassegnate solo per l'utilizzo LVM. Possiamo creare un volume fisico da una partizione del disco o da un intero disco grezzo. Se intendiamo utilizzare un disco solo come volume fisico LVM, non è necessario creare prima una partizione su di esso. Il livello successivo è un volume group
(vg). Come suggerisce il nome, è semplicemente il raggruppamento di volumi fisici. A questo livello possiamo aggregare tutto lo spazio del volume fisico sottostante in un'unità di archiviazione più grande. Sopra i gruppi di volumi possiamo creare il livello finale, logical volumes
(lv). Questi possono contenere filesystem, in cui possiamo archiviare i nostri dati.
Una delle caratteristiche principali di LVM è che possiamo aggiungere al volo un altro volume fisico a un gruppo di volumi e possiamo anche modificare le dimensioni di un volume logico mentre il sistema è in esecuzione. Quindi, se esauriamo lo spazio, possiamo ridimensionare senza spegnere un sistema.
Le abbreviazioni dei livelli sono buoni promemoria quando abbiamo a che fare con LVM. I comandi che funzionano su livelli diversi iniziano tutti con queste abbreviazioni, ad esempio, se lavoriamo con volumi fisici, il comando per crearne uno sarà pvcreate
, il comando per elencare i volumi fisici esistenti sarà pvdisplay
, e così via. Anche se è necessario farlo di rado, è facile indovinare o trovare il comando giusto, poiché questa convenzione di denominazione è coerente su tutti i livelli.
Per questo tutorial, abbiamo aggiunto ai dischi 2 GB di dimensioni ciascuno per la nostra macchina di laboratorio. Sono riconosciuti come /dev/sdb
e /dev/sdc
sul nostro sistema, mentre /dev/sda
contiene il sistema operativo, che non toccheremo durante i passaggi seguenti.
Come creare e rimuovere volumi fisici
Come creare un volume fisico
Per creare un volume fisico, utilizzeremo pvcreate
. Creeremo un volume fisico di 2 GB su entrambi sdb
e sdc
.
# pvcreate /dev/sdb Physical volume "/dev/sdb" successfully created. # pvcreate /dev/sdc Physical volume "/dev/sdc" successfully created.
Possiamo verificare se l'abbiamo fatto bene elencando i nostri volumi fisici. Useremo pvdisplay
.
# pvdisplay --- Physical volume --- PV Name /dev/sda2 VG Name rhel PV Size <14.00 GiB / not usable 3.00 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 3583 Free PE 0 Allocated PE 3583 PV UUID rfezEa-GlgW-jWUX-Zixs-Ydw0-EsZS-nk3JDH "/dev/sdb" is a new physical volume of "2.00 GiB" --- NEW Physical volume --- PV Name /dev/sdb VG Name PV Size 2.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID V2PUv4-O9eQ-jFvQ-UmQf-dmq3-caF9-xmxYGj "/dev/sdc" is a new physical volume of "2.00 GiB" --- NEW Physical volume --- PV Name /dev/sdc VG Name PV Size 2.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID PWTs7Q-x3wD-RyXj-ertn-Sh2N-CiXb-ayDc1q
La macchina di laboratorio utilizza già LVM nella sua configurazione predefinita (come la maggior parte delle distribuzioni oggigiorno), ecco perché /dev/sda2
è mostrato. Siamo interessati ai nostri due nuovi volumi fisici, che ora possiamo verificare.
Come rimuovere il volume fisico
Per eliminare un volume fisico, abbiamo il pvremove
comando. Non rimuovere un volume fisico su cui sono scritti i dati necessari.
# pvremove /dev/sdc Labels on physical volume "/dev/sdc" successfully wiped.
Come assegnare i volumi fisici ai gruppi di volumi
Creazione di gruppi di volumi da volumi fisici.
Dopo aver ricreato il sdc
eliminato volume fisico, abbiamo tutto ciò di cui abbiamo bisogno per creare un gruppo di volumi che possa contenere un volume logico. Potremmo creare un "gruppo" di volumi con un solo volume fisico, che è il caso esatto del sda2
predefinito – ma per dimostrare l'aggregazione dell'archiviazione, utilizzeremo entrambi i nostri nuovi volumi fisici per creare un gruppo di volumi chiamato "dati" con 4 GB di spazio su disco disponibili.
Possiamo creare un gruppo di volumi con vgcreate
. Tutto ciò di cui abbiamo bisogno è specificare il nome VG e i volumi fisici che saranno membri del gruppo di volumi.
# vgcreate data /dev/sdb /dev/sdc Volume group "data" successfully created
Possiamo elencare le proprietà del nostro nuovo gruppo di volumi con vgdisplay
.
# vgdisplay data --- Volume group --- VG Name data System ID Format lvm2 Metadata Areas 2 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 2 Act PV 2 VG Size 3.99 GiB PE Size 4.00 MiB Total PE 1022 Alloc PE / Size 0 / 0 Free PE / Size 1022 / 3.99 GiB VG UUID CmM07M-16Ys-PZx2-XGvo-N1j3-nINX-fnIFIA
Nota la dimensione VG di quasi 4 GB, la somma dei due volumi fisici. Non sarà esattamente la somma dei volumi, in quanto parte dello spazio è riservato ai metadati.
Come creare ed eliminare volumi logici
Sopra un gruppo di volumi, possiamo creare volumi logici che a loro volta possono contenere filesystem. L'installazione predefinita su molte distribuzioni separa l'archiviazione in questo modo, ad esempio, i dati dell'utente vengono conservati su /home
volume logico e i registri di sistema sono archiviati in /var
volume. Nel caso in cui un utente riempia il volume home, l'intero sistema sarà comunque in grado di scrivere i log, e quindi i suoi servizi continueranno a essere eseguiti mentre l'amministratore di sistema può gestire l'utente che si è scatenato.
Come creare un volume logico
Creeremo due volumi logici, il primo chiamato "database" con 2 GB di dimensione, l'altro chiamato "webserver" con 500 MB di spazio su disco. Come puoi intuire dagli esempi precedenti, il comando che useremo è lvcreate
.
# lvcreate -L 2G -n database data Logical volume "database" created. # lvcreate -L 500M -n webserver data Logical volume "webserver" created.
Possiamo visualizzare le nostre proprietà del volume con lvdisplay <volume path>
oppure possiamo elencare tutti i nostri volumi logici se non forniamo un argomento per lvdisplay
. Sebbene ciò possa fornire un output lungo su alcuni sistemi, è utile in un ambiente sconosciuto, poiché i percorsi del volume possono variare a seconda della distribuzione e della versione.
# lvdisplay /dev/data/database --- Logical volume --- LV Path /dev/data/database LV Name database VG Name data LV UUID D7f9An-G0dd-kEGw-OGrP-HZlA-dQlX-yBbQbi LV Write Access read/write LV Creation host, time rhel8rhcsa, 2019-12-28 16:53:24 +0100 LV Status available # open 0 LV Size 2.00 GiB Current LE 512 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:2 # lvdisplay /dev/data/webserver --- Logical volume --- LV Path /dev/data/webserver LV Name webserver VG Name data LV UUID 7Ldt79-aw0i-Oydm-4d0I-JaVe-Zd8m-xKpvrD LV Write Access read/write LV Creation host, time rhel8rhcsa, 2019-12-28 16:53:38 +0100 LV Status available # open 0 LV Size 500.00 MiB Current LE 125 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:3
Se controlliamo il nostro gruppo di volumi a questo punto, possiamo notare lo spazio che i volumi logici utilizzano dal gruppo di volumi.
# vgdisplay data --- Volume group --- VG Name data System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 5 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 3.99 GiB PE Size 4.00 MiB Total PE 1022 Alloc PE / Size 637 / <2.49 GiB Free PE / Size 385 / 1.50 GiB VG UUID CmM07M-16Ys-PZx2-XGvo-N1j3-nINX-fnIFIA
Come eliminare un volume logico
Per liberare spazio o riorganizzare i volumi, possiamo eliminare i volumi logici con lvremove
.
Non rimuovere i volumi logici che contengono dati preziosi. In questo modo verranno distrutti i dati sul volume.
Ci sono cinture di sicurezza integrate, sono finiti i giorni in cui pulire il nostro sistema non doveva aspettare un prompt. Almeno, quando si utilizzano i comandi LVM.
# lvremove /dev/data/webserver Do you really want to remove active logical volume data/webserver? [y/n]: y Logical volume "webserver" successfully removed
Un altro elenco di gruppi di volumi mostra che i 500 MB del webserver
il volume viene ora aggiunto di nuovo alla dimensione libera del gruppo di volumi:
# vgdisplay data --- Volume group --- VG Name data System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 6 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 3.99 GiB PE Size 4.00 MiB Total PE 1022 Alloc PE / Size 512 / 2.00 GiB Free PE / Size 510 / 1.99 GiB VG UUID CmM07M-16Ys-PZx2-XGvo-N1j3-nINX-fnIFIA
Esercizi
- Crea due gruppi di volumi e crea volumi logici su entrambi con lo stesso nome.
- Aggiungi un altro volume fisico al tuo gruppo di volumi, quindi crea un volume logico che occupi l'intero gruppo di volumi. Ora prova a rimuovere uno dei volumi fisici.
- Prova a creare un volume logico che abbia le dimensioni esatte del gruppo di volumi.
- Crea un altro volume fisico su un disco, aggiungilo al tuo gruppo di volumi, quindi spegni la macchina e rimuovi il disco. Cosa significa
vgdisplay
dici sul disco mancante? - Aggiungi nuovamente il disco precedentemente rimosso. Viene riconosciuto al prossimo avvio?