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:
- http://www.linuxdevcenter.com/pub/a/linux/2006/04/27/managing-disk-space-with-lvm.html
- http://www.debian-administration.org/articles/410
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
ifconfigIl 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 -lL’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 tableNon 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/sdbserver1:~# 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:
- software che viene eseguito all’avvio (ad es., vecchie versioni di LILO)
- 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/sdePoi esegui
fdisk -ldi 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 tableOra prepariamo le nostre nuove partizioni per LVM:
pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1server1:~# 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 successoTorniamo indietro su quest’ultima azione per scopi di addestramento:
pvremove /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1server1:~# 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 successoPoi esegui
pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1di 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 successoOra esegui
pvdisplayper 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-EKdRK6Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.