how-to:lvm

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
how-to:lvm [2014/08/18 01:57] – creata Giuseppe Di Terlizzihow-to:lvm [2014/08/18 22:24] (current) Giuseppe Di Terlizzi
Line 1: Line 1:
 ====== LVM: Logical Volume Group ====== ====== LVM: Logical Volume Group ======
  
-LVM è un programma che permette di gestire ed oraganizzare in modo più logico le partizioni sulla nostra Linux-Box. Con LVM si ha una maggiore flessibilità a differeza del partizionamento classico con la possibilità di ridimensionare "a caldo" le partizioni.+LVM è un gestore di volumi che permette di organizzare in modo più logico le partizioni sulla nostra Linux Box.
  
-===== Preparazione =====+Uno dei problemi che affligge il classico sistema di partizionamento è la difficolta di ridimensionare la dimensione delle partizioni create. In passato ci dovevamo affidare a tool di terze parti o spostare tutti i dati delle partizioni in un disco capiente, riorganizzare le partizioni e travasare nuovamente i dati. Con LVM si supera questa difficoltà in quanto al posto delle partizioni vengono creati dei volumi logici che possono essere ridimensionati facimente ed anche "a caldo".
  
-Prima di iniziare è necessario verificare che sul nostro sistema sia installato il pacchetto ''lvm2''.+Con LVM è possibile creare un volume unendo uno o più dischi fisici in modo da avere un unico grande volume. Un'altra caratteristica degna di nota e che LVM offre anche la possibilità di creare degli "snapshot" in modo da ripristinare facilmente i nostri dati.
  
 +Con LVM abbiamo:
  
-===== Schema =====+  * **Physical Volume**: Uno o più dischi che vanno a creare il Volume Group 
 +  * **Volume Group**: Il contenitore dei Logical Volume 
 +  * **Logical Volume**: Volume che contiene i nostri dati, paragonabile alla vecchia partizione.
  
 +===== Schema di esempio =====
 +
 +^ Physical volumes ^^^^^
 ^ Disco 1 ^^ Disco 2 ^^^ ^ Disco 1 ^^ Disco 2 ^^^
 |  /dev/sda (100GB)  ||  /dev/sdb (100GB)  ||| |  /dev/sda (100GB)  ||  /dev/sdb (100GB)  |||
 | /dev/sda1 (50GB) | /dev/sda2 (50GB) | /dev/sdb1 (50GB) | /dev/sdb2 (50GB) || | /dev/sda1 (50GB) | /dev/sda2 (50GB) | /dev/sdb1 (50GB) | /dev/sdb2 (50GB) ||
 ^ Volume Group ^^^^^ ^ Volume Group ^^^^^
