LVM: funzionamento: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
mNessun oggetto della modifica
 
(10 versioni intermedie di 3 utenti non mostrate)
Riga 2: Riga 2:
In questa sezione sono introdotti i principi elementi che compongo l'''LVM'' ed è introdotto il funzionamento dello stesso.
In questa sezione sono introdotti i principi elementi che compongo l'''LVM'' ed è introdotto il funzionamento dello stesso.


==La struttura base dell'''LVM''==
==La struttura base dell'''LVM''==
Il LVM basa il proprio funzionamento sulla seguente struttura:
Il LVM basa il proprio funzionamento sulla seguente struttura:
; ''Volume Group'' ('''VG'''): trattasi del più alto livello di astrazione che raggruppa in sé una collezione di Logical Volume e di Physical Device.
; ''Volume Group'' ('''VG'''): trattasi del più alto livello di astrazione che raggruppa in sé una collezione di Logical Volume e di Physical Device.
Riga 8: Riga 8:
; ''Logical Volume'' ('''LV'''): l'equivalente nel nostro ''LVM'' in tutto e per tutto di quella che è una partizione su un Hard Disk. L'unica piccola differenza subito evidente è l'etichetta/label (ad es. /dev/nome-''VG''/nome-''LV'' invece del canonico /dev/sda1). Come ogni normale partizione il ''LV'' può contenere un file system a nostro piacimento.
; ''Logical Volume'' ('''LV'''): l'equivalente nel nostro ''LVM'' in tutto e per tutto di quella che è una partizione su un Hard Disk. L'unica piccola differenza subito evidente è l'etichetta/label (ad es. /dev/nome-''VG''/nome-''LV'' invece del canonico /dev/sda1). Come ogni normale partizione il ''LV'' può contenere un file system a nostro piacimento.
; ''Logical Extend'' ('''LE'''): seppure difficilmente avremo a che farci direttamente, i ''LE'' sono i pezzetti in cui viene suddiviso il ''LV'' in modo di poterlo allocare tra i vari ''PE'' disponibili al ''VG''.
; ''Logical Extend'' ('''LE'''): seppure difficilmente avremo a che farci direttamente, i ''LE'' sono i pezzetti in cui viene suddiviso il ''LV'' in modo di poterlo allocare tra i vari ''PE'' disponibili al ''VG''.
; ''Physycal Extent'' ('''PE'''): ad esempio, quando vogliamo aggiungere un ''PD'' al nostro ''VG'', dobbiamo per prima cosa iniziarlo con il comando <tt>pvcreate</tt>. Questo comando altro non fa che dividere il supporto in tanti spazi in modo da poter poi creare una corrispondenza tra i ''LE'' ed i ''PE'' e così allocare lo spazio necessario per i ''LV''.
; ''Physycal Extent'' ('''PE'''): ad esempio, quando vogliamo aggiungere un ''PD'' al nostro ''VG'', dobbiamo per prima cosa iniziarlo con il comando <code>pvcreate</code>. Questo comando altro non fa che dividere il supporto in tanti spazi in modo da poter poi creare una corrispondenza tra i ''LE'' ed i ''PE'' e così allocare lo spazio necessario per i ''LV''.


In modo un po' stilizzato, possiamo descrivere il passaggio dal concetto di partizioni a quello di ''LV'' nel seguente modo:
In modo un po' stilizzato, possiamo descrivere il passaggio dal concetto di partizioni a quello di ''LV'' nel seguente modo:
Riga 18: Riga 18:
     / | \
     / | \
     /  |  \
     /  |  \
   /  |  \
   /  |  \  
  Home Root  Dati  (Logical Volume)
  Home Root  Dati  (Logical Volume)
</pre>
</pre>
'''In definitiva:'''<br/>
Nonostante i concetti dominanti della terminologia di LVM siano 5, come descritto precedentemente, '''quelli con cui si trova più a contatto l'utente sono i primi tre: Physical Device, Volume Group e Logical Volume.''' Gli altri due sono, per così dire, concetti più di basso livello, quindi è possibile approfondirli in un secondo tempo.<br/>
Come si evince dalla figura precedente, '''l'elemento innovativo (che quindi conferisce maggiore flessibilità ad LVM) è il Volume Group'''.<br/>
Esso in pratica fonde i volumi fisici disponibili (partizioni varie, raid, etc.) in una specie di "massa grezza" pronta per essere manipolata al fine di creare uno o più Logical Volume.<br/>
Questi ultimi, come già detto, svolgono il ruolo delle partizioni quindi sono disponibili per essere innestati nel sistema in specifici [[mountpoint]] ma in una maniera più flessibile (in termini di espandibilità e riduzione di spazio) rispetto alle partizioni tradizionali.


