GNU/Linux >> Linux Esercitazione >  >> Linux

Quali sono i vantaggi del Logical Volume Manager

Soluzione 1:

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

Prima di tutto, discutiamo della vita senza LVM. Ai vecchi tempi, avevi un disco rigido. Questo disco rigido potrebbe avere delle partizioni. È possibile installare file system su queste partizioni e quindi utilizzare tali file system. In salita in entrambe le direzioni. Assomigliava molto a questo:

Hai l'unità reale, 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 essa, che è montato. Il tipo effettivo di filesystem è arbitrario. Potresti chiamarlo ext3, reiserfs o cosa hai. La cosa importante da notare è che esiste una correlazione diretta uno a uno tra le partizioni del disco e i possibili file system.

Aggiungiamo un po' di gestione del volume logico che ricrea esattamente la stessa struttura:

Ora vedi le stesse partizioni, tuttavia c'è uno strato sopra le partizioni chiamato "Gruppo di volumi", letteralmente un gruppo di volumi, in questo caso partizioni del disco. Potrebbe essere accettabile pensare a questo come a una sorta di disco virtuale che puoi partizionare. Dato che corrispondiamo esattamente alla 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. Ciascuno 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 rimanente.

Possiamo vedere il gruppo di volumi sopra quello che include tutti i volumi attualmente disponibili. Qui si trova uno dei maggiori punti di forza. Puoi creare una partizione logica grande quanto la somma dei tuoi dischi. In molti modi, questo è simile a come funziona il livello RAID 0, tranne per il fatto che non c'è alcuno striping. I dati sono scritti per la maggior parte in modo lineare. Se hai bisogno di ridondanza o l'aumento delle prestazioni fornito da RAID, assicurati di mettere i tuoi volumi logici sopra gli array RAID. Le fette RAID funzionano esattamente come i dischi fisici qui.

Ora abbiamo questo gruppo di volumi che occupa 2 dischi e 1/2. È 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 effettivi, poiché tutto ciò che vedono è che sono stati ricavati da myVolumeGroup01. Questo livello di astrazione è importante, come vedremo.

Cosa succede se decidiamo che abbiamo bisogno dello spazio inutilizzato, perché abbiamo aggiunto più utenti?

Normalmente saremmo nei guai 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 creato /dev/sdc2. Poi lo abbiamo aggiunto all'elenco dei volumi che compongono myVolumeGroup01. Una volta fatto ciò, eravamo liberi di espandere uno dei volumi logici secondo necessità. Da quando abbiamo aggiunto gli utenti, abbiamo ampliato myLogicalVolume2. A quel punto, fintanto che il filesystem /home lo supportava, eravamo liberi di farlo crescere per riempire lo spazio extra. Tutto perché abbiamo estratto il nostro spazio di archiviazione dai dischi fisici su cui vive.

Va bene, questo copre il perché di base della gestione del volume logico. Poiché sono sicuro che non vedi l'ora di saperne di più su come preparare e costruire i tuoi 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:

Puoi usare LVM per fare molte cose con i dischi. Il vantaggio principale è la capacità di far crescere i filesystem al volo. Supponiamo che tu stia configurando un server di registro e sai che in futuro avrai un sacco di dati. Ext3 supporta un massimo di 16 TB (di più a seconda del kernel e della versione di EL). Ma cosa succede se sai che tra 2 anni avrai bisogno di 1 PB di spazio di archiviazione? Beh, questo crea qualche problema. Per prima cosa, il tuo capo ti guarderà con occhi da cervo negli occhi quando gli dirai il prezzo di quell'hardware di archiviazione. Questo porta a un altro problema:devi iniziare con una piccola soluzione che puoi ridimensionare 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 la dimensione del volume e infine fai crescere il filesystem. Voilà, hai un bel filesystem scalabile.

Questo ti evita di dover spostare i dati fuori dal dispositivo, riformattare i LUN e quindi spostare tutto indietro per eseguire un aggiornamento. Ci scusiamo per la brevità, spero che abbia senso.

Modifica:dovrei anche notare che se hai a che fare con 1PB, non vorrai usare Ext3... probabilmente XFS.

Soluzione 3:

Ci sono una serie di vantaggi indiretti di LVM. La cosa principale che fa LVM è astrarre i dischi fisici dal sistema operativo . Il principale vantaggio di questo è semplicemente la flessibilità . La maggior parte dei vantaggi di LVM si realizza 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 un livello sopra il disco

Senza LVM, Linux utilizza le partizioni che si trovano fisicamente sul disco. Le partizioni sono nomi di dispositivi diretti. La tabella delle partizioni risiede nell'MBR e normalmente (nel caso di partizioni logiche estese) nell'extended boot record (che permette di creare un numero maggiore di partizioni). Le partizioni definiscono una dimensione e digita tra gli altri attributi (più specificamente, definiscono un cilindro iniziale e finale 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 compreso le implicazioni del partizionamento, o se hai sottovalutato l'utilizzo del disco da qualche parte o i registri di una particolare applicazione, cambiare quel partizionamento può essere complicato. Esistono strumenti per farlo, ma in genere è necessario spostare i dati dalla partizione per modificarli. Ovviamente, se hai quattro partizioni, la modifica del secondo cilindro di fine partizione ha effetto sui cilindri di inizio della terza e quarta partizione e quindi ti ritrovi in ​​una situazione disordinata.

L'ingenuo può raccomandare l'uso di una singola partizione di grandi dimensioni, ma potresti perderti quando devi introdurre quote o isolare processi non autorizzati che riempiono parti del tuo sistema (ad es. /var/log, /tmp ecc.)

I vantaggi di questo sono:

Aggiunta/rimozione di spazio di archiviazione

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

Prendi l'esempio di una directory /home di grandi dimensioni che si sta riempiendo. Esiste su un volume RAID 1 a due dischi esistente. Vuoi aggiungere altri due dischi. Li imposti in una configurazione RAID 1 hardware. Senza LVM, hai un paio di opzioni:

  1. Ricostruisci l'array raid completo in una configurazione 1+0 che richiede lo spostamento dei dati dalla macchina, la ricostruzione e il riposizionamento.
  2. Crea 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 simile. Ora per ottenere i percorsi appropriati per gli utenti 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 la potenziale migrazione dei dati dalla partizione originale.

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 simbolicamente nulla o eseguire la manutenzione sul potenziale spostamento dei dati da /home a /home1 o viceversa. Sciacquare, 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 puoi scambiare a caldo i dischi su un sistema, puoi aggiungere nuovi dischi e successivamente rimuovere i vecchi dischi (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 realmente> 95% possono significare che puoi 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 di volumi/partizioni, ma è la frammentazione sul livello del volume anziché sulla partizione che è la preoccupazione qui.


Linux
  1. Utilizzo di Ansible per automatizzare le configurazioni di Logical Volume Manager

  2. Quali sono i separatori di parole Readline?

  3. Quindi cosa sono i core CPU logici (in opposizione ai core CPU fisici)?

  4. pfSense vs Netgear router:quali sono le differenze principali?

  5. Fedora vs Ubuntu:quali sono le differenze principali?

Cassandra vs MongoDB - Quali sono le differenze?

Terraform vs Kubernetes:quali sono le differenze

Che cos'è Intel SGX e quali sono i vantaggi?

IMAP vs POP3 vs SMTP:quali sono le differenze?

useradd vs. adduser:quali sono le differenze?

Quali sono i significati del prefisso dell'interfaccia in ifconfig?