Quali sono le caratteristiche e i potenziali vantaggi di Logical Volume Manager oltre a quanto dettagliato nella sua pagina Wikipedia?
Quali sono le caratteristiche e i potenziali vantaggi di Logical Volume Manager oltre a quanto dettagliato nella sua pagina Wikipedia?
Risposte:
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, avevi un disco rigido. Questo disco rigido potrebbe avere partizioni. È possibile installare i file system su queste partizioni e quindi utilizzare tali file system. In salita in entrambi i modi. Sembrava molto simile a questo:
Hai il disco vero e proprio, in questo caso sda. Su quell'unità ci sono due partizioni, sda1 e sda2. C'è anche dello spazio libero inutilizzato. Ciascuna delle partizioni ha un filesystem su di esso, che è montato. Il tipo di file system effettivo è arbitrario. Potresti chiamarlo ext3, reiserfs o come hai. La cosa importante da notare è che esiste una correlazione diretta uno a uno tra le partizioni del disco e i possibili file system.
Consente di aggiungere un po 'di gestione del volume logico che ricrea la stessa struttura esatta:
Ora vedi le stesse partizioni, tuttavia sopra le partizioni c'è un livello chiamato "Gruppo di volumi", letteralmente un gruppo di volumi, in questo caso partizioni del disco. Potrebbe essere accettabile pensare a questo come a una specie di disco virtuale che puoi partizionare. Dal momento che stiamo abbinando esattamente la nostra configurazione precedente, non puoi ancora vedere i punti di forza del sistema. Potresti notare che sopra il gruppo di volumi abbiamo creato volumi logici, che potrebbero essere pensati 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, con metà dello spazio libero non partizionato.
Possiamo vedere il gruppo di volumi sopra quello che include tutti i volumi attualmente disponibili. Qui sta uno dei maggiori punti di vendita. È possibile creare una partizione logica grande quanto la somma dei dischi. In molti modi, questo è simile a come funziona il livello RAID 0, tranne per il fatto che non esiste alcun striping. I dati sono scritti per la maggior parte in modo lineare. Se è necessaria la ridondanza o le prestazioni aumentate fornite dal RAID, assicurarsi di posizionare i volumi logici in cima agli array RAID. Le sezioni RAID funzionano esattamente come i dischi fisici qui.
Ora, abbiamo questo gruppo di volumi che occupa 2 e 1/2 dischi. È stato scolpito in due volumi logici, il primo dei quali è più grande di uno qualsiasi dei dischi. Ai volumi logici non importa quanto siano grandi i dischi fisici reali, poiché vedono solo che sono scolpiti da myVolumeGroup01. Questo strato di astrazione è importante, come vedremo.
Cosa succede se decidiamo che abbiamo bisogno dello spazio inutilizzato, perché abbiamo aggiunto più utenti?
Normalmente ci sarebbe un po 'di dolore se usassimo il mapping uno a uno, ma con volumi logici, ecco cosa possiamo fare:
Qui abbiamo preso lo spazio precedentemente libero su / dev / sdc e creato / dev / sdc2. Quindi l'abbiamo aggiunto all'elenco dei volumi che comprendono myVolumeGroup01. Una volta fatto ciò, eravamo liberi di espandere uno dei volumi logici, se necessario. Da quando abbiamo aggiunto gli utenti, abbiamo sviluppato myLogicalVolume2. A quel punto, fintanto che il filesystem / home lo supportava, eravamo liberi di coltivarlo per riempire lo spazio extra. Tutto perché abbiamo estratto la nostra memoria dai dischi fisici su cui vive.
Va bene, questo copre il perché di base della gestione del volume logico. Dal momento che sono sicuro che hai voglia di saperne di più su come preparare e costruire i tuoi sistemi, ecco alcune eccellenti risorse 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
Puoi usare LVM per fare molte cose con i dischi. Il vantaggio principale è la possibilità di far crescere al volo i filesystem. Supponiamo che tu stia configurando un server di log e che in futuro avrai un sacco di dati. Ext3 supporta un massimo di 16 TB (più a seconda del kernel e della versione di EL). E se lo sapessi tra 2 anni avrai bisogno di 1 PB di spazio di archiviazione? Bene, questo crea alcuni problemi. Innanzitutto, il tuo capo ti guarderà con i cervi negli occhi dei fari quando gli dici il prezzo di quell'hardware di archiviazione. Ciò porta a un altro problema: è necessario iniziare con una piccola soluzione che è possibile scalare verso l'alto. LVM ti offre questa opzione. Inizi con alcuni dischi. Quindi ne aggiungi altri, li trasformi in un gruppo logico, li aggiungi al primo volume logico, aumenti le dimensioni del volume e infine aumenti il filesystem. Voila, tu '
Questo ti evita di dover spostare i dati dal dispositivo, riformattare i LUN e quindi spostare tutto indietro per eseguire un aggiornamento. Scusate la brevità, spero che abbia senso.
Modifica: dovrei anche notare che se hai a che fare con 1PB, non vorrai usare Ext3 ... probabilmente XFS.
Vi sono numerosi vantaggi indiretti di LVM. La cosa principale che LVM fa è estrarre i dischi fisici dal sistema operativo . Il vantaggio principale di questo è semplicemente la flessibilità . La maggior parte dei vantaggi di LVM sono realizzati solo quando si dispone di un filesystem che supporta il ridimensionamento al volo. La cosa di base che LVM fa è descritta di seguito:
Le partizioni di sistema esistono uno strato sopra il disco
Senza LVM, Linux utilizza le partizioni posizionate fisicamente sul disco. Le partizioni sono nomi di dispositivi diretti. La tabella delle partizioni risiede nell'MBR e normalmente (nel caso di partizioni estese logiche) nel record di avvio esteso (che consente di creare un numero maggiore di partizioni). Le partizioni definiscono una dimensione e un tipotra gli altri attributi (più specificamente, definiscono un cilindro di inizio e fine che definisce essenzialmente 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 sei un principiante e non hai capito le implicazioni del partizionamento, o se stai sottovalutando l'utilizzo del disco da qualche parte o i registri di una particolare applicazione, cambiare quel partizionamento può essere ingombrante. Esistono strumenti per farlo, ma in genere è necessario spostare i dati dalla partizione per modificarli. Ovviamente, se hai quattro partizioni, cambiando gli effetti del cilindro di fine della seconda partizione, la terza e la quarta partizione iniziano i cilindri e quindi ti trovi in una situazione disordinata.
L'ingenuo può sostenere l'uso di una singola grande partizione, ma potresti annullarti quando devi introdurre quote o isolare processi canaglia riempiendo parti del tuo sistema (es. / Var / log, / tmp ecc.)
I vantaggi di questo sono:
Aggiunta / rimozione di memoria
L'aggiunta di spazio di archiviazione è generalmente banale. Se si utilizza RAID hardware o software e si aggiungono altri dischi, spesso è necessario armeggiare con collegamenti simbolici per ricostruire l'array RAID per consentire a Linux di rendere disponibile il nuovo spazio di archiviazione nelle posizioni desiderate.
Prendi l'esempio di una directory grande / home che si sta riempiendo. Esiste su un volume RAID 1 a due dischi esistente. Vuoi aggiungere altri due dischi. Li hai impostati in una configurazione RAID 1 hardware. Senza LVM, hai un paio di opzioni:
Con LVM, puoi semplicemente aggiungere il nuovo gruppo di volumi RAID 1 al pool di archiviazione aggiuntivo, ridimensionare il filesystem (a condizione che lo supporti) e voilà, / home ora è improvvisamente più grande. Non è necessario collegare in modo simbolico nulla o eseguire interventi di manutenzione sui dati potenzialmente in movimento da / home a / home1 o viceversa. Risciacquare, lavare, ripetere per futuri aggiornamenti del disco.
Manutenzione online
La maggior parte delle attività LVM, a condizione che l'hardware lo supporti, può essere eseguita online, senza riavviare la macchina. Se è possibile sostituire a caldo dischi su un sistema, è possibile aggiungere nuovi dischi e successivamente rimuovere dischi vecchi (forse più piccoli) per aumentare i requisiti di archiviazione del sistema.
Uno dei problemi principali con i volumi LVM è quando si avvicinano alla capacità, la frammentazione può diventare un problema nella mia esperienza. Volumi> 90% e in realtà> 95% possono significare che si può finire con una frammentazione errata sul disco a seconda dell'utilizzo del disco e dei tipi di file. Raramente è qualcosa di cui preoccuparsi eccessivamente, è il caso di qualsiasi tipo di gestione del volume / delle partizioni, ma è la frammentazione sul livello del volume rispetto alla partizione che è la preoccupazione qui.
Avresti dovuto fornire maggiori informazioni sulla situazione in cui intendi applicarlo, in questo modo possiamo dare risposte mirate piuttosto che ampie risposte probabilmente non correlate (non posso commentare altrimenti avrei detto questo in un commento).
Ora sulla domanda stessa, hai una facile creazione, ridimensionamento ed eliminazione di volumi (aka partizioni) e un'altra bella caratteristica (a seconda della situazione) è la possibilità di creare istantanee di un volume.
Anche se sei già stato selezionato come migliore risposta, vorrei contribuire con la mia opinione su questo argomento. Dalla mia esperienza, metterei in dubbio l'utilità di LVM se si dispone di un'unità fisica o anche se si dispone di più unità (personalmente non utilizzo mai LVM sull'unità di sistema). Tuttavia, dove LVM è davvero indispensabile è in cima all'hardware RAID. Ciò consente di separare chiaramente le funzioni di RAID e LVM: si utilizza RAID per gestire le caratteristiche di affidabilità e prestazioni della memoria e si utilizza LVM per allocare volumi effettivi al sistema. A volte, questa funzionalità si sovrappone, cioè LVM può fornire funzionalità di RAID-0 e RAID-1 ma non consiglierei di usare nessuna delle due con una build seria.
Fondamentalmente RAID e LVM si uniscono, usarne uno senza l'altro è di solito non ottimale.