I come Informatica - I como Informática - I for Information Technology
PORTALE
PORTAL
PORTAL
FORUM
FORO
FORUM
Informatica
Informática
Information Technology
Stefano Pederzani
Consulente informatico
ARTE
Homepages
Curricula
Curricula
Resumes
Pubblicità
Publicidad
Advertisement




Filesystem, partizioni e RAID

Ci sono tre livelli tra cui distinguere. Di Stefano Pederzani

Quando si parla di filesystem o di "partizioni", su sistemi operativi odierni, i due concetti vengono confusi.
A volte anche il RAID software viene confuso insieme alle prime due cose.
Ma si tratta di TRE COSE DIVERSE.

Filesystem su partizioni fisiche

Esiste più o meno in tutti i sistemi operativi la possibilità di creare partizioni logiche e partizioni fisiche sui propri dischi.
L'esigenza nacque soprattutto con l'aumentare della capacità dei dischi in commercio.
Facciamo un esempio ideale. Abbiamo il classico disco C: di Windows, ossia il disco sistema, di 80GB; non ha senso partizionarlo. Se si vuole aggiungere spazio, si aggiunge un disco da 120GB, perché reperibile in commercio.
Questo secondo disco non viene partizionato, e sarà il disco D:, ovviamente con tutti i vantaggi di un disco dati trasferibile facilmente, perché separato dal disco sistema.
Se io oggi compro un PC, avrò al suo interno un disco SATA da 500GB o da 1TB. Sarebbe saggio partizionarlo in modo da avere una partizione per C:, una per D:, come minimo. Poi, visto che lo spazio è tanto, prevedo una installazione di Linux in dual boot. Considerando che di partizioni ne posso fare 4, posso permettermi una partizione per il filesystem sistema di Linux ed una per un filesystem non di sistema, proprio come in Windows.

Essendo una suddivisione oggettiva operata sull'hardware le partizioni fisiche possono essere create con qualsiasi sistema operativo e vengono viste da qualsiasi sistema operativo.
Una volta avviato un sistema operativo, questo può riconoscere o meno le partizioni degli altri sistemi: quando si legge la tabella delle partizioni ci sono delle TAG che marcano ognuna con un codice.
Windows interpreta le partizioni marcate con un codice diverso da suoi come non sue e basta.
Linux riconosce più o meno tutti i codici di partizione ed associa ad essi una stringa di testo. Alcuni è anche in grado di montarli, se presente il driver del filesystem, quando esiste. Questo succede ad esempio con FAT32 e NTFS di Windows. Linux è quindi in grado di montare filesystem non suoi, se riconosciuti, che possono essere impostati anche da montare automaticamente al boot come tutti gli altri.
Le partizioni logiche, invece, sia in Windows che in Linux sono una suddivisione ulteriore di una partizione fisica che in genere non viene vista al di fuori del sistema operativo che le ha create, un po' come il proprio filesystem. Sono da evitare perché non portano alcun vantaggio ma soltanto possibili disguidi.




Figura 1: 01filesystemSuPartizioniNoRAID.png

Vediamo ora la figura 1.
Abbiamo un grafo diviso in due orizzontalmente, per distinguere tra area hardware sotto ed area software sopra. La realtà non è esattamente come nello schema, ma logicamente il grafo funge allo scopo di capire i concetti.
Il rettangolo lungo e stretto rappresenta il nostro hard disk, con le 4 partizioni numerate.
Su di esse vengono creati 4 filesystem, due di Windows e due di Linux.
Le partizioni marchiate come bootable saranno la 1 e la 3. Le partizioni 1 e 2 saranno marcate come NTFS mentre la 3 e la 4 saranno marcate come EXT4.
In questo schema i filesystem insistono direttamente su partizioni fisiche. È il caso classico composto da due livelli, perché non è presente alcun RAID.

Una volta create le partizioni, magari tutte e 4 insieme con la utility di uno dei due sistemi operativi, ogni sistema operativo formatterà i propri filesystems. Ma si tratta di due livelli separati: su di una partizione potrebbe non esserci ancora un filesystem, oppure si può utilizzare in modo alternativo.



Filesystem su RAID 1 software

Cominciamo ad introdurre il concetto di RAID, e lo facciamo con il RAID 1, quello che originariamente veniva chiamato mirroring.
Due volumi fisici uguali, su dischi fisici diversi, vengono accoppiati per creare un solo volume logico.
Al guastarsi di uno dei due dischi, viene a mancare un volume fisico, ma il il volume logico continua a funzionare perché si appoggia al volume fisico superstite, evitando interruzioni di servizio.
Il disco guasto dovrà essere sostituito tempestivamente, e il mirroring riallineato per ricostituire la ridondanza e di conseguenza la fault tolerance.
Quasi tutti i sistemi operativi ormai offrono la possibilità di creare volumi logici mirrorando dei volumi fisici. La terminologia cambia da SO a SO, ma più o meno è questa.
La caratteristica principale del RAID 1 software è quella della flessibilità: partizionando i dischi, si creano coppie di partizioni di uguale grandezza su dischi diversi per accoppiarle in RAID 1 come nella figura 2.


Figura 2: 02filesystemSuRAIDsoftware.png

