Home > Concetti, Debian, Dischi, File System, Linux, Partizioni, Sistema, Ubuntu > Cos’è e come funziona LVM?

Cos’è e come funziona LVM?

19 settembre 2010

Logical Volume Manager

Il classico partizionamento usato nella maggior parte delle installazioni casalinghe è quello basato su MBR (Master Boot Record) e tabella delle partizioni MSDOS.

Con questo sistema è possibile avere un massimo di 4 partizioni primarie oppure fino a 3 partizioni primarie, una partizione estesa e all’interno di quest’ultima infinite partizioni logiche.

Il limite principale di questa architettura è dato dalla rigidità di questa organizzazione delle risorse. Le partizioni sono fisse e non possono essere separate in più dischi, non possono essere modificate senza smontarle e lo spazio per il file system è quello prefissato, non può né crescere né diminuire senza smontare tutto e rifare le partizioni.

Immaginando un’installazione multiutente, se il disco viene completamente riempito l’unica soluzione è quella di acquistare un disco nuovo e travasare i dati in quello, reimpostando i permessi com’erano in origine con elevati costi di tempo, oppure spostare i dati altrove, soluzione ovviamente non facilmente applicabile in multiutenza.

LVM (Logical Volume Manager) rivoluziona il concetto di organizzazione dello spazio fornendo un sistema di allocazione dinamica dello spazio.

Struttura di LVM

La figura qui sopra mostra il funzionamento generale di LVM in presenza di vari dischi.

Ciascun disco fisico contiene al suo interno un certo numero di partizioni; queste possono essere usate normalmente per montare un file system (come nel caso della sda1 che punta a /boot senza far parte di LVM) oppure possono essere usate in LVM.

Ogni partizione che viene inserita in LVM prende il nome di volume fisico (PV = Physical Volume).

Tutti o solo alcuni volumi fisici possono essere assegnati a un gruppo di volumi (VG = Volume group). Questo consente di sfruttare più dischi/partizioni unite in un’unica struttura dati. L’uso di hardware dedicato migliora notevolmente il funzionamento, consentendo l’utilizzo sincrono di tutti i dischi collegati.

La somma di tutte le partizioni dedicate al gruppo di volumi definisce la dimensione del gruppo; in questo modo quando lo spazio si esaurirà basterà acquistare un nuovo disco, aggiungerlo al gruppo e la sua capienza verrà sommata allo spazio del gruppo. In questo modo si assicura la scalabilità anche su enormi dimensioni.

Tutto lo spazio dedicato a un gruppo di volumi può essere suddiviso in uno o più volumi logici (LV = Logical Volume) che verranno usati dal sistema per costituire il file system, semplicemente formattandoli nella maniera preferita, come se fossero delle partizioni.

Vantaggi dell’uso di LVM

