LVM Guide · 9 min read · Sep 22, 2025

Guida per principianti a LVM

Versione 1.0
Autore: Falko Timme
Ultimo aggiornamento: 2015-02-09

Questa guida mostra come lavorare con LVM (Logical Volume Management) su Linux. Descrive anche come utilizzare LVM insieme a RAID1 in un capitolo extra. Poiché LVM è un argomento piuttosto astratto, questo articolo viene fornito con un’immagine VMware di Debian Etch che puoi scaricare e avviare, e su quel sistema Debian Etch puoi eseguire tutti i comandi che eseguo qui e confrontare i tuoi risultati con i miei. Attraverso questo approccio pratico dovresti abituarti a LVM molto rapidamente.

Tuttavia, non fornisco alcuna garanzia che questo tutorial funzioni per te!

1 Nota preliminare

Questo tutorial è stato ispirato da due articoli che ho letto:

Questi sono ottimi articoli, ma difficili da capire se non hai mai lavorato con LVM prima. Ecco perché ho creato questa immagine VMware di Debian Etch che puoi scaricare e eseguire in VMware Server o VMware Player (vedi https://www.howtoforge.com/import_vmware_images per imparare come fare).

Ho installato tutti gli strumenti di cui abbiamo bisogno durante il corso di questa guida sul sistema Debian Etch (eseguendo

apt-get install lvm2 dmsetup mdadm reiserfsprogs xfsprogs

) quindi non devi preoccuparti di questo.

La rete del sistema Debian Etch è configurata tramite DHCP, quindi non devi preoccuparti di indirizzi IP in conflitto. La password di root è howtoforge. Puoi anche connetterti a quel sistema con un client SSH come PuTTY. Per scoprire l’indirizzo IP del sistema Debian Etch, esegui

ifconfig

Il sistema ha sei dischi rigidi SCSI, /dev/sda - /dev/sdf. /dev/sda è utilizzato per il sistema Debian Etch stesso, mentre utilizzeremo /dev/sdb - /dev/sdf per LVM e RAID. /dev/sdb - /dev/sdf hanno ciascuno 80GB di spazio su disco. All’inizio ci comporteremo come se ciascuno avesse solo 25GB di spazio su disco (utilizzando quindi solo 25GB su ciascuno di essi), e nel corso del tutorial “sostituiremo” i nostri dischi rigidi da 25GB con dischi rigidi da 80GB, dimostrando così come puoi sostituire dischi rigidi piccoli con altri più grandi in LVM.

L’articolo http://www.linuxdevcenter.com/pub/a/linux/2006/04/27/managing-disk-space-with-lvm.html utilizza dischi rigidi da 250GB e 800GB, ma alcuni comandi come pvmove richiedono molto tempo con tali dimensioni di dischi rigidi, ecco perché ho deciso di utilizzare dischi rigidi da 25GB e 80GB (è sufficiente per capire come funziona LVM).

1.1 Riepilogo

Scarica questa immagine VMware di Debian Etch (~310MB) e avviala in questo modo. Accedi come root con la password howtoforge.

2 Layout di LVM

Fondamentalmente LVM appare così:

Hai uno o più volumi fisici (/dev/sdb1 - /dev/sde1 nel nostro esempio), e su questi volumi fisici crei uno o più gruppi di volumi (ad es. fileserver), e in ciascun gruppo di volumi puoi creare uno o più volumi logici. Se utilizzi più volumi fisici, ciascun volume logico può essere più grande di uno dei volumi fisici sottostanti (ma ovviamente la somma dei volumi logici non può superare lo spazio totale offerto dai volumi fisici).

È una buona pratica non allocare tutto lo spazio ai volumi logici, ma lasciare un po’ di spazio inutilizzato. In questo modo puoi ingrandire uno o più volumi logici in seguito se ne senti il bisogno.

In questo esempio creeremo un gruppo di volumi chiamato fileserver, e creeremo anche i volumi logici /dev/fileserver/share, /dev/fileserver/backup e /dev/fileserver/media (che utilizzeranno solo metà dello spazio offerto dai nostri volumi fisici per ora - in questo modo possiamo passare a RAID1 in seguito (anche descritto in questo tutorial)).

3 La nostra prima configurazione LVM

Scopriamo di più sui nostri dischi rigidi:

fdisk -l

L’output appare così:

server1:~# fdisk -l  
   
 Disco /dev/sda: 21.4 GB, 21474836480 bytes  
 255 heads, 63 sectors/track, 2610 cylinders  
 Units = cylinders of 16065 * 512 = 8225280 bytes  
   
    Device Boot      Start         End      Blocks   Id  System  
 /dev/sda1   *           1          18      144553+  83  Linux  
 /dev/sda2             19        2450    19535040   83  Linux  
 /dev/sda4            2451        2610     1285200   82  Linux swap / Solaris  
   
 Disco /dev/sdb: 85.8 GB, 85899345920 bytes  
 255 heads, 63 sectors/track, 10443 cylinders  
 Units = cylinders of 16065 * 512 = 8225280 bytes  
   
 Disco /dev/sdb doesn't contain a valid partition table  
   
 Disco /dev/sdc: 85.8 GB, 85899345920 bytes  
 255 heads, 63 sectors/track, 10443 cylinders  
 Units = cylinders of 16065 * 512 = 8225280 bytes  
   
 Disco /dev/sdc doesn't contain a valid partition table  
   
 Disco /dev/sdd: 85.8 GB, 85899345920 bytes  
 255 heads, 63 sectors/track, 10443 cylinders  
 Units = cylinders of 16065 * 512 = 8225280 bytes  
   
 Disco /dev/sdd doesn't contain a valid partition table  
   
 Disco /dev/sde: 85.8 GB, 85899345920 bytes  
 255 heads, 63 sectors/track, 10443 cylinders  
 Units = cylinders of 16065 * 512 = 8225280 bytes  
   
 Disco /dev/sde doesn't contain a valid partition table  
   
 Disco /dev/sdf: 85.8 GB, 85899345920 bytes  
 255 heads, 63 sectors/track, 10443 cylinders  
 Units = cylinders of 16065 * 512 = 8225280 bytes  
   
 Disco /dev/sdf doesn't contain a valid partition table

Non ci sono ancora partizioni su /dev/sdb - /dev/sdf. Creeremo le partizioni /dev/sdb1, /dev/sdc1, /dev/sdd1 e /dev/sde1 e lasceremo /dev/sdf intatto per ora. Ci comportiamo come se i nostri dischi rigidi avessero solo 25GB di spazio invece di 80GB per ora, quindi assegniamo 25GB a /dev/sdb1, /dev/sdc1, /dev/sdd1 e /dev/sde1:

fdisk /dev/sdb

server1:~# fdisk /dev/sdb

Il numero di cilindri per questo disco è impostato su 10443.
Non c’è nulla di sbagliato in questo, ma è più grande di 1024,
e potrebbe in determinate configurazioni causare problemi con:

  1. software che viene eseguito all’avvio (ad es., vecchie versioni di LILO)
  2. software di avvio e partizionamento di altri OS
    (ad es., DOS FDISK, OS/2 FDISK)

Comando (m per aiuto): <– m
Comando azione
a toggle un flag avviabile
b modifica bsd disklabel
c toggle il flag di compatibilità dos
d elimina una partizione
l elenca i tipi di partizione conosciuti
m stampa questo menu
n aggiungi una nuova partizione
o crea una nuova tabella delle partizioni DOS vuota
p stampa la tabella delle partizioni
q esci senza salvare le modifiche
s crea una nuova sun disklabel vuota
t cambia l’id di sistema di una partizione
u cambia unità di visualizzazione/inserimento
v verifica la tabella delle partizioni
w scrivi la tabella su disco e esci
x funzionalità extra (solo per esperti)

Comando (m per aiuto): <– n
Comando azione
e estesa
p partizione primaria (1-4)
<– p
Numero della partizione (1-4): <– 1
Primo cilindro (1-10443, valore predefinito 1): <–
Utilizzando il valore predefinito 1
Ultimo cilindro o +dimensione o +dimensioneM o +dimensioneK (1-10443, valore predefinito 10443): <– +25000M

Comando (m per aiuto): <– t
Partizione selezionata 1
Codice esadecimale (tipo L per elencare i codici): <– L

0 Vuoto 1e Hidden W95 FAT1 80 Old Minix be Solaris boot
1 FAT12 24 NEC DOS 81 Minix / old Lin bf Solaris
2 XENIX root 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
5 Estesa 41 PPC PReP Boot 85 Linux esteso c7 Syrinx
6 FAT16 42 SFS 86 NTFS volume set da Non-FS data
7 HPFS/NTFS 4d QNX4.x 87 NTFS volume set db CP/M / CTOS / .
8 AIX 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility
9 AIX avviabile 4f QNX4.x 3rd part 8e Linux LVM df BootIt
a OS/2 Boot Manag 50 OnTrack DM 93 Amoeba e1 access DOS
b W95 FAT32 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O
c W95 FAT32 (LBA) 52 CP/M 9f BSD/OS e4 SpeedStor
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs
f W95 Ext’d (LBA) 54 OnTrackDM6 a5 FreeBSD ee EFI GPT
10 OPUS 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/
11 Hidden FAT12 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b
12 Compaq diagnost 5c Priam Edisk a8 Darwin UFS f1 SpeedStor
14 Hidden FAT16 <3 61 SpeedStor a9 NetBSD f4 SpeedStor
16 Hidden FAT16 63 GNU HURD or Sys ab Darwin boot f2 DOS secondario
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fd Linux raid auto
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fe LANstep
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid ff BBT
1c Hidden W95 FAT3 75 PC/IX
Codice esadecimale (tipo L per elencare i codici): <– 8e
Cambiato il tipo di sistema della partizione 1 in 8e (Linux LVM)

Comando (m per aiuto): <– w
La tabella delle partizioni è stata modificata!

Chiamando ioctl() per rileggere la tabella delle partizioni.
Sincronizzazione dischi.

Ora facciamo lo stesso per i dischi rigidi /dev/sdc - /dev/sde:

fdisk /dev/sdc  
 fdisk /dev/sdd  
 fdisk /dev/sde

Poi esegui

fdisk -l

di nuovo. L’output dovrebbe apparire così:

server1:~# fdisk -l  
   
 Disco /dev/sda: 21.4 GB, 21474836480 bytes  
 255 heads, 63 sectors/track, 2610 cylinders  
 Units = cylinders of 16065 * 512 = 8225280 bytes  
   
    Device Boot      Start         End      Blocks   Id  System  
 /dev/sda1   *           1          18      144553+  83  Linux  
 /dev/sda2             19        2450    19535040   83  Linux  
 /dev/sda4            2451        2610     1285200   82  Linux swap / Solaris  
   
 Disco /dev/sdb: 85.8 GB, 85899345920 bytes  
 255 heads, 63 sectors/track, 10443 cylinders  
 Units = cylinders of 16065 * 512 = 8225280 bytes  
   
    Device Boot      Start         End      Blocks   Id  System  
 /dev/sdb1               1        3040    24418768+  8e  Linux LVM  
   
 Disco /dev/sdc: 85.8 GB, 85899345920 bytes  
 255 heads, 63 sectors/track, 10443 cylinders  
 Units = cylinders of 16065 * 512 = 8225280 bytes  
   
    Device Boot      Start         End      Blocks   Id  System  
 /dev/sdc1               1        3040    24418768+  8e  Linux LVM  
   
 Disco /dev/sdd: 85.8 GB, 85899345920 bytes  
 255 heads, 63 sectors/track, 10443 cylinders  
 Units = cylinders of 16065 * 512 = 8225280 bytes  
   
    Device Boot      Start         End      Blocks   Id  System  
 /dev/sdd1               1        3040    24418768+  8e  Linux LVM  
   
 Disco /dev/sde: 85.8 GB, 85899345920 bytes  
 255 heads, 63 sectors/track, 10443 cylinders  
 Units = cylinders of 16065 * 512 = 8225280 bytes  
   
    Device Boot      Start         End      Blocks   Id  System  
 /dev/sde1               1        3040    24418768+  8e  Linux LVM  
   
 Disco /dev/sdf: 85.8 GB, 85899345920 bytes  
 255 heads, 63 sectors/track, 10443 cylinders  
 Units = cylinders of 16065 * 512 = 8225280 bytes  
   
 Disco /dev/sdf doesn't contain a valid partition table

Ora prepariamo le nostre nuove partizioni per LVM:

pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
server1:~# pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1  
   Volume fisico "/dev/sdb1" creato con successo  
   Volume fisico "/dev/sdc1" creato con successo  
   Volume fisico "/dev/sdd1" creato con successo  
   Volume fisico "/dev/sde1" creato con successo

Torniamo indietro su quest’ultima azione per scopi di addestramento:

pvremove /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
server1:~# pvremove /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1  
   Etichette sul volume fisico "/dev/sdb1" cancellate con successo  
   Etichette sul volume fisico "/dev/sdc1" cancellate con successo  
   Etichette sul volume fisico "/dev/sdd1" cancellate con successo  
   Etichette sul volume fisico "/dev/sde1" cancellate con successo

Poi esegui

pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1

di nuovo:

server1:~# pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1  
   Volume fisico "/dev/sdb1" creato con successo  
   Volume fisico "/dev/sdc1" creato con successo  
   Volume fisico "/dev/sdd1" creato con successo  
   Volume fisico "/dev/sde1" creato con successo

Ora esegui

pvdisplay

per conoscere lo stato attuale dei tuoi volumi fisici:

server1:~# pvdisplay  
   --- NUOVO Volume fisico ---  
   Nome PV               /dev/sdb1  
   Nome VG  
   Dimensione PV         23.29 GB  
   Allocabile           NO  
   Dimensione PE (KByte) 0  
   Totale PE            0  
   PE liberi           0  
   PE allocati         0  
   UUID PV             G8lu2L-Hij1-NVde-sOKc-OoVI-fadg-Jd1vyU  
   
   --- NUOVO Volume fisico ---  
   Nome PV               /dev/sdc1  
   Nome VG  
   Dimensione PV         23.29 GB  
   Allocabile           NO  
   Dimensione PE (KByte) 0  
   Totale PE            0  
   PE liberi           0  
   PE allocati         0  
   UUID PV             40GJyh-IbsI-pzhn-TDRq-PQ3l-3ut0-AVSE4B  
   
   --- NUOVO Volume fisico ---  
   Nome PV               /dev/sdd1  
   Nome VG  
   Dimensione PV         23.29 GB  
   Allocabile           NO  
   Dimensione PE (KByte) 0  
   Totale PE            0  
   PE liberi           0  
   PE allocati         0  
   UUID PV             4mU63D-4s26-uL00-r0pO-Q0hP-mvQR-2YJN5B  
   
   --- NUOVO Volume fisico ---  
   Nome PV               /dev/sde1  
   Nome VG  
   Dimensione PV         23.29 GB  
   Allocabile           NO  
   Dimensione PE (KByte) 0  
   Totale PE            0  
   PE liberi           0  
   PE allocati         0  
   UUID PV             3upcZc-4eS2-h4r4-iBKK-gZJv-AYt3-EKdRK6
Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.