Nell'esempio utilizziamo una macchina con soltanto il sistema operativo Linux installato. Abbiamo addirittura la possibilità di gestire 2 dischi di dimensioni diverse, avendo alcune accortezze.
Dovremo fare boot con il DVD di installazione di Linux e preparare le partizioni ancora prima di procedere con il setup. Se l'utility del DVD di installazione non ci piace, possiamo usarne un'altra, ma abbiamo bisogno di un Linux attivo per impostare il RAID 1, facendo boot dal DVD di installazione.
In questo caso sceglieremo la grandezza per le prime 3 partizioni che avranno il mirroring: la grandezza del disco 1 viene divisa in 3 parti di grandezza opportuna.
Andiamo a creare 3 partizioni sul disco 2 con le stesse grandezze del disco 1, e lo spazio rimanente diventa la quarta partizione.
Attenzione: per gestire il RAID su Linux occorre marcare le partizioni 1, 2 e 3 di entrambi i dischi con la TAG "Linux RAID" per far sì che al boot Linux assembli le varie parti dei RAID e li renda disponibili automaticamente.
La partizione 4 del secondo disco invece sarà marcata EXT4 perché priva di RAID (non ha un copia), e su di essa va creato un filesystem direttamente.
Sempre prima di lanciare il setup potremo creare il RAID 1 sulle prime 3 partizioni, che nello schema ho colorato con 3 colori diversi: con comandi opportuni si creano i 3 volumi logici dei 3 RAID, che sono rappresentati dal rettangolo tricolore in alto nello schema, in area software.
Nello schema, la quarta partizione del secondo disco rimane a livello hardware, senza RAID.
Ora si può procedere con il setup, che nelle fasi iniziali proporrà delle partizioni per i 3 filesystem che si vogliono fare e per la partizione di swap (memoria virtuale).

  1. / (root) -> creiamo un filesystem EXT4 su RAID 1
  2. swap -> non creiamo un filesystem EXT4 ma formattiamo come swap su RAID 1
  3. /users -> creiamo un filesystem EXT4 su RAID 1
  4. /data -> creiamo un filesystem EXT4 senza RAID sulla quarta partizione del secondo disco

Il RAID 1 software è sostenuto da processi che tengono allineati le parti e quindi pesano sul processore centrale. Hanno in compenso una grande flessibilità e possono consentire dischi di grandezze diverse.

Filesystem su partizioni di un disco logico in RAID 1 hardware

In passato alcuni sistemi operativi non supportavano il RAID software, mentre altri ne soffrivano l'overhead. Esiste anche un I/O doppio del normale per gestire un RAID software.
Un RAID hardware permette di demandare ad una scheda controller RAID tutto il lavoro, anche all'interno di un PC.
Questa soluzione non ha una grande flessibilità: in genere non sono consentiti dischi di grandezza diversa, e comunque non si può lavorare sulle partizioni come nel RAID software, però non pesa per niente sul sistema.


Figura 3: 03filesystemSuPartizioniRAIDhardware.png


La scheda controller RAID, nello schema a livello hardware, controlla la coppia di dischi uguali e tiene allineato un RAID 1 con il firmware installato. La CPU integrata nella scheda esegue il firmware rendendo disponibile alla macchina un disco virtuale, un volume logico quindi, che il sistema operativo "vede" come fosse un disco fisico qualsiasi.
Ecco quindi che può essere "tagliato a fette" ossia partizionato fisicamente come se fosse un disco vero, come nel primo caso di questo articolo.

Il mirroring hardware costituisce una situazione in cui due o più dischi interni si comportano come se fossero in un box esterno, con la scheda RAID che si comporta da controller a due sensi: due controller semplici lato disco, ed una controller "intelligente" lato macchina.

Ancora: avendo un disco logico disponibile sulla macchina, partizionabile come se fosse fisico, si potrebbe ulteriormente costruire sopra di esso un RAID software, con l'ausilio di un altro disco logico anch'esso costituito da un RAID hardware su due dischi fisici. Questa pratica, tecnicamente possibile, è fortemente sconsigliata in quanto andrebbe ad appesantire inutilmente la CPU e l'I/O del sistema quando un RAID già è presente, oltre ad abbassare le prestazioni date le risorse impiegate per tenere allineato un doppio RAID.

Alcune implementazioni di RAID hardware prevedono un riallineamento intelligente, che consente addirittura di clonare sistemi, purché su hardware identico, allineando al mirroring un terzo disco, che poi verrà usato sulla seconda macchina per allineare il quarto, ed ottenendo cos� una seconda coppia di dischi allineati sul secondo sistema.
Questa pratica si è invece dimostrata valida, dopo accurati controlli, soprattutto per costruire una macchina di riserva pronta a sostituire la prima.




Di Stefano Pederzani. Bologna, novembre 2015




CV di Stefano Pederzani




I come Informatica - I como Informática - I for Information Technology
Vai al PORTALE - Ir a el PORTAL - Go to PORTAL
Stefano Pederzani
Consulenze informatiche Bologna
Automatic barriers and access control
Barriere stradali e controllo accessi
MMS IMPIANTI
Cablaggio strutturato - telefonia
Elettricità - climatizzazione

DISCLAIMER

Tutte le immagini del sito sono di proprietà di Stefano Pederzani o dei rispettivi proprietari quando specificato.
Ogni persona si assume la responsabilità di ciò che afferma.
Per qualsiasi problema contattare:
[email protected]
Ogni articolo o immagine che rechi offesa a qualcuno verrà rimosso.

Todas las imagenes del sitio pertenecen a Stefano Pederzani u a los respectivos propietarios cuando especificado.
Toda persona asume la responsabilidad de lo que afirma.
Por cualquier problema ponerse en contacto con:
[email protected]
Cada articulo u imagen que ofenda alguien será quitado.

Every images on this site are property of Stefano Pederzani or property of specified owners.
Each person takes responsibility of what he or she claims.
For any problems please contact:
[email protected]
Every article or image offending somebody will be removed.