Premier Training & Business Partner Red Hat

Linux: Struttura di Partizioni e Partizionamento tramite LVM

Michele Milaneschi
Ti piacerebbe diventare anche tu uno di noi e
pubblicare i tuoi articoli nel blog degli RHCE italiani?

Dopo aver parlato di come è strutturato il File System Linux ci accingeremo a descrivere il processo della sua creazione usando i metodi di semplice partizionamento e tramite LVM.

La struttura della creazione delle partizioni viene fatta in fase di installazione tramite Anaconda, ma adesso vedremo come in un sistema gia installato possiamo creare e rimuovere partizioni e di come deve essere strutturato il partizionamento di un sistema Linux.

Ci sono diversi modi di come partizionare ma ci sono delle cose che si accomunano su entrambi.

Un sistema Linux necessita di:

Una partizione di boot ovvero una spazio dove ci sono tutti i file relativi all’avvio del sistema e il kernel.
Una partizione di root (quella che Windows identifica con C:) ed è identificata da uno slash (/) …da non confondere con Root Directory ( /root ) che è la home dell’utente root.
Una partizione di SWAP che ha la stessa funzionalità del file di paging di windows ovvero quando la RAM è satura viene usato parte del nostro hard disk

Detto questo dobbiamo capire la tipologia di partizione, ossia:

  • Partizione primaria
  • Partizione logica
  • Partizione estesa

Possiamo creare un massimo di 4 partizioni primarie.

Per superare il limite di 4 partizioni primarie è nata la partizione estesa

Possiamo avere solamente una partizione estesa

Dentro una partizione estesa possiamo creare fino a un massimo di 62 partizioni logiche.

La partizione primaria contiene sistemi operativi e dati accessibili nel momento in cui la partizione è attiva.

La partizione estesa invece nasce per superare il limite delle 4 partizioni primarie, non contiene direttamente dati ma serve per dividere l’ulteriore spazio su disco rimasto in partizioni logiche per poter contenere dati

La partizione logica come abbiamo detto può contenere dei dati relativi al sistema o di altro genere

Se ad esempio vogliamo creare 6 partizioni in un disco creeremo:
3 Partizioni Primarie
Una partizione Estesa con all’interno le 2 partizioni logiche.

La nomenclatura che assumeranno gli Hard Disk che partizioneremo sarà hda per i dischi ATA e sda per quelli SATA e SCSI:
Le partizioni al suo interno invece saranno sotto forma di numeri, vediamo alcuni esempi:

hda1 indica un hard disk ATA con una partizione

hda2 indica lo stesso hard disk ATA con una seconda partizione

hdb1 indica la presenza di un secondo hard disk con una partizione

hdb2 indica la presenza sempre di un secondo hard disk con una seconda partizione

Se l’hard disk fosse SATA o SCSI avremo sda invece che hda

Iniziamo a vedere qualche comando:

Per vedere la lista delle partizioni sul disco usiamo il seguente comando:

fdisk -cul /dev/hdb

L’eliminazione o la Creazione di partizioni viene fatta eseguendo il comando seguito dal nome del dispositivo su cui vogliamo operare, ad esempio se vogliamo eliminare una partizione su /dev/hdb dobbiamo operare nel modo seguente:

fdisk -cu /dev/hdb

Digitiamo “d”, premiamo INVIO
Specifichiamo in forma numerica quale partizione cancellare
Apportiamo la modifica con “w

Per verificare digitiamo “p” e se tutto è andato bene non vedremo nessuna partizione sul disco.

Le cose sono molto simili anche in fase di creazione di una partizione, cambia solamente la tipologia di lettere da digitare.

 

Dopo la creazione della partizione dobbiamo creare il File System (ext4 nel nostro caso ) e lo facciamo tramite il comando mkfs nel seguente modo:

mkfs.ext4 /dev/hdb

A questo punto la partizione sarà identificata come hdb1, non resta che montarla per renderla accessibile e ciò consiste nel creare una directory ad esempio nel percorso /media chiamata ad esempio discoA per poi montarla:

cd /media
mkdir discoA
mount /dev/hdb1 /media/discoA

Trattiamo adesso il concetto del partizionamento tramite LVM.

A differenza delle partizioni classiche LVM ci permette in modo flessibile la gestione delle partizioni

Questa è la struttura del LVM:

Lvm_setup14

Inizializziamo uno o più hard disk come Volumi Fisici ( Physical Volume ), uniamo gli hard disk facendogli formare un Gruppo di Volume ( Volume Group ) e al suo interno creiamo quanti Volumi Logici ( Locial Volume ) vogliamo che li possiamo considerare anche come partizioni ma in questa struttura si chiamano Volumi Logici.

