Skip to content

Quali sono i vantaggi di Logical Volume Manager?

Finalmente, dopo tanto lavoro, siamo riusciti a trovare il risultato di questo pantano che molti dei nostri utenti di questo spazio presentano. Se vuoi fornire qualche dettaglio puoi contribuire con le tue conoscenze.

Soluzione:

Soluzione 1:

Tratto direttamente dal mio blog:
http://www.standalone-sysadmin.com/blog/2008/09/introduction-to-lvm-in-linux/

Prima di tutto, parliamo della vita senza LVM. Ai vecchi tempi, si aveva un disco rigido. Questo disco rigido poteva avere delle partizioni. Si potevano installare file system su queste partizioni e poi usare quei file system. In salita in entrambi i sensi. L'aspetto è molto simile a questo:

C'è l'unità vera e propria, in questo caso sda. Su questo disco ci sono due partizioni, sda1 e sda2. C'è anche dello spazio libero inutilizzato. Ciascuna delle partizioni ha un filesystem montato. Il tipo di filesystem è arbitrario. Si può chiamare ext3, reiserfs o altro. La cosa importante da notare è che esiste una correlazione diretta uno a uno tra le partizioni del disco e i possibili file system.

Aggiungiamo la gestione di un volume logico che ricrea la stessa struttura:

Ora si vedono le stesse partizioni, ma c'è un livello sopra le partizioni chiamato "Gruppo di volumi", letteralmente un gruppo di volumi, in questo caso partizioni del disco. Si potrebbe pensare a questo come a una sorta di disco virtuale che si può partizionare. Dal momento che la configurazione precedente è esattamente identica, non è ancora possibile vedere i punti di forza del sistema. Si può notare che sopra il gruppo di volumi sono stati creati dei volumi logici, che possono essere considerati come partizioni virtuali, ed è su questi che costruiamo i nostri file system.

Vediamo cosa succede quando aggiungiamo più di un volume fisico:

Qui abbiamo tre dischi fisici, sda, sdb e sdc. Ognuno dei primi due dischi ha una partizione che occupa l'intero spazio. L'ultimo, sdc, ha una partizione che occupa metà del disco e metà dello spazio libero non partizionato.

Si può vedere il gruppo di volumi sopra che include tutti i volumi attualmente disponibili. Qui si trova uno dei maggiori punti di forza. È possibile creare una partizione logica grande quanto la somma dei dischi. Per molti versi è simile al funzionamento del livello 0 di RAID, ma non c'è alcuno striping. I dati vengono scritti per lo più in modo lineare. Se avete bisogno di ridondanza o dell'aumento delle prestazioni offerto dal RAID, assicuratevi di collocare i volumi logici sopra gli array RAID. Le fette RAID funzionano esattamente come i dischi fisici.

Ora, abbiamo questo gruppo di volumi che occupa 2 dischi e mezzo. È stato suddiviso in due volumi logici, il primo dei quali è più grande di tutti i dischi. Ai volumi logici non interessa quanto siano grandi i dischi fisici, poiché tutto ciò che vedono è che sono stati ricavati da myVolumeGroup01. Questo livello di astrazione è importante, come vedremo.

Cosa succede se decidiamo di avere bisogno dello spazio inutilizzato, perché abbiamo aggiunto altri utenti?

Normalmente ci troveremmo in difficoltà se usassimo la mappatura uno a uno, ma con i volumi logici, ecco cosa possiamo fare:

Qui abbiamo preso lo spazio precedentemente libero su /dev/sdc e abbiamo creato /dev/sdc2. Poi lo abbiamo aggiunto all'elenco dei volumi che compongono myVolumeGroup01. Una volta fatto questo, siamo stati liberi di espandere i volumi logici come necessario. Poiché abbiamo aggiunto utenti, abbiamo ampliato myLogicalVolume2. A quel punto, finché il filesystem /home lo supportava, eravamo liberi di espanderlo per riempire lo spazio extra. Tutto questo perché abbiamo astratto il nostro storage dai dischi fisici su cui risiede.

Bene, questo spiega il perché della gestione dei volumi logici. Poiché sono sicuro che non vedete l'ora di saperne di più su come preparare e costruire i vostri sistemi, ecco alcune risorse eccellenti per iniziare:

http://www.pma.caltech.edu/~laurence/Linux/lvm.html
http://www.freeos.com/articles/3921/
http://www.linuxdevcenter.com/pub/a/linux/2006/04/27/managing-disk-space-with-lvm.html

Soluzione 2:

È possibile utilizzare LVM per fare molte cose con i dischi. Il vantaggio principale è la possibilità di far crescere i filesystem al volo. Supponiamo che stiate configurando un server di log e sappiate che in futuro avrete una tonnellata di dati. Ext3 supporta un massimo di 16 TB (di più, a seconda del kernel e della versione di EL). Ma cosa succede se si sa che tra 2 anni si avrà bisogno di 1PB di spazio di archiviazione? Questo crea alcuni problemi. Innanzitutto, il vostro capo vi guarderà con occhi da cerbiatto quando gli direte il prezzo dell'hardware di archiviazione. Questo porta a un altro problema: è necessario iniziare con una soluzione piccola che possa essere scalata verso l'alto. LVM offre questa possibilità. Si inizia con pochi dischi. Poi se ne aggiungono altri, li si trasforma in un gruppo logico, li si aggiunge al primo volume logico, si aumenta la dimensione del volume e infine si aumenta il filesystem. Voilà, si ottiene un bel filesystem scalabile.