==Per approfondire==
==Approfondimenti==
{| style="-moz-border-radius: 0.5em; width:30%; margin-top:+.7em; background-color:#ffffff; border: 1px solid #87ceeb" align="right"
{| style="border-radius: 0.5em; width:30%; margin-top:+.7em; background-color:#ffffff; border: 1px solid #87ceeb" align="right"
| align="center" | [[Immagine:Banner_e-zine.png]]
| align="center" | [[Immagine:Banner_e-zine.png]]
|-
|-
Riga 30: Riga 35:
La spiegazione di come si comporta e funziona l&#39;''LVM'' è già stata tratta nell'<u>e-zine numero 5</u> di ''debianizzati.org'' nello sviluppo dell'articolo [http://e-zine.debianizzati.org/web-zine/numero_5/?page=46|'''LVM mirror''']. Ecco a seguire [http://e-zine.debianizzati.org/web-zine/numero_5/?page=48| il riporto dell&#39;'''Introduzione teorica all'LVM''']:
La spiegazione di come si comporta e funziona l&#39;''LVM'' è già stata tratta nell'<u>e-zine numero 5</u> di ''debianizzati.org'' nello sviluppo dell'articolo [http://e-zine.debianizzati.org/web-zine/numero_5/?page=46|'''LVM mirror''']. Ecco a seguire [http://e-zine.debianizzati.org/web-zine/numero_5/?page=48| il riporto dell&#39;'''Introduzione teorica all'LVM''']:


{| style="-moz-border-radius: 0.5em; width:90%; margin-top:+.7em; background-color:#f0f8ff; border:1px solid #87ceeb; color:#000" align="center"  
{| style="border-radius: 0.5em; width:90%; margin-top:+.7em; background-color:#f0f8ff; border:1px solid #87ceeb; color:#000" align="center"  
|-
|-
|''LVM'' è l'acronimo di '''Logical Volume Manager''', ovvero di Gestore dei Volumi Logici di Linux. Ma quindi cosa sono questi ''volumi logici''?<br />
|''LVM'' è l'acronimo di '''Logical Volume Manager''', ovvero di Gestore dei Volumi Logici di Linux. Ma quindi cosa sono questi ''volumi logici''?<br />
L'idea di fondo è di sostituire al concetto di partizione un diverso contenitore (il '''Logical Volume''') il quale non dipende più dalle limitate informazioni contenibili nell'[http://guide.debianizzati.org/index.php/MBR MBR] ma, tramite le gestione del kernel Linux, si può liberamente spostare/raggruppare/estendere da un settore all'altro di ogni disco, quasi come se fosse un file o una cartella all'interno del ''file system''.<br />
L'idea di fondo è di sostituire al concetto di partizione un diverso contenitore (il '''Logical Volume''') il quale non dipende più dalle limitate informazioni contenibili nell'[[MBR]] ma, tramite le gestione del kernel Linux, si può liberamente spostare/raggruppare/estendere da un settore all'altro di ogni disco, quasi come se fosse un file o una cartella all'interno del ''file system''.<br />
<br />
<br />
All'atto pratico <u>la modalità di funzionamento dell'''LVM''</u> può essere riassunta nel seguente modo. L'unità principale sulla quale si basa il sistema è il '''Volume Group'''. Detto ''VG'' verrà da noi dotato di una certa capacità di memoria pari alla capacità di tutti i supporti di massa che gli assegnaremo.<br />
All'atto pratico <u>la modalità di funzionamento dell'''LVM''</u> può essere riassunta nel seguente modo. L'unità principale sulla quale si basa il sistema è il '''Volume Group'''. Detto ''VG'' verrà da noi dotato di una certa capacità di memoria pari alla capacità di tutti i supporti di massa che gli assegnaremo.<br />
Tali supporti possono essere dischi SATA, PATA, USB, configurazioni RAID, SSD o quant'altro e mi riferirò ad essi come '''Physical Device'''. I ''PD'' possono anche non avere alcuna partizione, seppure si consiglia di dotarli almeno di una partizione primaria siccome altri sistemi operativi, qualora non riscontrino alcuna partizione, potrebbero inavvertitamente sovrascriverli.<br />
Tali supporti possono essere dischi SATA, PATA, USB, configurazioni RAID, SSD o quant'altro e mi riferirò ad essi come '''Physical Device'''. I ''PD'' possono anche non avere alcuna partizione, seppure si consiglia di dotarli almeno di una partizione primaria siccome altri sistemi operativi, qualora non riscontrino alcuna partizione, potrebbero inavvertitamente sovrascriverli.<br />
I ''PD'', quando sono assegnati ad un ''VG'', sono gestiti dall'''LVM'' suddividendo lo spazio disponibile su ognuno di essi tramite una suddivisione in unità fisiche ridotte (di default di qualche Mb) dette '''Physical Extent'''. Per questo motivo, prima di aggiungere un ''PD'' ad un ''VG'' sarà necessario inizializzarlo proprio per creare su di esso i vari ''PE''.<br />
I ''PD'', quando sono assegnati ad un ''VG'', sono gestiti dall'''LVM'' suddividendo lo spazio disponibile su ognuno di essi tramite una suddivisione in unità fisiche ridotte (di default di qualche MB) dette '''Physical Extent'''. Per questo motivo, prima di aggiungere un ''PD'' ad un ''VG'' sarà necessario inizializzarlo proprio per creare su di esso i vari ''PE''.<br/>
Quando creeremo un '''Logical Volume''' (ovvero lo spazio che useremo come "partizione") l'''LVM'' gestirà lo spazio virtuale (logico) da noi richiesto suddividendolo in tanti '''Logical Extent''' tali da permettere di distribuire ogni ''LE'', che altro non è che un pezzo del nostro ''LV'', tra i ''PD''. Questa allocazione avviene facendo corrispondere ad ogni ''LE'' un determinato ''PE'' secondo necessità.<br />
Quando creeremo un '''Logical Volume''' (ovvero lo spazio che useremo come "partizione") l'''LVM'' gestirà lo spazio virtuale (logico) da noi richiesto suddividendolo in tanti '''Logical Extent''' tali da permettere di distribuire ogni ''LE'', che altro non è che un pezzo del nostro ''LV'', tra i ''PD''. Questa allocazione avviene facendo corrispondere ad ogni ''LE'' un determinato ''PE'' secondo necessità.<br />
<br />
<br />
Da tale modo di spezzettare i ''LV'' ed i ''PD'' nasce tutta la potenzialità dell'''LVM''. Infatti, quando all'interno del nostro ''VG'' creeremo un ''LV''  l&#39;''LVM'' non sarà obbligato a distribuire lo spazio da noi richiesto tra i ''PD'' ma tra le ''PE''. Pertanto sarà possibile spostare/allargare/ridurre il ''LV'' semplicemente agendo sulla distribuzione delle ''LE'' tra i ''PE'' disponibili.<br />
Da tale modo di spezzettare i ''LV'' ed i ''PD'' nasce tutta la potenzialità dell'''LVM''. Infatti, quando all'interno del nostro ''VG'' creeremo un ''LV''  l'''LVM'' non sarà obbligato a distribuire lo spazio da noi richiesto tra i ''PD'' ma tra le ''PE''. Pertanto sarà possibile spostare/allargare/ridurre il ''LV'' semplicemente agendo sulla distribuzione delle ''LE'' tra i ''PE'' disponibili.<br />
Ad esempio, quando in questo articolo creeremo il nostro ''LV'' in modalità mirrored, l&#39;''LVM'' si limiterà semplicemente a sincronizzare alcune ''PE'' di un ''PD'' con le ''PE'' del nostro secondo ''PD''. Pertanto ad ogni coppia di ''PE'' sincronizzata corrisponderà il medesimo ''LE'' (e quindi il medesimo ''LV'').<br />
Ad esempio, quando in questo articolo creeremo il nostro ''LV'' in modalità mirrored, l&#39;''LVM'' si limiterà semplicemente a sincronizzare alcune ''PE'' di un ''PD'' con le ''PE'' del nostro secondo ''PD''. Pertanto ad ogni coppia di ''PE'' sincronizzata corrisponderà il medesimo ''LE'' (e quindi il medesimo ''LV'').<br />
<br />
<br />
Per chi, perso tra queste sigle, volesse maggiormente approfondire segnalo alcuni utili HOWTO [http://en.wikipedia.org/wiki/Logical_volume_management [2]] [http://tldp.org/HOWTO/LVM-HOWTO/index.html [3]].<br />
Per chi, perso tra queste sigle, volesse maggiormente approfondire segnalo alcuni utili HOWTO [http://en.wikipedia.org/wiki/Logical_volume_management (2)] [http://tldp.org/HOWTO/LVM-HOWTO/index.html (3)].<br />
<br />
<br />
Chi è riuscito a seguire fin qui il discorso, ecco un grafico esemplificativo del funzionamento. In questo caso i ''LE'' sono omessi in quanto corrispondono 1:1 ai ''PE'', ovviamente se vi ci fosse un ''mirror'' la corrispondenza tra ''LE'' e ''PE'' sarebbe 1:2 (un ''LV'' fa riferimento a due diversi spazi sui ''PD''). Infine si osservi il ''LV'' /home, quest'ultimo è in modalità ''striped'' ovvero è in parte sul primo ''PD'' ed in parte sul secondo ''PD''.<br />
Chi è riuscito a seguire fin qui il discorso, ecco un grafico esemplificativo del funzionamento. In questo caso i ''LE'' sono omessi in quanto corrispondono 1:1 ai ''PE'', ovviamente se vi ci fosse un ''mirror'' la corrispondenza tra ''LE'' e ''PE'' sarebbe 1:2 (un ''LV'' fa riferimento a due diversi spazi sui ''PD''). Infine si osservi il ''LV'' /home, quest'ultimo è in modalità ''striped'' ovvero è in parte sul primo ''PD'' ed in parte sul secondo ''PD''.<br />
Riga 49: Riga 54:
|}
|}


 
[[Categoria:Filesystem]][[Categoria:Hard Disk]]
{{Box|NOTE|Autore: [[Utente:Risca86|Risca86]]
}}

Versione attuale delle 12:53, 7 apr 2014

Guida all'LVM

Sommario

Parte I
Introduzione all'LVM
  1. Introduzione all'LVM
  2. Come funziona
  3. Gestire i VG
  4. Gestire i LV
  5. Gestire i PD
Parte II
Casi speciali
  1. Il Boot e l'LVM
  2. Installazione di Debian con l'LVM
  3. Impostare un mirror LVM
  4. Lavorare con gli snapshot
  5. Esempi
Appendice
  1. Comandi utili
  2. Sitografia

In questa sezione sono introdotti i principi elementi che compongo l'LVM ed è introdotto il funzionamento dello stesso.

La struttura base dell'LVM

Il LVM basa il proprio funzionamento sulla seguente struttura:

Volume Group (VG)
trattasi del più alto livello di astrazione che raggruppa in sé una collezione di Logical Volume e di Physical Device.
Physical Device (PD)
sono i nostri supporti di memorizzazione e possono essere di qualsiasi tipo, sia Hard Disk, sia nastri, sia memorie solide ma anche ambienti RAID, etc.
Logical Volume (LV)
l'equivalente nel nostro LVM in tutto e per tutto di quella che è una partizione su un Hard Disk. L'unica piccola differenza subito evidente è l'etichetta/label (ad es. /dev/nome-VG/nome-LV invece del canonico /dev/sda1). Come ogni normale partizione il LV può contenere un file system a nostro piacimento.
Logical Extend (LE)
seppure difficilmente avremo a che farci direttamente, i LE sono i pezzetti in cui viene suddiviso il LV in modo di poterlo allocare tra i vari PE disponibili al VG.
Physycal Extent (PE)
ad esempio, quando vogliamo aggiungere un PD al nostro VG, dobbiamo per prima cosa iniziarlo con il comando pvcreate. Questo comando altro non fa che dividere il supporto in tanti spazi in modo da poter poi creare una corrispondenza tra i LE ed i PE e così allocare lo spazio necessario per i LV.

In modo un po' stilizzato, possiamo descrivere il passaggio dal concetto di partizioni a quello di LV nel seguente modo:

  hd1    sda2      (Physical Device - partizioni)
    \     /
     \   /
    server1        (Volume Group)
     / | \
    /  |  \
   /   |   \ 
 Home Root  Dati   (Logical Volume)

In definitiva:
Nonostante i concetti dominanti della terminologia di LVM siano 5, come descritto precedentemente, quelli con cui si trova più a contatto l'utente sono i primi tre: Physical Device, Volume Group e Logical Volume. Gli altri due sono, per così dire, concetti più di basso livello, quindi è possibile approfondirli in un secondo tempo.
Come si evince dalla figura precedente, l'elemento innovativo (che quindi conferisce maggiore flessibilità ad LVM) è il Volume Group.
Esso in pratica fonde i volumi fisici disponibili (partizioni varie, raid, etc.) in una specie di "massa grezza" pronta per essere manipolata al fine di creare uno o più Logical Volume.
Questi ultimi, come già detto, svolgono il ruolo delle partizioni quindi sono disponibili per essere innestati nel sistema in specifici mountpoint ma in una maniera più flessibile (in termini di espandibilità e riduzione di spazio) rispetto alle partizioni tradizionali.

Approfondimenti

Banner e-zine.png
La prima e-zine italiana sul mondo Debian

La spiegazione di come si comporta e funziona l'LVM è già stata tratta nell'e-zine numero 5 di debianizzati.org nello sviluppo dell'articolo LVM mirror. Ecco a seguire il riporto dell'Introduzione teorica all'LVM:

LVM è l'acronimo di Logical Volume Manager, ovvero di Gestore dei Volumi Logici di Linux. Ma quindi cosa sono questi volumi logici?

L'idea di fondo è di sostituire al concetto di partizione un diverso contenitore (il Logical Volume) il quale non dipende più dalle limitate informazioni contenibili nell'MBR ma, tramite le gestione del kernel Linux, si può liberamente spostare/raggruppare/estendere da un settore all'altro di ogni disco, quasi come se fosse un file o una cartella all'interno del file system.

All'atto pratico la modalità di funzionamento dell'LVM può essere riassunta nel seguente modo. L'unità principale sulla quale si basa il sistema è il Volume Group. Detto VG verrà da noi dotato di una certa capacità di memoria pari alla capacità di tutti i supporti di massa che gli assegnaremo.
Tali supporti possono essere dischi SATA, PATA, USB, configurazioni RAID, SSD o quant'altro e mi riferirò ad essi come Physical Device. I PD possono anche non avere alcuna partizione, seppure si consiglia di dotarli almeno di una partizione primaria siccome altri sistemi operativi, qualora non riscontrino alcuna partizione, potrebbero inavvertitamente sovrascriverli.
I PD, quando sono assegnati ad un VG, sono gestiti dall'LVM suddividendo lo spazio disponibile su ognuno di essi tramite una suddivisione in unità fisiche ridotte (di default di qualche MB) dette Physical Extent. Per questo motivo, prima di aggiungere un PD ad un VG sarà necessario inizializzarlo proprio per creare su di esso i vari PE.
Quando creeremo un Logical Volume (ovvero lo spazio che useremo come "partizione") l'LVM gestirà lo spazio virtuale (logico) da noi richiesto suddividendolo in tanti Logical Extent tali da permettere di distribuire ogni LE, che altro non è che un pezzo del nostro LV, tra i PD. Questa allocazione avviene facendo corrispondere ad ogni LE un determinato PE secondo necessità.

Da tale modo di spezzettare i LV ed i PD nasce tutta la potenzialità dellLVM. Infatti, quando all'interno del nostro VG creeremo un LV lLVM non sarà obbligato a distribuire lo spazio da noi richiesto tra i PD ma tra le PE. Pertanto sarà possibile spostare/allargare/ridurre il LV semplicemente agendo sulla distribuzione delle LE tra i PE disponibili.
Ad esempio, quando in questo articolo creeremo il nostro LV in modalità mirrored, l'LVM si limiterà semplicemente a sincronizzare alcune PE di un PD con le PE del nostro secondo PD. Pertanto ad ogni coppia di PE sincronizzata corrisponderà il medesimo LE (e quindi il medesimo LV).

Per chi, perso tra queste sigle, volesse maggiormente approfondire segnalo alcuni utili HOWTO (2) (3).

Chi è riuscito a seguire fin qui il discorso, ecco un grafico esemplificativo del funzionamento. In questo caso i LE sono omessi in quanto corrispondono 1:1 ai PE, ovviamente se vi ci fosse un mirror la corrispondenza tra LE e PE sarebbe 1:2 (un LV fa riferimento a due diversi spazi sui PD). Infine si osservi il LV /home, quest'ultimo è in modalità striped ovvero è in parte sul primo PD ed in parte sul secondo PD.
500px-LVM1.svg.png