Nel momento che si esaurisce lo spazio del Volume Group ci basta inserire un nuovo hard disk nel sistema e procedere come abbiamo detto sopra, per avere cosi una soluzione più flessibile rispetto al partizionamento fisico.

Per nostra comodità creiamo un LVM in una partizione dove abbiamo dello spazio libero ma non cambia nulla se invece di usare la partizione hda4 venisse usato come nella maggioranza dei casi l’hard disk intero che in questo caso si chiamerebbe hda, hdb…. o sda,sdb….

Inizializziamo la nostra partizione col comando pvcreate seguito dal disco:

pvcreate /dev/hda4

Physical volume “/dev/hda4” successfully created

Verifichiamo che il volume fisico sia stato creato correttamente con il comando pvdisplay:

pvdisplay /dev/hda4

Adesso creiamo il Volume Group con il comando vgcreate nome_gruppo disco:

vgcreate vg_group01 /dev/hda4

Verifichiamo che il Volume Group sia stato creato correttamente ( -v per visualizzarlo nei dettagli ):

vgdisplay -v vg_group01

vg1

Adesso possiamo creare quanti Logical Volume si vuole.

Vediamo come creare un Logical Volume da 3 GB con il comando lvcreate seguito dall’ opzione -L seguita dal Volume Group:

lvcreate -L 3000 vg_group01

Verifichiamo che è stato creato il Logical Volume tramite il comando lvdisplay:

lvdisplay vg_group01

Vediamo nei dettagli la creazione del volume logico nel Volume Group tramite l’opzione -v:

vgdisplay -v vg_group01

vg2

Il Volume logico creato verrà identificato sotto forma di lvol0 ma possiamo rinominarlo:

lvrename /dev/vg_group01/lvol0 /dev/vg_group01/dati

e da lvol0 diventerà dati

Vediamo come aumentare la dimensione del volume logico creato tramite lvextend, per esempio possiamo aumentare di 2GB la dimensione del volume logico precedentemente creato tramite +:

lvextend -L +2000 /dev/vg_group01/lvol0

lvex

Ricordiamoci sempre che dopo il comando lvextend dobbiamo usare il comando resize2f <volume_logico> per estendere anche il file system.

resize2fs -p /dev/vg_group01/lvol0

Possiamo aumentare la dimensione del Volume Group nel momento che lo spazio si è esaurito inserendo un nuovo hard disk nel sistema, vediamo come fare:

Inizializziamo il nuovo hard disk ( ammettiamo /dev/hdd )

pvcreate /dev/hdd

A questo punto lo aggiungiamo al Volume Group con il comando vgextend:

vgextend vg_group01 /dev/hdc

Verifichiamo ciò:

vgdiplay -v vg_group01

E cosi il nostro spazio accrescerà e possiamo creare dei nuovi volumi logici al suo interno.

Ricordiamo inoltre che dopo la creazione di un Logical Volume per poterlo utilizzare deve essere creato il File System e ciò lo faremo sempre tramite il comando mkfs seguito dal percorso del Logical Volume per poi successivamente montarlo.

Potremmo anche ridurre un Volume Fisico da un Volume Group o eliminare un Logical Volume ma di per se la creazione del partizionamento tramite LVM è fatta principalmente per gestire al meglio il crescente aumento di spazio nel sistema.

Per concludere vi forniamo una lista di comandi riepilogativi di LVM:

  • pvs Visualizza i volumi fisici
  • vgs Visualizza il gruppo di volume
  • lvs Visualizza i volumi logici

 

  • pvdisplay Visualizza informazioni dettagliate sui volumi fisici
  • vgdisplay Visualizza informazioni dettagliate sul gruppo di volumi
  • lvdisplay Visualizza informazioni dettagliate sui volumi logici

 

  • pvcreate Crea un nuovo volume fisico
  • vgcreate Crea un nuovo gruppo di volume
  • lvcreate Crea un nuovo volume logico

 

  • vgextend Estende un gruppo di volumi esistente
  • lvextend Estende un volume logico
  • lvresize Ridimensiona un volume logico
  • lvreduce Riduce un volume logico
  • lvrename Rinomina un volume logico
  • pvmove Migra i dati da un volume fisico ad un’altro

 

  • vgreduce Riduce un gruppo di volume
  • pvremove Rimuove un volume fisico
  • vgremove Rimuove un gruppo di volume
  • lvremove Rimuove un volume logico
Info about author

Michele Milaneschi

RHCE Consultant