-| /dev/storage (/dev/sda + /dev/sdb) |||||+| /dev/storage (/dev/sda + /dev/sdb = 200GB) |||||
 ^ Logical Volume ^^^^^ ^ Logical Volume ^^^^^
 | /dev/storage/root \\ (20GB) | /dev/storage/home \\ (80GB) | /dev/storage/log \\ (10GB) | /dev/storage/backup \\ (40GB) | /dev/storage/web \\ (50GB) | | /dev/storage/root \\ (20GB) | /dev/storage/home \\ (80GB) | /dev/storage/log \\ (10GB) | /dev/storage/backup \\ (40GB) | /dev/storage/web \\ (50GB) |
 +
 +Nell'esempio qui sopra abbiamo due dischi da 100GB l'uno partizionati a sua volta con due volumi da 50GB. Da questi due dischi è stato creato un unico volume da 200GB. Successivamente sono stati creati diversi volumi logici.
 +
 +===== Avvertenze =====
 +
 +<div important 90% round center>Utilizzate i comandi descritti in questo articolo con cautela in quanto stiamo lavorando con i dischi e se qualcosa va storto possiamo **perdere i nostri dati**.
 +Se siamo in vena di esperimenti prendiamo una penna USB vuota!</div>
 +
 +===== Installare LVM =====
 +
 +Prima di iniziare è necessario verificare che sul nostro sistema sia installato il pacchetto ''lvm2''.
 +
 +<div info 90% round center>La maggior parte delle distribuzioni inseriscono di default il pacchetto nell'installazione base.</div>
 +
 +Il pacchetto LVM mette a disposizione diversi comandi per amministrare i nostri volumi LVM.
 +
 +^ ::: ^ Comando ^ Descrizione ^
 +| **Physical Volume** | ''pvcreate'' | Inizializza un disco per LVM |
 +| ::: | ''pvscan'' | Elenca tutti i volumi fisici presenti nel nostro sitema |
 +| ::: | ''pvdisplay'' | Mostra le informazioni sui volumi fisici presenti nel nostro sitema |
 +| **Volume Group** | ''vgcreate'' | Crea un gruppo di volumi LVM |
 +| ::: | ''vgscan'' | Elenca tutti i gruppi di volumi presenti nel nostro sitema |
 +| ::: | ''vgdisplay'' | Mostra le informazioni sui gruppi di volumi presenti nel nostro sitema |
 +| ::: | ''vgextend'' | Aggiunge uno o più volumi fisici ad un gruppo di volumi gia esistente |
 +| ::: | ''vgreduce'' | Rimuove uno o più volumi fisici da un gruppo di volumi |
 +| **Logical Volume** | ''lvcreate'' | Crea un volume logico |
 +| ::: | ''lvscan'' | Elenca tutti i volumi logici presenti nel nostro sitema |
 +| ::: | ''lvdisplay'' | Mostra le informazioni sui volumi logici presenti nel nostro sitema |
 +
 +==== Partizionare i dischi ====
 +
 +Il prossimo passo è creare con ''fdisk'' o ''cfdisk'' una partizione di tipo ''Linux LVM'' (identificativo ''8E'' o ''0x08e'') sul disco che abbiamo intenzione di usare con LVM.
 +
 +==== Creiamo il Physical Volume ====
 +
 +Il prossimo passo è inizializzare il disco con il comando ''pvcreate''. Questo comando riserva un'area di dati sul disco per permettere ad LVM per scrivere le informazioni necessarie per gestire il volume.
 +
 +  # pvcreate /dev/sda
 +
 +<div tip 90% center round>Se dobbiamo utilizzare più dischi con LVM è possibile indicare nello stesso comando più dispositivi:
 +
 +  # pvcreate /dev/sda /dev/sdb1
 +</div>
 +
 +==== Creiamo il Volume Group ====
 +
 +Adesso creiamo il gruppo di volumi ed assegnamogli un nome.
 +
 +  # vgcreate storage /dev/sda
 +
 +==== Creiamo i Logical Volume ====
 +
 +Prossimo passo è creare i singoli volumi logici dimensionandoli in base alle nostre necessità.
 +
 +  # lvcreate storage -L 10G -n root
 +  # lvcreate storage -L 5G -n swap 
 +  # lvcreate storage -L 50G -n home
 +  
 +Nell'esempio abbiamo creato 3 volumi logici chiamati root (da 10G), swap (da 5G) e home (da 50G).
 +
 +<div tip 90% round center>Per assegnare ad un volume tutto lo spazio rimasto sul **VolumeGroup** possiamo usare il comando con questa sintassi:
 +
 +  # lvcreate storage -l 100%FREE -n home
 +</div>
 +
 +==== Formattiamo le partizioni ====
 +
 +Ultimo importante passo è formattare le partizioni con il filesystem più adatto allo scopo del volume. Ad esempio:
 +
 +  # mkfs.ext4 /dev/storage/root
 +  # mkswap /dev/storage/swap
 +  # mkfs.ext4 /dev/storage/home
 +
 +==== Ultimi ritocchi ====
 +
 +=== Editiamo /etc/fstab ===
 +
 +Se abbiamo creato dei volumi con LVM per installare la nostra distribuzione assicuriamoci che ''/etc/fstab'' sia configurato correttamente.
 +
 +=== LVM su dischi rimuovibili ===
 +
 +Se al posto di un disco rigido abbiamo utilizzato un HD esterno o pennetta USB prima di rimuoverlo completamente è necessario disattivare il **VolumeGroup** altrimenti avremo una serie di errori:
 +
 +  # vgscan
 +  [...]
 +  /dev/storage/home: read failed after 0 of 4096 at 10737352704: Errore di input/output
 +  /dev/storage/home: read failed after 0 of 4096 at 10737410048: Errore di input/output
 +  /dev/storage/home: read failed after 0 of 4096 at 0: Errore di input/output
 +  /dev/storage/home: read failed after 0 of 4096 at 4096: Errore di input/output
 +
 +Per disattivare il **VolumeGroup**:
 +
 +  # vgchange -an <nome del gruppo>
 +
 +Nel caso fosse necessario attivarlo:
 +
 +  # vgchange -ay <nome del gruppo>
 +
 +
 +{{tag>how-to linux lvm}}
 +
  • how-to/lvm.1408319870.txt.gz
  • Last modified: 10 years ago
  • by Giuseppe Di Terlizzi