Introduzione alla Gestione del Disco

23 giugno 2018

Esistono diverse metodologie per offrire capacità di storage a un sistema Linux, sempre più spesso queste passano per l’utilizzo del network. La gestione fisica dei dispositivi di immagazzinamento dati risulta quindi affidata al di fuori dei confini hardware della macchina che li invoca. Ci riserviamo di trattare questi argomenti in seguito, ora concentreremo la nostra attenzione sull’amministrazione del disco o dei dischi con cui è quasi sempre equipaggiato un sistema Linux intendendo con ciò ogni sistema di storage dati presente a livello locale capace di preservare il suo contenuto anche se privo di alimentazione elettrica. In questo capitolo presenteremo una rapida panoramica dei concetti utili per orientarsi nell’argomento. L’aspetto operativo sarà trattato a partire dal prossimo capitolo.

Partizione

Cosa sia una partizione risulta chiaro confrontandoci con l’accezione inglese equivalente “disk slice” ovvero, letteralmente, “fetta di disco”. In pratica è una parte del disco che sarà gestita in maniera indipendente dalle altre. Avremo quindi la possibilità di associare a essa specifiche caratteristiche. Le partizioni possono essere primarie, estese o logiche. Le ultime sono contenute nelle seconde. Un disco sarà quindi divisibile in sezioni che saranno convenzionalmente battezzate accodando al nome del disco numeri ordinali. Quindi sda1 sarà la prima partizione del disco sda mentre sdb3 sarà la terza partizione del disco sdb e così via.

Logical Volume

Le partizioni hanno limiti impliciti. Innanzi tutto esistono vincoli al numero massimo di partizioni primarie ed estese ospitabili su un disco (a esempio nel partizionamento MSDOS). Inoltre le partizioni sono entità statiche, una volta create ne risulta arduo il ridimensionamento o la migrazione per ottenere i quali è spesso necessario operare travasi di dati. Per superare ciò si può far ricorso al Logical Volume Manager (LVM). Ogni partizione o disco può essere visto come un volume fisico ovvero come un Physical Volume. Un insieme di volumi fisici, magari anche ospitati su dischi diversi, sarà un Volume Group che fornirà lo spazio utile per la creazione di uno o più Logical Volume. Un Logical Volume sarà utilizzato per contenere un filesystem. Ulteriori volumi fisici potranno essere aggiunti a un Volume Group anche successivamente per incrementarne la capienza qualora ciò si riveli necessario.

Filesystem

Se la partizione o il Logical Volume sono il contenitore il filesystem potrà essere visto come il metodo utilizzato per gestirne il contenuto. Potete cioè immaginare il filesystem come l’insieme di regole adoperate per governare l’immagazzinamento dati in modo da poter recuperare di volta in volta la porzione di informazioni utile in modo efficiente. Ovviamente esistono molti filesystem differenti, con le più svariate caratteristiche, esattamente come potreste immaginare di adottare metodi differenti per gestire nel modo da voi ritenuto più funzionale l’inventario di qualsiasi magazzino.
A seguire la tabella dei filesystem più utilizzati su Linux.

bios bootNei sistemi equipaggiati con bios la boot è una partizione utilizzata per lanciare il secondo stadio di grub quando la partizione di boot contiene una GUID Partition Table.
btrfsUn filesystem con supporto nativo Copy-on-Write in grado, cioè, di eseguire in modo più efficiente la differenziazione in copia di un contenuto. Supporta inoltre il cloning e lo snapshotting.
espNei sistemi che utilizzano UEFI (Unified Extensible Firmware Interface) è una partizione utilizzata per lanciare e contenere drivers, boot loaders e i kernels.
ext2
ext3
ext4
Il filesystem ext2 è l’erede del il primo filesystem ext che si rivelò in grado di sostituire efficacemente il filesystem minix adottato ai primordi di Linux. Tuttora adottato su molti sistemi perché veloce e affidabile. La sua evoluzione ext3 implementa un sistema di journaling che lo rende consistente in caso di transazioni in scrittura non completate correttamente. E’ inoltre resa agevole la possibilità di aumentare le dimensioni del filesystem e sono migliorati i meccanismi di indicizzazione delle directory più ingombranti. Lo ext4, una evoluzione del suo predecessore, migliora la gestione dei file molto grandi e razionalizza alcuni processi di scrittura specie se non necessari.
fat16
vfat
fat32
La prima versione largamente adottata del filesystem erede di fat su sistemi Microsoft ancora in uso è fat16. La sua evoluzione fat32, in grado di meglio gestire insiemi di dati più voluminosi, è largamente adottata su molti device utilizzabili per sistemi operativi differenti (come le penne usb). Il rilascio di vfat fu cronologicamente intermedio fra i due, implementava alcune accortezze che consentivano di gestire alias per i nomi lunghi.
ntfsFilesystem dotato di journaling e altre caratteristiche di maggiore modernità rispetto alle varie versione di fat, attualmente di uso comune sui sistemi più recenti di Microsoft.
swapPuò essere considerata una estensione su disco della memoria RAM che verrà utilizzata, quando e se necessario, direttamente dal sistema operativo.
xfsFilesystem senza supporto diretto per gli shapshot dotato di jounaling e extent.

