18Aug

Come gestire e utilizzare LVM( Logical Volume Management) in Ubuntu

Nel nostro precedente articolo vi abbiamo detto cosa è LVM e cosa vorreste usarlo, e oggi vi illustreremo alcuni degli strumenti di gestione delle chiavi di LVM in modo da essere sicuri della configurazione o dell'espansione della vostra installazione.

Come affermato in precedenza, LVM è uno strato di astrazione tra il sistema operativo e i dischi rigidi fisici. Ciò significa che i dischi rigidi fisici e le partizioni non sono più legati ai dischi rigidi e alle partizioni su cui risiedono. Piuttosto, le unità disco e le partizioni visualizzate dal sistema operativo possono essere un numero qualsiasi di dischi rigidi separati raggruppati insieme o in un RAID software.

Per gestire LVM sono disponibili strumenti GUI, ma per capire veramente cosa sta succedendo con la configurazione LVM è probabilmente meglio sapere quali sono gli strumenti della riga di comando. Ciò sarà particolarmente utile se gestisci LVM su un server o una distribuzione che non offre strumenti GUI.

La maggior parte dei comandi in LVM sono molto simili tra loro. Ogni comando valido è preceduto da uno dei seguenti:

  • Physical Volume = pv
  • Volume Group = vg
  • Logical Volume = lv

I comandi del volume fisico servono per aggiungere o rimuovere i dischi rigidi nei gruppi di volumi. I comandi del gruppo di volumi servono a modificare il set di partizioni astratte delle partizioni fisiche che vengono presentate al funzionamento in volumi logici. I comandi del volume logico presenteranno i gruppi di volumi come partizioni in modo che il sistema operativo possa utilizzare lo spazio designato.

Cheat Sheet LVM scaricabili

Per aiutarti a capire quali comandi sono disponibili per ogni prefisso abbiamo creato un cheat LVM.Tratteremo alcuni dei comandi di questo articolo, ma c'è ancora molto che puoi fare che non sarà trattato qui.

Tutti i comandi di questo elenco dovranno essere eseguiti come root perché si stanno modificando le impostazioni del sistema che interesseranno l'intera macchina.

