Come espandere una partizione root LVM di Linux utilizzando spazio di archiviazione aggiuntivo su Linux
Introduzione
In questo tutorial, eseguirai l'espansione del disco LVM estendendo una partizione root del Linux Logical Volume Manager (LVM) con spazio di archiviazione aggiuntivo. Questo metodo ti consente di estendere il filesystem Linux LVM senza reinstallare il sistema o interrompere i servizi. Seguirai un processo preciso e sicuro adatto ai sistemi di produzione dove gli errori possono comportare una perdita di dati irreversibile.
Prerequisiti
Pubblico target: Amministratori di sistema principianti
Tempo stimato: 30–45 minuti
Sistema operativo: Distribuzione Linux con supporto LVM (testato su Debian 13)
Software richiesto:
- lvm2 (2.03.x o successivo)
- util-linux (include lsblk)
- e2fsprogs (per ext4) o xfsprogs (per XFS)
Requisiti hardware:
- Un disco aggiuntivo vuoto (ad esempio /dev/sdb)
Permessi:
- Root o un utente con privilegi sudo
Requisiti di rete:
- Non richiesti
Conoscenze presunte:
- Uso base della riga di comando
- Comprensione di dischi e partizioni
Obiettivo finale: Alla fine di questo tutorial, aggiungerai un disco a LVM e completerai l'espansione del volume LVM del tuo volume logico root utilizzando spazio di archiviazione aggiuntivo senza tempi di inattività.
Importante: Il costo di un errore è inestimabile. Un singolo nome di dispositivo errato può distruggere tutti i dati sul tuo sistema. Verifica sempre ogni comando prima dell'esecuzione.
Se è la prima volta che lavori con LVM, pratica questi passaggi in un ambiente non di produzione.
Passo 1: Verifica la Configurazione LVM Corrente
Esegui i seguenti comandi per ispezionare la tua configurazione LVM corrente.
pvs visualizza informazioni sui volumi fisici. Mostra quali dischi o partizioni sono inizializzati per LVM e quanto spazio è disponibile o utilizzato su ciascun volume fisico.
sudo pvs
Esempio di output:
PV VG Fmt Attr PSize PFree /dev/sda5 debian-lvm-vg lvm2 a-- 9.25g 36.00m
vgs visualizza informazioni sui gruppi di volumi. Mostra la dimensione totale di ciascun gruppo di volumi, quanto spazio è utilizzato e quanto spazio libero è disponibile per l'espansione.
sudo vgs
Esempio di output:
VG #PV #LV #SN Attr VSize VFree debian-lvm-vg 1 2 0 wz--n- 9.25g 36.00m
lvs visualizza informazioni sui volumi logici. Mostra la dimensione, il nome e gli attributi di ciascun volume logico, incluso il volume root che estenderai. Estenderai la partizione utilizzando un disco aggiuntivo.
sudo lvs
Esempio di output:
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root debian-lvm-vg -wi-ao---- <8.69g swap_1 debian-lvm-vg -wi-ao---- 544.00m
Risultato atteso:
- Vedi il tuo volume logico root, il gruppo di volumi e i volumi fisici
- Il volume logico root è tipicamente montato su
/
Passo 2: Identifica il Nuovo Disco
Elenca i dischi disponibili:
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT
Esempio di output:
NAME SIZE TYPE MOUNTPOINT sda 10G disk ├─sda1 759M part /boot ├─sda2 1K part └─sda5 9.3G part ├─debian--lvm--vg-root 8.7G lvm / └─debian--lvm--vg-swap_1 544M lvm [SWAP] sdb 5G disk sdc 5G disk sdd 5G disk
Risultato atteso:
- Un nuovo disco come /dev/sdb appare senza partizioni o filesystem
Importante: Assicurati che il disco sia corretto e vuoto. Tutti i dati esistenti su questo disco andranno persi.
Passo 3: Crea un Volume Fisico
Inizializza il nuovo disco come volume fisico:
sudo pvcreate /dev/sdb
Risultato atteso:
- Il comando si completa con successo e riporta la creazione del volume fisico
Verifica:
sudo pvs
Questo ti permette di aggiungere nuovo spazio di archiviazione all'LVM esistente.
Passo 4: Estendi il Gruppo di Volumi
Aggiungi il nuovo volume fisico al tuo gruppo di volumi esistente:
sudo vgextend <VG_NAME> /dev/sdb
Risultato atteso:
- La dimensione del gruppo di volumi aumenta e include il nuovo disco
Verifica:
sudo vgs
Esempio di output:
VG #PV #LV #SN Attr VSize VFree debian-lvm-vg 2 2 0 wz--n- <19.25g 0
La colonna PV mostra che il gruppo di volumi ora include il nuovo disco.
Passo 5: Estendi il Volume Logico Root
Estendi il volume logico root per utilizzare tutto lo spazio libero disponibile. Per estendere il volume logico si utilizza il comando lvextend:
sudo lvextend -l +100%FREE /dev/<VG_NAME>/root
Risultato atteso:
- La dimensione del volume logico aumenta con successo
Passo 6: Ridimensiona il Filesystem
Ridimensiona il filesystem per utilizzare lo spazio aggiuntivo.
Per ext4:
sudo resize2fs /dev/<VG_NAME>/root
Per XFS:
sudo xfs_growfs /
Risultato atteso:
- Il filesystem si espande per corrispondere alla nuova dimensione del volume logico
Passo 7: Verifica l'Espansione
Controlla la dimensione aggiornata del filesystem:
df -h /
Risultato atteso:
- Il filesystem root riflette la capacità aumentata
Conferma lo stato di LVM:
sudo lvs
sudo vgs
Verifica e Test
- Il sistema rimane operativo senza riavvio
df -hmostra spazio disponibile aumentato- Nessun errore appare nei log di sistema:
dmesg | tail
Ripristino delle Modifiche
Il ripristino è possibile solo se non sono stati scritti dati critici nel nuovo spazio.
- Riduci l'uso del filesystem se applicabile
- Riduci il filesystem se supportato
- Riduci il volume logico:
sudo lvreduce /dev/<VG_NAME>/root - Rimuovi il disco dal gruppo di volumi:
sudo vgreduce <VG_NAME> /dev/sdb - Rimuovi il volume fisico:
sudo pvremove /dev/sdb
Importante: Ridurre i volumi logici e i filesystem è rischioso e può portare a perdita di dati. Evita questa operazione in produzione a meno che non sia assolutamente necessario.
Risoluzione dei Problemi
- Il comando fallisce con "dispositivo non trovato": verifica il nome del disco usando
lsblk - Il gruppo di volumi non mostra spazio libero: conferma che
vgextendsia stato completato con successo - La dimensione del filesystem non è cambiata: assicurati di utilizzare lo strumento corretto per il tuo tipo di filesystem
- Errori di permesso negato: assicurati che i comandi siano eseguiti con sudo o come root
Conclusione e Prossimi Passi
Hai imparato con successo ad espandere il filesystem root senza tempi di inattività utilizzando LVM aggiungendo un nuovo disco, estendendo il gruppo di volumi e ridimensionando il filesystem senza tempi di inattività. Questo metodo è essenziale quando è necessario aggiornare la capacità di archiviazione del server in ambienti Linux.
Prossimi passi:
- Configura snapshot LVM per i backup
- Monitora l'uso del disco
- Esplora funzionalità avanzate di LVM