I vantaggi di utilizzare LVM rispetto un partizionamento classico sono numerosi:

  1. Capacità totale espandibile senza spostamento dei dati
  2. Allocazione dinamica dello spazio senza riformattazione, inclusa l’aggiunta, rimozione e sostituzione dei dischi
  3. Associazione di nomi a un gruppo di dispositivi, senza preoccuparsi di quali partizioni vengano usate per fornire un gruppo di volumi
  4. Ripartizione (striping) dei dati su più dischi
  5. Clonazione (mirroring) dei volumi
  6. Creazione di istantanee (snapshot) di un volume logico per avere delle copie dei dati uguali al momento dell’istantanea
  1. Sanzo
    19 settembre 2010 alle 14:20

    Molto bello ed evoluto rispetto a quello che siamo abituati ad usare attualmente, però ho dei dubbi.
    1. Se metto più dischi in un unico gruppo di volumi, poi come faccio a sapere su quale disco è fisicamente salvato il dato che sto cercando?
    2. se mi si guasta un disco che sta insieme ad altri in un gruppo di volumi, come faccio a capire quali dati ho perso senza doverli andare a cercare uno a uno?
    3. il concetto di gruppo di volumi non è simile al raid0? Dischi che si sommano tra loro con la divisione dei dati un pò da una parte e un pò dall’altra (senza però lo svantaggio che se ti si rompe un disco hai perso tutto).
    4. se per esempio un disco che fa parte di un gruppo di volumi lo stacco e lo metto sotto un altro pc come hard disk secondario, l’altro pc me lo legge subito oppure bisogna fare qualche passaggio in più?

    • 19 settembre 2010 alle 14:46

      ciao

      1- non puoi e non devi saperlo. i dischi una volta uniti non vanno separati se prima non vengono esclusi fisicamente dall’LVM, esattamente come se usassi un raid.
      Quando ti serve un file tu devi cercarlo nell’LVM montato, quindi nel percorso, non nei dischi fisici.

      2- se non hai nessun tipo di ridondanza, i dati sono persi e basta.
      se avessi solo un disco e si guastasse, non avresti perso ugualmente tutto?
      maggiore e` il numero di dischi, maggiore e la necessita` di ridondanza (raid oppure mirroring)

      3- l’analogia e` molto similare ma LVM e` piu` flessibile. il lavoro del raid0 termina al concetto di gruppo di volumi e non offre la gestione dei volumi logici per ripartire lo spazio in maniera dinamica, per spostare i dati da un volume all’altro, per svuotare un disco in modo da sostituirlo con un altro, per ridimensionare lo spazio dei volumi e cosi` via.

      4- appena colleghi un disco troverai dentro una partizione di tipo LVM che non potrai montare direttamente senza richiamare LVM e LVM ovviamente pretendera` che tu abbia anche gli altri dischi che costituiscono il volume. Anche questo esattamente come il raid.

      • Sanzo
        19 settembre 2010 alle 19:15

        Grazie mille della spiegazione perfetta!
        Riguardo al punto due ho ancora qualche dubbio che spero tu possa chiarirmi🙂

        Quello che hai detto è ovviamente correttissimo, però quello che intendevo è che con un disco solo, so esattamente quello che c’è dentro quindi so anche cosa ho perso e cosa no (tipo ho un disco video e uno foto, mi si guasta il disco foto, so di aver perso le foto e solo quelle, i video ci sono ancora).
        Con questo sitema in sostanza, un pò come nel raid, vengono messe le cose un pò qui e un pò la (con un suo criterio, ovviamente non a caso) quindi a quel punto non posso più sapere cosa perdo, visto che dal so io vedo una partizione unica dove sta tutto.
        Mi è venuto un altro dubbio!
        5. ma se mettiamo caso che un disco si guasta, è come nel raid0 che tutto il resto va in malora oppure solo quello che era contenuto su quel disco è perso e tutto il resto continua a funzionare?

      • 19 settembre 2010 alle 19:42

        se condividi lo spazio del disco per inserirlo nel gruppo di volumi, le informazioni saranno sparpagliate tra i dischi.
        se i dischi sono separati in VG distinti, perdendo un disco perderesti il VG a cui quel disco appartiene e naturalmente gli altri VG non sono influenzati dalla perdita.

        Usando un solo VG se non hai nessuna ridondanza, i dati di entrambi i sistemi vanno in malora in quanto (con 2 dischi) ti mancherebbe il 50% delle informazioni memorizzate, risultando inutile anche l’altro.

        Io ho l’impressione che tu stia dando a LVM un ruolo che non gli compete. Esso e` un metodo alternativo al partizionamento, non e` un metodo che garantisce il funzionamento in caso di guasto.

        LVM non offre nessun sistema di ridondanza, se si vuole ottenere ridondanza bisogna montare l’LVM sopra un raid con ridonanza.

        Per ripetermi, non e` in nessun modo alternativo al raid o altri sistemi di ridondanza. Ne` raid sostituisce LVM, ne` viceversa. Anzi andrebbero usati assieme se si vuole una certa sicurezza.

      • Sanzo
        19 settembre 2010 alle 20:00

        No no, lo so che i dati restano sempre in copia singola con questa impostazione e se si perdono sono persi punto e basta. Quello l’avevo capito subito; ora è chiaro anche il resto. Forse non erano troppo chiare le domande a cui comunque hai risposto e mi hai chiarito tutti i dubbi. In pratica è da considerarsi come un raid0 dinamico, dove puoi aggiungere e togliere dischi per aumentare lo spazio a caldo (ovviamente ci sarà qualche impostazione da mettere però non come un raid). Però se un disco si frigge tutto il sistema è andato, perchè da quel che ho capito dalla tua ultima spiegazione, non è il file a essere scritto su un disco o l’altro, ma proprio ciò che compone il file che è scritto in svariate parti proprio come nel raid0.
        Dai, forse sto scrivendo confuso ma comunque h capito. Gracias!
        Chiudi pure il 3D rotfl (chissà che sovrapensiero non lo chiudi davvero pensado di essere su lqh o il forum di ubuntu!)

  2. gianni
    19 settembre 2010 alle 15:32

    Le partizioni logiche non sono infinite…
    Al massimo puoi raggiungere 15 partizioni.
    Sono 3 primarie 1 estesa e 11 logiche.

    • 19 settembre 2010 alle 17:04

      qual e` la fonte di questa informazione? e` assolutamente sbagliata.
      tempo fa feci una dimostrazione di circa 70 partizioni a chi sosteneva che ci fosse un limite di 63 partizioni logiche.

      oggi ti presento quella di 100 partizioni, se vuoi provare a continuare tu fino a trovare un limite sei il benvenuto.

      che mi risulti non esiste nessun limite fissato, gli EBR funzionano a cascata e ciascun EBR ne puo` chiamare un altro successivo.

      (gnome-panel sclera di brutto con 100 partizioni)

  3. Matteo
    19 settembre 2010 alle 18:39

    ciao Muflone

    ottimo come sempre
    informazioni che avevo solo letto e grazie a queste tue informazioni so qualcosa in più, grazie

    Matteo

  4. drake762001
    19 settembre 2010 alle 22:45

    Non è che hai voglia anche di dirmi come si fa materialmente a creare un disco lvm o a trasformare una situazione esistente in lvm? Purtroppo ammetto di conoscere i soliti fdisk mkfs ecc, ma non so nulla di lvm.
    Quello che mi piacerebbe è trasformare la mia attuale situazione:
    /dev/sda1 /
    /dev/sda3 /home
    /dev/sdb1 /media/Archivio
    fondendo la home e l’archivio in un unica partizione home. Mi sembra di aver capito che con LVM si può fare, ma non saprei dove cominciare.

    • 19 settembre 2010 alle 22:53

      forse spieghero` piu` avanti come creare l’LVM.
      intanto ti puoi arrangiare con questo
      http://www.howtoforge.com/linux_lvm
      salta tutto il passaggio del partizionamento

      ovviamente devi stare attento che se si guasta uno dei due dischi perdi i dati pure dell’altro se tieni una partizione unica.

  5. 02 ottobre 2010 alle 16:00

    ciao muflone, ho una domanda: LVM si va a sostituire a MBR? E in tal caso come reagisce Grub?

    • 02 ottobre 2010 alle 16:01

      no, grub non consente di avviare da LVM.
      se guardi il grafico in cima infatti la partizione boot e` separata dall’LVM

      • 02 ottobre 2010 alle 16:03

        ok grazie dell’informazione😉

  6. Scugnizzo
    03 ottobre 2010 alle 20:55

    Ciao raga,
    in rete stasera ho trovato un documento ed ho pensato di postarne qui il link per chi voglia approfondire il discorso LVM.

    http://www.lulu.com/items/volume_67/8000000/8000517/1/print/lvm2.pdf

    Spero di aver fatto cosa gradita.

  7. Lu
    28 gennaio 2011 alle 13:59

    Vi faccio i miei complimenti vivissimi,per la qualità del materiale del sito,e vi auguro anche di più,bravi!Molto interessanti anche i commenti che gli utenti postano,infatti mi sono serviti per comprendere meglio vari aspetti dell’argomento,grazie anche a voi.Volevo chiedervi,guardando l’immagine(fatta bene anche) mi chiedevo se nel scegliere i file system x ogni elemento,vi fosse una strategia precisa,e motivazioni derivanti da caratteristiche precise di ogni singolo file system.Voglio capire se in base a quello che debbo farci io,sia utile o meno l’applicazione di un file system o di un altro…Spero di esser stato sufficientemente chiaro…Vi ringrazio in anticipo per le vostre opinioni e consigli,saluti😀

  8. :-)
    06 aprile 2012 alle 16:37

    davvero interessante, il prossimo server che assemblo lo provo..

  1. 18 ottobre 2011 alle 22:04
I commenti sono chiusi.
%d blogger cliccano Mi Piace per questo: