24 Agosto 2023

Cos’è e come funziona LVM?

Esplorando LVM: Come la gestione dinamica dello spazio su disco ha rivoluzionato l’interazione e l’efficienza nell’archiviazione su sistemi Linux.

Il mondo Linux è ricco di strumenti e tecnologie che permettono agli amministratori di sistema di gestire le risorse hardware in modo efficiente e flessibile. Uno di questi strumenti è LVM, o Logical Volume Manager. In questo articolo, esploreremo cos’è LVM, come funziona e come può essere utilizzato per gestire lo storage su sistemi Linux.

1. Introduzione a LVM

LVM, acronimo di Logical Volume Manager, rappresenta una rivoluzione nel modo in cui gli amministratori di sistema e gli utenti finali interagiscono e gestiscono lo spazio di archiviazione su un sistema Linux. Al cuore della sua filosofia c’è l’idea di trattare i dischi fisici non come entità rigide e statiche, ma piuttosto come risorse flessibili all’interno di un pool unificato, noto come “Volume Group”. Questo concetto di pool consente agli utenti di allocare, ridimensionare e liberare spazio su disco in maniera dinamica, creando ciò che viene chiamato “volumi logici”.

 

A differenza della gestione tradizionale delle partizioni, dove ogni partizione ha una dimensione e una posizione fisica su disco, LVM astrae questo concetto. In pratica, ciò significa che, con LVM, non si è vincolati dalle limitazioni fisiche del disco. Se, ad esempio, si ha bisogno di più spazio per una particolare applicazione o servizio, è possibile ridimensionare un volume logico al volo, senza la necessità di smontare il filesystem o di interrompere il servizio. Questa flessibilità si estende anche alla capacità di spostare dati tra dischi diversi in modo trasparente, senza interruzioni o downtime.

Inoltre, LVM offre una visione più granulare dello storage, permettendo una gestione più efficiente dello spazio su disco. Ciò si traduce in una maggiore efficienza operativa, riducendo il rischio di sprechi di spazio e garantendo al contempo che le risorse siano disponibili quando e dove sono necessarie.

2. Componenti principali di LVM

LVM si basa su tre componenti principali:

  • Physical Volumes (PV): Questi rappresentano i dischi fisici o le partizioni che vengono utilizzati come storage per LVM.
  • Volume Groups (VG): Un VG è un insieme di PV. Puoi immaginare un VG come un grande disco virtuale composto da uno o più dischi fisici.
  • Logical Volumes (LV): Questi sono i “dischi” virtuali che vengono creati all’interno di un VG. Gli LV possono essere utilizzati come se fossero partizioni tradizionali.

3. Perché utilizzare LVM?

Ci sono molte ragioni per cui un amministratore di sistema potrebbe voler utilizzare LVM:

  • Flessibilità: Con LVM, è possibile ridimensionare i volumi logici al volo, senza la necessità di smontare il filesystem o di interrompere il servizio.
  • Snapshot: LVM permette di creare snapshot dei volumi, che sono utili per i backup o per testare modifiche senza impattare il volume originale.
  • Migrazione dei dati: Con LVM, è possibile spostare i dati da un disco fisico ad un altro senza interruzioni.
  • Gestione semplificata: LVM offre una gestione centralizzata dello storage, rendendo più semplice l’amministrazione di grandi quantità di spazio su disco.

4. Come funziona LVM

Dopo aver compreso i concetti di base di LVM, vediamo come funziona in pratica.

a. Inizializzazione dei Physical Volumes

Prima di poter utilizzare un disco o una partizione con LVM, è necessario inizializzarla come PV. Questo può essere fatto con il comando pvcreate.

pvcreate /dev/sdb1

b. Creazione di un Volume Group

Una volta che hai uno o più PV, puoi crearci un VG. Ad esempio, per creare un VG chiamato “myvg” con un PV, puoi usare:

vgcreate myvg /dev/sdb1

c. Creazione di Logical Volumes

Con un VG pronto, puoi iniziare a creare LV. Ad esempio, per creare un LV di 10GB chiamato “mylv” all’interno del VG “myvg”, puoi usare:

lvcreate -L 10G -n mylv myvg

d. Formattazione e montaggio

Una volta creato l’LV, può essere formattato con un filesystem come ext4 e montato come qualsiasi altra partizione:

mkfs.ext4 /dev/myvg/mylv
mount /dev/myvg/mylv /mnt/mydata

5. Operazioni avanzate con LVM

Oltre alle operazioni di base, LVM offre una serie di funzionalità avanzate.

a. Ridimensionamento dei Logical Volumes

LVM permette di ridimensionare gli LV al volo. Ad esempio, per estendere un LV di 5GB, puoi usare:

lvextend -L +5G /dev/myvg/mylv
resize2fs /dev/myvg/mylv

b. Creazione di snapshot

Gli snapshot sono utili per creare una copia “istantanea” di un LV:

lvcreate -L 5G -s -n mylv_snapshot /dev/myvg/mylv

c. Migrazione dei dati tra dischi

Se desideri spostare i dati da un PV ad un altro, puoi utilizzare pvmove:

pvmove /dev/sdb1 /dev/sdc1

6. Cheatsheet comandi LVM per Linux

Ecco un cheatsheet dei comandi LVM (Logical Volume Manager). Questa guida è stata progettata per offrire una panoramica rapida e chiara dei principali comandi LVM, fornendo non solo una breve descrizione della funzione di ciascun comando, ma anche esempi di sintassi per facilitarne l’uso. Che siate nuovi al mondo di LVM o semplicemente alla ricerca di un riferimento veloce, questo cheatsheet può aiutarvi a comprendere meglio il comando desiderato e la sua relativa sintassi. Utilizzatelo come punto di partenza o come strumento di consultazione rapida durante le vostre sessioni di lavoro con LVM.

Comandi per Physical Volume (PV)

 

Comando Funzione Sintassi di esempio
pvscan Scansiona tutti i dispositivi fisici utilizzati come PV pvscan
pvccreate Inizializza le partizioni per la creazione di PV pvcreate /dev/sdx1
pvdisplay Mostra gli attributi forniti da PV pvdisplay /dev/sdx1
pvchange Modifica l’attributo ottenuto da PV pvchange /dev/sdx1
pv Informazioni su PV pvdisplay /dev/sdx1
pvck Controlla i metadati di PV pvck /dev/sdx1
pvremove Rimuovi PV pvremove /dev/sdx1

Comandi per Gruppo di Volumi (VG)

Comando Funzione Sintassi di esempio
vgscan Scansiona ogni PV per VG vgscan
vgcreate Crea un Gruppo di Volumi vgcreate myvg /dev/sdx1
vgdisplay Mostra gli attributi disponibili in VG vgdisplay myvg
vgchange Modifica gli attributi di VG vgchange myvg
vgs Informazioni su VG vgs
vgck Controlla i metadati di VG vgck myvg
vgrename Rinomina VG vgrename oldvgname newvgname
vgreduce Rimuovi PV da VG per ridurne le dimensioni vgreduce myvg /dev/sdx1
vgextend Aggiungi PV al Gruppo di Volumi vgextend myvg /dev/sdx2
vgmerge Unisci due Gruppi di Volumi vgmerge myvg1 myvg2
vgsplit Separa due Gruppi di Volumi vgsplit myvg1 myvg2
vgremove Rimuovi un Gruppo di Volumi vgremove myvg

Comandi per Volume Logico (LV)

 

Comando Funzione Sintassi di esempio
lvscan Scansiona tutti i volumi logici per LV lvscan
lvcreate Crea un LV nel Gruppo di Volumi lvcreate -L 10G -n mylv myvg
lvdisplay Mostra gli attributi di LV lvdisplay /dev/myvg/mylv
lvchange Modifica gli attributi di LV lvchange /dev/myvg/mylv
lv Mostra gli attributi di LV lvdisplay /dev/myvg/mylv
lvrename Rinomina LV lvrename /dev/myvg/oldlvname /dev/myvg/newlvname
lvreduce Riduci le dimensioni di LV lvreduce -L -5G /dev/myvg/mylv
lvextend Aumenta le dimensioni di LV lvextend -L +5G /dev/myvg/mylv
lvresize Modifica le dimensioni di LV lvresize -L 15G /dev/myvg/mylv
lvremove Rimuovi LV lvremove /dev/myvg/mylv

7. Conclusione

LVM è uno strumento potente e flessibile che ogni amministratore di sistema Linux dovrebbe conoscere. Offre una gestione semplificata dello storage, con la capacità di ridimensionare, spostare e snapshot dei volumi al volo. Se stessi cercando un modo per gestire lo storage in modo più efficiente e flessibile, LVM potrebbe essere la soluzione che stai cercando.

Questo articolo ha fornito una panoramica di alto livello su LVM e le sue capacità. Ci sono molte altre funzionalità e dettagli che possono essere esplorati; quindi, ti incoraggio a sperimentare e approfondire ulteriormente questo argomento.

Ecco alcuni siti web di riferimento per LVM, che offrono documentazione dettagliata, guide e tutorial:

  1. Documentazione ufficiale di LVM
  2. The Linux Documentation Project (LDP)
    • URL: https://tldp.org/HOWTO/LVM-HOWTO/ LDP è una delle risorse più antiche e rispettate per la documentazione Linux. La loro guida su LVM è dettagliata e copre molte delle funzionalità di LVM.
  3. Arch Linux Wiki
    • URL: https://wiki.archlinux.org/title/LVM Anche se è specifico per Arch Linux, questo wiki è noto per le sue guide dettagliate e tecniche. La pagina su LVM non fa eccezione e offre una panoramica completa di come utilizzare LVM su Arch Linux.
  4. LinuxConfig.org
    • URL: https://linuxconfig.org/lvm-tutorial Questo sito offre una serie di guide e tutorial su vari argomenti Linux, compreso LVM. La guida su LVM è dettagliata e copre sia le operazioni di base che quelle avanzate.

Questi siti sono ottimi punti di partenza per chiunque voglia approfondire la propria conoscenza su LVM. Ti consiglio di esplorarli e di utilizzare le informazioni fornite per sperimentare e apprendere ulteriormente.

Hai dei dubbi? Non sai da dove iniziare? Contattaci !

Abbiamo tutte le risposte alle tue domande per aiutarti nella giusta scelta.

Chatta con noi

Chatta direttamente con il nostro supporto prevendita.

0256569681

Contattaci telefonicamente negli orari d’ufficio 9:30 – 19:30

Contattaci online

Apri una richiesta direttamente nell’area dei contatti.

INFORMAZIONI

Managed Server S.r.l. è un player italiano di riferimento nel fornire soluzioni avanzate di sistemistica GNU/Linux orientate all’alta performance. Con un modello di sottoscrizione dai costi contenuti e prevedibili, ci assicuriamo che i nostri clienti abbiano accesso a tecnologie avanzate nel campo dell’hosting, server dedicati e servizi cloud. Oltre a questo, offriamo consulenza sistemistica su sistemi Linux e manutenzione specializzata in DBMS, IT Security, Cloud e molto altro. Ci distinguiamo per l’expertise in hosting di primari CMS Open Source come WordPress, WooCommerce, Drupal, Prestashop, Joomla, OpenCart e Magento, affiancato da un servizio di supporto e consulenza di alto livello adatto per la Pubblica Amministrazione, PMI, ed aziende di qualsiasi dimensione.

Red Hat, Inc. detiene i diritti su Red Hat®, RHEL®, RedHat Linux®, e CentOS®; AlmaLinux™ è un marchio di AlmaLinux OS Foundation; Rocky Linux® è un marchio registrato di Rocky Linux Foundation; SUSE® è un marchio registrato di SUSE LLC; Canonical Ltd. detiene i diritti su Ubuntu®; Software in the Public Interest, Inc. detiene i diritti su Debian®; Linus Torvalds detiene i diritti su Linux®; FreeBSD® è un marchio registrato di The FreeBSD Foundation; NetBSD® è un marchio registrato di The NetBSD Foundation; OpenBSD® è un marchio registrato di Theo de Raadt. Oracle Corporation detiene i diritti su Oracle®, MySQL®, e MyRocks®; Percona® è un marchio registrato di Percona LLC; MariaDB® è un marchio registrato di MariaDB Corporation Ab; REDIS® è un marchio registrato di Redis Labs Ltd. F5 Networks, Inc. detiene i diritti su NGINX® e NGINX Plus®; Varnish® è un marchio registrato di Varnish Software AB. Adobe Inc. detiene i diritti su Magento®; PrestaShop® è un marchio registrato di PrestaShop SA; OpenCart® è un marchio registrato di OpenCart Limited. Automattic Inc. detiene i diritti su WordPress®, WooCommerce®, e JetPack®; Open Source Matters, Inc. detiene i diritti su Joomla®; Dries Buytaert detiene i diritti su Drupal®. Amazon Web Services, Inc. detiene i diritti su AWS®; Google LLC detiene i diritti su Google Cloud™ e Chrome™; Facebook, Inc. detiene i diritti su Facebook®; Microsoft Corporation detiene i diritti su Microsoft®, Azure®, e Internet Explorer®; Mozilla Foundation detiene i diritti su Firefox®. Apache® è un marchio registrato di The Apache Software Foundation; PHP® è un marchio registrato del PHP Group. CloudFlare® è un marchio registrato di Cloudflare, Inc.; NETSCOUT® è un marchio registrato di NETSCOUT Systems Inc.; ElasticSearch®, LogStash®, e Kibana® sono marchi registrati di Elastic N.V. Questo sito non è affiliato, sponsorizzato, o altrimenti associato a nessuna delle entità sopra menzionate e non rappresenta nessuna di queste entità in alcun modo. Tutti i diritti sui marchi e sui nomi di prodotto menzionati sono di proprietà dei rispettivi detentori di copyright. Ogni altro marchio citato appartiene ai propri registranti. MANAGED SERVER® è un marchio registrato a livello Europeo da MANAGED SERVER SRL Via Enzo Ferrari, 9 62012 Civitanova Marche (MC) Italia.

Torna in alto