Esempio con partizioni

Al solo scopo di fornire prova visiva di quanto appena accennato andiamo subito a lanciare qualche comando. Per comprendere quali dischi siano presenti su un sistema può essere utilizzato il comando lshw -class disk che elenca, per l’appunto, i dispositivi di storage.

fprincipe@html0:~$ sudo lshw -class disk
  *-disk                  
       description: ATA Disk
       product: TOSHIBA DT01ACA0
       vendor: Toshiba
       physical id: 0.0.0
       bus info: scsi@0:0.0.0
       logical name: /dev/sda
       version: A750
       serial: 867H14AKS
       size: 465GiB (500GB)
       capabilities: gpt-1.00 partitioned partitioned:gpt
       configuration: ansiversion=5 guid=5bd836d1-59b1-4125-bcb0-f2f58287d6f5 logicalsectorsize=512 sectorsize=4096
  *-cdrom
       description: DVD-RAM writer
       product: CDDVDW SH-224GB
       vendor: TSSTcorp
       physical id: 0.0.0
       bus info: scsi@5:0.0.0
       logical name: /dev/cdrom
       logical name: /dev/cdrw
       logical name: /dev/dvd
       logical name: /dev/dvdrw
       logical name: /dev/sr0
       version: SB00
       capabilities: removable audio cd-r cd-rw dvd dvd-r dvd-ram
       configuration: ansiversion=5 status=nodisc

Per ogni disco potremo poi consultare l’elenco delle partizioni adoperando il comando fdisk [target] seguito da p. Potremo invece conoscere quali siano i filesystem montati adoperando il comando sudo lsblk -f [target] e quelli montati e non montati tramite parted [target] -l. Un filesystem esterno è considerato “montato” su un altro filesystem quando esplorando il filesystem su cui desideriamo montarlo il suo contenuto è raggiungibile come se fosse parte dello stesso.

fprincipe@html3:~$ sudo fdisk /dev/sda

Welcome to fdisk (util-linux 2.31.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): p
Disk /dev/sda: 12 GiB, 12884901888 bytes, 25165824 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 3B398D36-6041-4227-8E28-E59D56EF6D3C

Device     Start      End  Sectors Size Type
/dev/sda1   2048     4095     2048   1M BIOS boot
/dev/sda2   4096 25163775 25159680  12G Linux filesystem

fprincipe@html3:~$ sudo parted /dev/sda -l
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 12.9GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  2097kB  1049kB                     bios_grub
 2      2097kB  12.9GB  12.9GB  ext4

Concludiamo questo capitolo con una curiosità. A ogni partizione o volume logico è di norma associato uno e un solo un filesystem che rende di fatto utilizzabile il tutto. Esiste la possibilità di adoperare in una partizione o volume logico più di un filesystem. A esempio è possibile creare un filesystem contenuto in un file sebbene la partizione o volume logico che gestisce il file in questione faccia capo a un differente filesystem. Di fatto, però, il sistema vedrà questo costrutto come due partizioni, volumi logici e filesystem distinti.

Tutte le lezioni

1 ... 19 20 21 ... 23

Se vuoi aggiornamenti su Introduzione alla Gestione del Disco inserisci la tua e-mail nel box qui sotto:
 
X
Se vuoi aggiornamenti su Introduzione alla Gestione del Disco

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento dei dati per attività di marketing