Per aumentare il livello di sicurezza dei dati, gli sviluppatori implementano nuove tecnologie nei loro sistemi operativi. In questo articolo esamineremo LVM e risponderemo alle domande su cosa sia e quali siano i suoi principali vantaggi.
Contenuti
- Cos'è LVM e come funziona?
- Vantaggi e svantaggi di LVM
- Come lavorare con LVM?
- I tipi di volume in LVM?
- Come rimuovere o ridimensionare il volume LVM?
- Snapshot in LVM
- LVM + RAID e RAID + LVM
- Cosa fare se i dati sono stati persi?
Cos’è LVM e come funziona?
LVM (logical volume manager) è la tecnologia che consente di utilizzare alcune parti dello spazio del disco rigido (o di pochi dischi) e combinarle in un unico volume logico per ulteriori lavori. Grazie a questo, è possibile partizionare in modo più flessibile l’intero spazio del disco poiché non si è limitati da un solo disco rigido. LVM funziona anche con unità SSD.
Analizziamo più da vicino come funziona LVM.
Immagina di avere due dischi rigidi con uno spazio di memoria di 100 GB ciascuno (2 x 100 GB). Utilizzando la partizione regolare, puoi creare un volume massimo di 100 GB per ogni disco.
Se utilizzi LVM per questo scopo, puoi creare ad esempio un volume con uno spazio di 120 GB e il secondo con uno spazio di 80 GB. La cosa principale è che LVM crea un livello astratto che unisce lo spazio del disco per entrambi i dischi rigidi e quindi è possibile partizionare l’intero spazio del disco come si desidera.
Schematicamente appare così:
Tale effetto può essere realizzato utilizzando il sottosistema del mapper del dispositivo.
Le partizioni iniziali sono divise in blocchi o dispositivi a blocchi (volume fisico (pv)) e combinati in un singolo volume virtuale, o più precisamente, un gruppo di volumi (vg). Quindi, questo volume virtuale è diviso in volumi logici (lv). Per il file system, un volume logico è rappresentato come un dispositivo a blocchi regolare, anche se i singoli volumi fisici possono essere posizionati su diversi dispositivi fisici (e persino il volume fisico stesso può essere distribuito come un RAID).
Maggiori informazioni sul RAID possono essere trovate nell’articolo? Cos’è RAID e a cosa serve??
Vantaggi e svantaggi di LVM
Prima di utilizzare LVM, consideriamo i principali vantaggi e svantaggi del suo utilizzo. La cosa principale è che per alcune persone LVM sarà la soluzione migliore, mentre per altre sarà una completa delusione. Ma cominciamo dai vantaggi.
LVM funziona a livello del kernel. Garantisce la massima trasparenza della configurazione e dell’utilizzo del disco. I programmi saranno in grado di lavorare con partizioni logiche e virtuali LVM allo stesso modo di quelle normali.
Il principale vantaggio è la possibilità di creare, ridimensionare, rinominare i volumi senza riavviare il computer.
Puoi anche ridimensionare il tuo volume dinamicamente. Ciò significa che puoi creare un volume di piccole dimensioni prima e poi impostarlo per espandersi quando viene riempito.
Inoltre, puoi combinare qualsiasi numero di dischi in un pool logico, e quindi creare quanti volumi desideri. È veloce e facile.
Inoltre, LVM ti consente di creare snapshot di volumi logici senza interrompere il sistema operativo e di utilizzare le funzionalità avanzate di crittografia.
Come puoi vedere, LVM è adatto per i server domestici che memorizzano molti dati. LVM, insieme al file system veloce, può offrirti grandi opportunità di lavoro.
Puoi trovare ulteriori informazioni sulla scelta del file system nell’articolo “Quale file system è meglio usare?“.
Allo stesso tempo, la tecnologia LVM ha alcuni svantaggi che possono essere un ostacolo al suo utilizzo.
Il più importante svantaggio è il fatto che LVM aggiunge un altro livello virtuale che può influire sulle prestazioni del sistema. Non è essenziale per l’uso domestico, ma è particolarmente vero per i sistemi e i server fortemente carichi. Il problema è che anche la più piccola diminuzione delle prestazioni può avere un grande effetto sulla disponibilità dei dati del cliente. Come esempio, possiamo considerare l’hosting video. Poiché tali pool hanno un gran numero di connessioni da parte dei clienti, anche la più piccola diminuzione delle prestazioni può rendere il video non disponibile.
Un altro problema è che la creazione di snapshot comporta anche una diminuzione delle prestazioni. Ciò limita il loro utilizzo nei sistemi di produzione.
E l’ultimo svantaggio è il fatto che i moderni file system (come Btrfs e ZFS) supportano molte delle funzionalità di LVM (come il ridimensionamento online, la creazione di snapshot, ecc.). In alcuni casi, non ha senso utilizzare LVM.
Come lavorare con LVM?
L’opzione per configurare LVM è fornita durante l’installazione di qualsiasi distribuzione Linux moderna, ma come lavorarci? Di seguito troverai le istruzioni.
LVM consiste in tre livelli:
- volume fisico (uno o più);
- gruppo di volumi fisici (Volume Group (anche chiamato PV));
- volume logico (che sarà disponibile per i programmi (anche chiamato LV));
3.1 Come installare LVM?
La prima cosa da fare prima di creare LVM è installare il programma LVM2. Può essere fatto utilizzando il terminale e digitando il comando:
$ sudo apt install lvm2
Dopo aver installato LVM 2, puoi iniziare a lavorare con i tuoi dischi.
3.2 Come inizializzare i volumi fisici LVM?
Adesso dobbiamo inizializzare i volumi fisici LVM. Prima di tutto, dobbiamo decidere quali volumi utilizzeremo. Immaginiamo che saranno dev/sda6 e dev/sda7. Per inizializzarli eseguire il comando:
$ sudo pvcreate /dev/sda6 /dev/sda7
Per verificare se i volumi fisici sono stati inizializzati correttamente, utilizzare il comando:
$ sudo pvscan
Il sistema mostrerà tutti i volumi logici presenti nel sistema.
È possibile visualizzare anche gli attributi dettagliati utilizzando il seguente comando:
$ sudo pvdisplay
Se si desidera conoscere la dimensione del singolo blocco di memoria LVM, verificare l’attributo PE Size. Per impostazione predefinita, è di 4 MB, ma è possibile modificarlo in qualsiasi momento.
3.3 Come creare il gruppo di volumi LVM?
Il gruppo di volumi (VG) è la memoria totale che consiste in alcuni volumi fisici inizializzati. Questo pool può essere convertito in volumi logici e non sarete limitati dalla dimensione della memoria del disco fisico. Tutti i dischi all’interno del gruppo di volumi devono essere inizializzati.
Puoi creare il gruppo di volumi con il seguente comando:
$ sudo vgcreate vol_grp1 /dev/sda6 /dev/sda7
Ora, per verificare se tutto è a posto, utilizza il comando:
$ sudo vgdisplay
Ora siamo pronti per creare volumi logici.
3.4 Come creare volumi logici LVM?
I volumi logici LVM vengono creati con il comando lvcreate. Come ricorderete, con la tecnologia LVM non siete limitati dalle dimensioni fisiche di qualsiasi disco. Ciò significa che ora dividerete tutta la memoria di archiviazione del pool in un singolo volume logico.
Come ricorderete, avevamo due hard disk da 100 GB ciascuno. Ma ora creeremo due volumi logici: uno da 80 GB e uno da 120 GB. Utilizzate il seguente comando per farlo:
$ sudo lvcreate -L 80G -n logical_vol1 vol_grp1
dove 80G è la dimensione del volume.
Quindi, il comando per creare il volume da 100 GB sarà il seguente:
$ sudo lvcreate -L 100G -n logical_vol2 vol_grp1
Potete anche utilizzare le seguenti lettere per specificare la dimensione del volume:
- B — byte;
- K — kilobyte;
- M — megabyte;
- G — gigabyte;
- T — terabyte;
Per verificare l’elenco dei volumi logici creati, utilizzate il comando:
$ sudo lvdisplay
Se tutto è stato fatto correttamente, vedrete i volumi logici appena creati, inclusa l’informazione dettagliata su ogni volume.
3.5 Come montare il volume LVM?
In questa fase possiamo montare i nostri nuovi volumi logici. Ma prima, dobbiamo formattarli. Ciò può essere fatto come un volume regolare. Quindi, possiamo usare il comando standard:
$ sudo mkfs.ext4 /dev/vol_grp1/logical_vol1
$ sudo mkfs.ext4 /dev/vol_grp1/logical_vol2
dove logical_vol1 e logical_vol2 sono i nomi dei nostri volumi.
Per montare i volumi, utilizzare i comandi:
$ sudo mount /dev/vol_grp1/logical_vol1 /mnt/
$ sudo mount /dev/vol_grp1/logical_vol2 /mnt/
Ora, è possibile lavorare con i nostri volumi logici come con un’unità regolare.
Come si può vedere, il lavoro con i volumi logici è simile al lavoro con le unità regolari. È possibile formattarli, rinominarli e modificarli senza problemi.
I tipi di volume in LVM?
In LVM puoi utilizzare tre tipi di volume: Volume Lineare, Volume Striped e Volume Mirrored.
I Volume Lineari sono quelli utilizzati di default in LVM. In pratica, si tratta di volumi regolari senza funzioni aggiuntive. Non ci sono miglioramenti in termini di affidabilità o prestazioni. In effetti, è simile a RAID 0. Se vuoi conoscere la differenza tra LVM e RAID, leggi l’articolo Confronto e differenze tra RAID, LVM e mdadm.
I Volume Striped sono utili quando si vuole aumentare la velocità di lettura/scrittura del volume LVM. Possono essere creati con il comando:
$ sudo lvcreate -L 1G -i 2 -n logical_vol2 vol_grp1
dove -i è il numero di strisce (questo numero non può essere maggiore del numero di dischi fisici) e -L è la dimensione di una striscia (non può essere maggiore della dimensione del disco).
È una buona soluzione se non hai paura di perdere i dati. Se uno dei dischi fallisce, tutte le informazioni andranno perse. I Volume Striped LVM sono anche utilizzati se si vuole ridurre il carico sui dischi rigidi o SSD. Ma il problema è lo stesso: se un disco fallisce, si perderanno tutti i dati.
Il prossimo tipo di volume LVM è il volume mirrored. Questo volume è l’equivalente di RAID 1 e crea una copia dei dati su ogni disco del gruppo.
Questo metodo consente di salvare una copia dei dati. Se uno dei dischi fallisce, tutti i volumi verranno convertiti in lineari e sarà possibile leggere le informazioni. Tuttavia, un tale volume sarà molto più lento, poiché il computer dovrà scrivere i dati più volte.
Per creare un volume mirrored LVM, utilizza il comando:
$ sudo lvcreate -L 200M -m1 -n lv_mirror vol_grp1
Come rimuovere o ridimensionare il volume LVM?
In alcune situazioni, lo spazio libero del tuo volume LVM può esaurirsi. Non è un problema, poiché puoi aggiungere un nuovo hard disk al tuo gruppo LVM.
5.1 Come ridimensionare il volume logico?
È possibile ridimensionare i volumi logici, indipendentemente dallo spazio libero sul disco fisico. Se il pool di memoria ha uno spazio di archiviazione libero, è possibile utilizzarlo per qualsiasi volume logico. Ciò può essere fatto con il comando lvextend. Ridimensioniamo il nostro volume LVM da 80 GB a 100 GB. Per farlo, utilizzare il comando:
$ sudo lvextend -L+100G /dev/vol_grp1/logical_vol1
dove -L+100G è la nuova dimensione del volume.
Per ridurre il volume LVM, invece di +, utilizzare –
Quindi, il comando per ridurre il volume LVM sarà simile a questo:
$ sudo lvextend -L-100G /dev/vol_grp1/logical_vol1
5.2 Come rimuovere il volume LVM?
Se non hai bisogno del volume LVM, non c’è problema a eliminarlo. Ma fai attenzione prima di cancellare, poiché tutti i dati andranno persi. Per eliminare il volume LVM utilizza il comando:
$ sudo lvremove -f /dev/vol_grp1/lv_mirror
Ora, il tuo volume LVM è stato completamente eliminato.
Snapshot in LVM
La tecnologia LVM consente di creare snapshot. Questa funzionalità è molto utile se si devono apportare delle modifiche, ma non si è sicuri del risultato finale. È possibile creare uno snapshot e, in caso di problemi, tornare allo stato precedente. Allo stesso tempo, non è necessario arrestare la macchina, il che è particolarmente importante per i server in aziende produttive, dove molti dipendenti possono accedere ai dati.
Importante: lo snapshot non è un backup.
Quando si crea uno snapshot, tutti i processi di scrittura si fermano per pochi millisecondi (tutto dipende dalla quantità di dati e dalle prestazioni del server). L’utente normale non se ne accorge.
In caso di problemi, è possibile ripristinare rapidamente il server a una condizione funzionante.
Inoltre, gli snapshot non richiedono molta memoria libera, quindi sono molto utili.
Allo stesso tempo, non è possibile conservare lo snapshot per troppo tempo, poiché questo potrebbe rallentare il disco rigido e il sistema operativo. Per questo motivo, per il salvataggio a lungo termine, è più utile un backup regolare.
Per creare uno snapshot in LVM, utilizzare il comando:
Lvcreate -L 1G -s -n snap_vg_data /dev/mapper/vg_data-lv_data
dove -L 1G è la quantità di memoria riservata per lo snapshot e vg_data-lv_data è il nome dello snapshot.
Per verificare le informazioni dettagliate sullo snapshot, utilizzare il comando:
lvdisplay /dev/vg_data/snap_vg_data
Come si può vedere, è facile e veloce creare snapshot in LVM.
LVM + RAID e RAID + LVM
Molti utenti si chiedono: è possibile creare un volume LVM basato su array RAID e viceversa? creare un array RAID basato su volumi LVM?
La risposta è “sì”. Ma ci sono alcuni dettagli che dovresti conoscere prima di iniziare tale processo.
Se vuoi creare un array RAID basato su volumi LVM, devi sapere come LVM distribuisce i dati. Il volume LVM riempirà il primo disco, quando il secondo disco non verrà utilizzato (durante la distribuzione lineare dei dati). Questo processo è mostrato nell’immagine qui sotto:
Tale caso è un grande problema per i dischi SSD, poiché aumenta notevolmente l’usura del disco riempito e le prestazioni diminuiranno significativamente. Anche se utilizzerai il metodo di parità (due gruppi di dischi con parità), ciò non cambierà la situazione. Il problema è che la parità verrà utilizzata all’interno del gruppo, ma non tra tutti i dischi. Il riempimento del secondo gruppo inizierà solo quando il primo gruppo sarà pieno.
Ecco perché il volume LVM basato su array RAID è più preferibile. L’utilità mdadm distribuirà correttamente il carico tra i dischi e sarai in grado di aggiungere i dischi al tuo storage. Il problema è il fatto che LVM è difficile da amministrare. Devi conoscere molte comandi per lavorare correttamente con esso.
Quindi, se non sei un esperto di Linux, questa non è la tua scelta. In tal caso, è meglio utilizzare un array RAID regolare, poiché Windows e Mac OS non possono lavorare con LVM.
Cosa fare se i dati sono stati persi?
L’utilizzo di tecnologie progettate per aumentare la sicurezza dei dati o la flessibilità dell’allocazione dello spazio su disco non sempre finisce bene. In alcuni casi, può creare più problemi rispetto all’utilizzo di dischi regolari. Questo è particolarmente vero per gli utenti inesperti che vogliono ottenere qualcosa di più dalla configurazione del loro computer, ma non sanno come gestire correttamente la costruzione del disco. Ecco perché è importante sapere cosa fare se importanti dati vengono persi.
Prima di tutto, non c’è bisogno di panico e utilizzare lo strumento professionale per il recupero dati.
Attualmente, la soluzione più efficace per recuperare importanti dati da un array RAID è RS RAID Retrieve.
Il costruttore RAID integrato costruirà il tuo array RAID o volume LVM, e sarai in grado di spostare le tue informazioni in un luogo sicuro.
Analizziamo più da vicino come puoi recuperare i dati:
Passaggio 1: Scarica e installa RS RAID Retrieve. Avvia l’applicazione dopo l’installazione. Il “costruttore RAID” integrato si aprirà davanti a te. Fai clic su “Avanti“
Passaggio 2: Scegli il metodo di aggiunta di un array RAID o volume LVM per la scansione. RS RAID Retrieve offre tre opzioni tra cui scegliere:
- Modalità automatica – ti consente di specificare semplicemente i dischi che compongono l’array o il volume LVM, e il programma determinerà automaticamente il loro ordine, il tipo di array e altri parametri;
- Ricerca per produttore – questa opzione dovrebbe essere scelta se conosci il produttore del tuo controller RAID. Questa opzione è anche automatica e non richiede alcuna conoscenza sulla struttura dell’array RAID. Avere le informazioni del produttore consente di ridurre il tempo per la costruzione dell’array, ed è quindi più veloce rispetto alla precedente opzione;
- Creazione manuale – questa opzione vale la pena usarla se sai che tipo di RAID stai usando. In questo caso, puoi specificare tutti i parametri che conosci e quelli che non conosci – il programma determinerà automaticamente
Dopo aver selezionato l’opzione appropriata – fai clic su “Avanti“.
Passaggio 3: Seleziona i dischi che compongono l’array RAID o il volume LVM e fai clic su “Avanti“. Inizierà il processo di rilevamento delle configurazioni dell’array. Quando è completo, fai clic su “Termina“.
Passaggio 4: Dopo che il costruttore ha costruito il volume LVM (o l’array RAID basato sui volumi LVM) – apparirà come un disco regolare. Fai doppio clic su di esso. Si aprirà davanti a te la Guida al ripristino file. Fai clic su “Avanti“
Passaggio 5: RS RAID Retrieve ti offrirà di eseguire la scansione del tuo array o LVM per file da recuperare. Avrai due opzioni: una scansione rapida e una analisi completa dell’array. Seleziona l’opzione desiderata. Quindi seleziona il tipo di sistema di file utilizzato sull’array. Se non conosci queste informazioni, controlla tutte le opzioni disponibili, come nella schermata. Vale la pena notare che RS RAID Retrieve supporta TUTTI i moderni sistemi di file.
Passaggio 6: Inizierà il processo di scansione. Quando termina, vedrai la struttura precedente di file e cartelle. Trova i file necessari, fai clic con il tasto destro su di essi e seleziona “Ripristino“
Passaggio 7: Specifica la posizione in cui verranno salvati i file recuperati. Questo può essere un disco rigido, un archivio ZIP o un server FTP. Fai clic su “Avanti“
Dopo aver fatto clic sul pulsante “Avanti“, il programma inizierà il processo di ripristino. Quando termina – troverai i file selezionati nella posizione specificata.
Dopo che tutti i file sono stati ripristinati con successo – ricrea il volume LVM e quindi copia i file indietro.
Come puoi vedere, con RS RAID Retrieve è facile estrarre importanti dati dal LVM rotto. Inoltre, non hai bisogno di alcun software o hardware aggiuntivo. Collega semplicemente i dischi al tuo PC e utilizza le istruzioni sopra. Veloce e facile.