In questo modo si evita di dover spostare i dati dal dispositivo, riformattare le LUN e poi spostare tutto di nuovo per eseguire un aggiornamento. Scusate la brevità, spero che abbia senso.

Edit: devo anche notare che se avete a che fare con 1PB, non vorrete usare Ext3.probabilmente XFS.


Soluzione 3:

Ci sono diversi vantaggi indiretti di LVM. La cosa principale che LVM fa è astrarre i dischi fisici dal sistema operativo. Il vantaggio principale è semplicemente flessibilità. La maggior parte dei vantaggi di LVM si realizza solo quando si dispone di un filesystem che supporta il ridimensionamento al volo. Le funzioni di base di LVM sono descritte di seguito:

Le partizioni di sistema esistono un livello sopra il disco

Senza LVM, Linux utilizza le partizioni situate fisicamente sul disco. Le partizioni sono nomi diretti di dispositivi. La tabella delle partizioni risiede nel MBR e normalmente (nel caso di partizioni logiche estese) nel record di avvio esteso (che consente di creare un numero maggiore di partizioni). Le partizioni definiscono un dimensione e tipo tra gli altri attributi (più specificamente, definiscono un cilindro iniziale e uno finale che essenzialmente definisce la dimensione). Poiché sono così strettamente legati al disco, è importante impostare uno schema di partizionamento "corretto" al momento dell'installazione. Se improvvisamente una funzione della macchina cambia o se siete alle prime armi e non avete capito le implicazioni del partizionamento, o se avete sottovalutato l'uso del disco da qualche parte, o i log di una particolare applicazione, cambiare il partizionamento può essere complicato. Esistono strumenti per farlo, ma in genere è necessario spostare i dati dalla partizione per modificarla. Ovviamente, se si hanno quattro partizioni, la modifica del cilindro finale della seconda partizione si ripercuote sui cilindri iniziali della terza e della quarta partizione e quindi si crea una situazione complicata.

I più ingenui sostengono l'uso di un'unica partizione di grandi dimensioni, ma si rischia di perdere il controllo quando è necessario introdurre le quote o isolare i processi anomali che riempiono parti del sistema (ad esempio, /var/log, /tmp ecc.).

I vantaggi di questa soluzione sono:

Aggiunta/rimozione di spazio di archiviazione

L'aggiunta di storage è generalmente banale. Se si utilizza un RAID hardware o software e si aggiungono altri dischi, spesso è necessario armeggiare con i link simbolici per ricostruire l'array RAID in modo che Linux renda disponibile il nuovo storage nelle posizioni desiderate.

Prendiamo l'esempio di una grande directory /home che sta diventando piena. Questa esiste su un volume RAID 1 a due dischi. Si vogliono aggiungere altri due dischi. Li si imposta in una configurazione RAID 1 hardware. Senza LVM, si hanno un paio di opzioni:

  1. Ricostruire l'intero array raid in una configurazione 1+0 che richiede lo spostamento dei dati dalla macchina, la ricostruzione e il successivo spostamento.
  2. Creare un nuovo gruppo di volumi RAID 1 separato. Linux ha già il primo volume RAID montato su /home, quindi è necessario montare il secondo volume RAID su /home1 o simili. Ora, per ottenere i percorsi appropriati per gli utenti che siano coerenti con il primo, potrebbe essere necessario utilizzare i collegamenti simbolici per ottenere lo stesso effetto. Inoltre questa soluzione richiede una manutenzione costante del volume RAID originale e potenzialmente la migrazione dei dati dalla partizione originale.

Con LVM, si può semplicemente aggiungere il nuovo gruppo di volumi RAID 1 al pool di memoria aggiuntivo, ridimensionare il filesystem (sempre che lo supporti) e voilà, /home è ora improvvisamente più grande. Non è necessario effettuare alcun collegamento simbolico o manutenzione per spostare potenzialmente i dati da /home a /home1 o viceversa. Sciacquare, lavare, ripetere per i futuri aggiornamenti del disco.

Manutenzione online

La maggior parte delle operazioni LVM, a condizione che l'hardware le supporti, possono essere eseguite online, senza riavviare la macchina. Se è possibile scambiare a caldo i dischi di un sistema, è possibile aggiungere nuovi dischi e successivamente rimuovere quelli vecchi (magari più piccoli) per aumentare i requisiti di archiviazione del sistema.

Uno dei problemi principali dei volumi LVM è che, quando si avvicinano alla capacità, la frammentazione può diventare un problema. Volumi >90% e >95% possono significare una cattiva frammentazione sul disco, a seconda dell'uso del disco e dei tipi di file. È raro che sia qualcosa di cui preoccuparsi eccessivamente, come nel caso di qualsiasi tipo di gestione dei volumi e delle partizioni, ma in questo caso il problema è la frammentazione a livello di volume e non di partizione.

Se scorri puoi trovare le osservazioni di altri programmatori, puoi anche mostrare le tue se lo ritieni opportuno.



Utilizzate il nostro motore di ricerca

Ricerca
Generic filters

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.