( Fare clic sulla miniatura per un'immagine a dimensione intera)

Come visualizzare le informazioni LVM attuali

La prima cosa che potrebbe essere necessario è verificare come è configurato il LVM.I comandi s e display funzionano con volumi fisici( pv), gruppi di volumi( vg) e volumi logici( lv), quindi è un buon punto di partenza quando si cerca di capire le impostazioni correnti.

Il comando di visualizzazione formatta le informazioni in modo che sia più facile da capire rispetto al comando s. Per ogni comando vedrai il nome e il percorso di pv / vg e dovrebbe anche dare informazioni sullo spazio libero e usato.

Le informazioni più importanti saranno il nome PV e il nome VG.Con queste due informazioni possiamo continuare a lavorare sulla configurazione LVM.

Creazione di un volume logico

I volumi logici sono le partizioni utilizzate dal sistema operativo in LVM.Per creare un volume logico dobbiamo prima avere un volume fisico e un gruppo di volumi. Ecco tutti i passaggi necessari per creare un nuovo volume logico.

Crea volume fisico

Iniziamo da zero con un nuovo disco rigido senza partizioni o informazioni su di esso. Inizia trovando con quale disco lavorerai.(/dev/ sda, sdb, ecc.)

Nota: Ricordare che tutti i comandi dovranno essere eseguiti come root o aggiungendo "sudo" all'inizio del comando.

fdisk -l

Se il disco rigido non è mai stato formattato o partizionato prima probabilmente si vedrà qualcosa di simile nell'output fdisk. Questo è completamente a posto perché stiamo andando a creare le partizioni necessarie nei prossimi passi.

Il nostro nuovo disco si trova su /dev/ sdb, quindi usiamo fdisk per creare una nuova partizione sull'unità.

Ci sono una miriade di strumenti che possono creare una nuova partizione con una GUI, incluso Gparted, ma dato che abbiamo già il terminale aperto, useremo fdisk per creare la partizione necessaria.

Da un terminale digitare i seguenti comandi:

fdisk /dev/ sdb

Questo ti metterà in un prompt di fdisk speciale.

Immettere i comandi nell'ordine indicato per creare una nuova partizione primaria che utilizza il 100% del nuovo disco rigido ed è pronta per LVM.Se hai bisogno di modificare le dimensioni della partizione o vuoi più partions ti suggerisco di usare GParted o di leggere fdisk da solo.

Avvertenza: i seguenti passaggi formatteranno il tuo disco rigido. Assicurati di non avere alcuna informazione su questo disco rigido prima di seguire questi passaggi.

  • n = crea una nuova partizione
  • p = crea una partizione primaria
  • 1 = effettua la prima partizione sul disco

Premi invio due volte per accettare il primo cilindro e l'ultimo cilindro di default.

Per preparare la partizione da utilizzare da LVM, utilizzare i due comandi seguenti.

  • t = modifica il tipo di partizione
  • 8e = modifiche al tipo di partizione LVM

Verificare e scrivere le informazioni sul disco rigido.

  • p = visualizza l'installazione delle partizioni in modo da poterle esaminare prima di scrivere le modifiche al disco
  • w = scrivere le modifiche sul disco

Dopo questi comandi, il prompt fdisk dovrebbe uscire e si tornerà al prompt bash del terminale.

Immettere pvcreate /dev/ sdb1 per creare un volume fisico LVM sulla partizione appena creata.

Ci si potrebbe chiedere perché non abbiamo formattato la partizione con un file system, ma non preoccupatevi, questo passo viene dopo.


Crea volume Gruppo

Ora che abbiamo una partizione designata e il volume fisico creato, dobbiamo creare il gruppo di volumi. Fortunatamente questo richiede solo un comando.

vgcreate vgpool /dev/ sdb1

Vgpool è il nome del nuovo gruppo di volumi che abbiamo creato. Puoi nominarlo come preferisci, ma ti consigliamo di mettere vg nella parte anteriore dell'etichetta, quindi se fai riferimento in un secondo momento saprai che si tratta di un gruppo di volumi.

Crea volume logico

Per creare il volume logico utilizzato da LVM:

lvcreate -L 3G -n lvstuff vgpool

Il comando -L indica la dimensione del volume logico, in questo caso 3 GB e il comando -n assegna un nome alvolume. Vgpool è referenziato in modo che il comando lvcreate sappia da quale volume ottenere lo spazio.

Formattare e montare il volume logico

Un ultimo passo è formattare il nuovo volume logico con un file system. Se vuoi aiuto nella scelta di un file system Linux, leggi il nostro modo per aiutarti a scegliere il miglior file system per le tue esigenze.

mkfs -t ext3 /dev/vgpool/ lvstuff

Creare un punto di montaggio e quindi montare il volume da qualche parte in cui è possibile utilizzarlo.

mkdir /mnt/ roba
mount -t ext3 /dev/vgpool/ lvstuff /mnt/ roba

Ridimensionamento di un volume logico

Uno dei vantaggi dei volumi logici è che è possibile aumentare o ridurre fisicamente le condivisioni senza dover spostare tutto su un disco rigido più grande. Invece, puoi aggiungere un nuovo disco rigido ed estendere il tuo gruppo di volumi al volo. O se si dispone di un disco rigido non utilizzato, è possibile rimuoverlo dal gruppo di volumi per ridurre il volume logico.

Esistono tre strumenti di base per rendere più grandi o più piccoli volumi fisici, gruppi di volumi e volumi logici.

Nota: Ognuno di questi comandi dovrà essere preceduto da pv, vg o lv a seconda di cosa si sta lavorando. Ridimensionamento

  • - può ridurre o espandere i volumi fisici ei volumi logici ma non i gruppi di volumi Estendere
  • - può ridurre i gruppi di volumi ei volumi logici ma non è più piccolo Ridurre
  • - può rendere gruppi di volumi e volumi logici più piccoli ma non più grandi

Passiamo attraverso un esempiodi come aggiungere un nuovo disco rigido al volume logico "lvstuff" che abbiamo appena creato.

Installa e formatta il nuovo disco rigido

Per installare un nuovo disco rigido, segui i passaggi precedenti per creare una nuova partizione e aggiungere la modifica al suo tipo di partizione su LVM( 8e).Quindi utilizzare pvcreate per creare un volume fisico che LVM può riconoscere.

Aggiungi nuovo disco rigido al gruppo di volumi

Per aggiungere il nuovo disco rigido a un gruppo di volumi, è sufficiente conoscere la nuova partizione, /dev/ sdc1 nel nostro caso e il nome del gruppo di volumi a cui si desidera aggiungerlo.

Questo aggiungerà il nuovo volume fisico al gruppo di volumi esistente.

vgextend vgpool /dev/ sdc1

Estendi volume logico

Per ridimensionare il volume logico dobbiamo dire quanto vogliamo estendere per dimensione invece che per dispositivo. Nel nostro esempio abbiamo aggiunto un disco rigido da 8 GB al nostro vgpool da 3 GB.Per rendere utilizzabile questo spazio possiamo usare lvextend o lvresize.

lvextend -L8G /dev/vgpool/ lvstuff

Mentre questo comando funziona, vedrete che ridimensionerà effettivamente il nostro volume logico a 8 GB invece di aggiungere 8 GB al volume esistente come volevamo. Per aggiungere gli ultimi 3 gigabyte disponibili è necessario utilizzare il seguente comando.

lvextend -L + 3G /dev/vgpool/ lvstuff

Ora il nostro volume logico ha una dimensione di 11 GB.

Estendi file system

Il volume logico è di 11 GB ma il file system su quel volume è ancora solo 3 GB.Per fare in modo che il file system utilizzi tutti gli 11 GB disponibili, è necessario utilizzare il comando resize2fs. Punta semplicemente resize2fs al volume logico da 11 GB e farà la magia per te.

resize2fs /dev/vgpool/ lvstuff

Nota: se si utilizza un file system diverso oltre a ext3 / 4, consultare gli strumenti di ridimensionamento dei file system.

Shrink Volume logico

Se si desidera rimuovere un disco rigido da un gruppo di volumi, è necessario seguire i passaggi precedenti in ordine inverso e utilizzare invece lvreduce e vgreduce.

  1. ridimensiona il file system( assicurati di spostare i file in un'area sicura del disco rigido prima di ridimensionarlo)
  2. riduci il volume logico( anziché + per estendere puoi anche usare - per ridimensionare)
  3. rimuovi il disco rigido dal gruppo di volumi con vgreduce

Backup di un volume logico

Snapshots è una funzionalità che include alcuni nuovi file system avanzati ma ext3 / 4 non ha la capacità di eseguire istantanee al volo. Una delle cose più interessanti delle istantanee LVM è che il tuo file system non viene mai portato offline e puoi averne quante ne vuoi senza occupare spazio extra su disco rigido.

Quando LVM acquisisce un'istantanea, viene scattata una fotografia di come appare esattamente il volume logico e che l'immagine può essere utilizzata per eseguire una copia su un diverso disco rigido. Mentre viene eseguita una copia, qualsiasi nuova informazione che deve essere aggiunta al volume logico viene scritta sul disco come normale, ma i cambiamenti vengono tracciati in modo che l'immagine originale non venga mai distrutta.

Per creare un'istantanea, è necessario creare un nuovo volume logico con spazio libero sufficiente per contenere qualsiasi nuova informazione che verrà scritta nel volume logico mentre facciamo un backup. Se l'unità non viene scritta attivamente, è possibile utilizzare una quantità minima di spazio di archiviazione. Una volta terminato il backup, rimuoviamo il volume logico temporaneo e il volume logico originale continuerà normalmente.

Crea nuova istantanea

Per creare un'istantanea di lvstuff usa il comando lvcreate come prima, ma usa l'opzione -s.

lvcreate -L512M -s -n lvstuffbackup /dev/vgpool/ lvstuff

Qui abbiamo creato un volume logico con solo 512 MB poiché l'unità non viene utilizzata attivamente. I 512 MB memorizzeranno tutte le nuove scritture mentre facciamo il nostro backup.

Monta nuova istantanea

Proprio come prima dobbiamo creare un punto di montaggio e montare la nuova istantanea in modo da poter copiare i file da essa.

mkdir /mnt/ lvstuffbackup
monta /dev/vgpool/ lvstuffbackup /mnt/ lvstuffbackup

Copia istantanea e cancella il volume logico

Tutto quello che ti rimane da fare è copiare tutti i file da /mnt/lvstuffbackup/ su un disco rigido esterno o caricarlo in modo che sia tutto in un unico file.

Nota: tar -c creerà un archivio e -f dirà la posizione e il nome del file dell'archivio. Per aiuto con il comando tar usa man tar nel terminale.

tar -cf /home/rothgar/Backup/ lvstuff-ss /mnt/lvstuffbackup/

Ricordare che mentre il backup è in corso, tutti i file che verrebbero scritti su lvstuff verranno tracciati nel volume logico temporaneo creato in precedenza. Assicurati di avere abbastanza spazio libero durante il backup.

Al termine del backup, smontare il volume e rimuovere lo snapshot temporaneo.

umount /mnt/ lvstuffbackup
lvremove /dev/vgpool/lvstuffbackup/

Eliminazione di un volume logico

Per eliminare un volume logico è necessario innanzitutto assicurarsi che il volume sia smontato, quindi è possibile utilizzare lvremove per eliminarlo.È inoltre possibile rimuovere un gruppo di volumi una volta eliminati i volumi logici e un volume fisico dopo aver eliminato il gruppo di volumi.

Ecco tutti i comandi che usano i volumi e i gruppi che abbiamo creato.

umount /mnt/ lvstuff
lvremove /dev/vgpool/ lvstuff
vgremove vgpool
pvremove /dev/ sdb1 /dev/ sdc1

Questo dovrebbe coprire la maggior parte di ciò che è necessario sapere per utilizzare LVM.Se hai qualche esperienza sull'argomento, assicurati di condividere la tua saggezza nei commenti.