Dentro il sistema 

IL Journaling File System: JFS

Marco Bertini 
 
 
Sul numero 5/98 di Just WARP! nell'articolo Aurora Beta 1 sono state presentate in anteprima le maggiori novità della versione 5 di Warp Server, chiamata Aurora. In questo articolo invece esamineremo soltanto uno degli aspetti di Aurora, forse uno dei più interessanti ed innovativi, il Journaling File System o JFS.
Questo nuovo file system proveniente da AIX, la versione IBM di UNIX, viene ad affiancarsi al classico HPFS, ed intoduce molte novità sia nella gestione di file che di dischi. Esamineremo inoltre il nuovo programma di gestione dei dischi e delle partizioni, il Logical Volume Manager, e vedremo i vantaggi introdotti dal JFS per quanto riguarda la sicurezza dei file danneggiati , e il suo modo di comportarsi di fronte alla frammentazione dei file

Le novità del JFS

 
  Cominciamo con alcuni numeri per vedere le novità del JFS rispetto all'HPFS:
  • la dimensione massima dei file passa da 2 gigabyte (GB) a 2 terabyte (TB).
  • la dimensione massima delle partizioni passa da 64 GB a 2 TB
Per quanto riguarda la sicurezza dei file, indubbiamente uno degli aspetti più importanti per un sistema operativo con funzioni di server, sono usate delle tecniche di journaling (da cui il nome del file system) impiegate originariamente nei database, per garantire il recupero dei dati in caso di malfunzionamenti.

Infine, ma non meno importante, è possibile riunire più partizioni JFS facendole vedere al sistema come se fossero un'unica partizione, indipendentemente dalla loro posizione sui dischi del computer.
Rispetto alla versione di AIX questa è stata modificata per gestire gli attributi estesi tipici di OS/2, i nomi di file con codifica Unicode e la ricerca case-insensitive, per mantenere lo stesso funzionamento nei programmi sviluppati per l'HPFS.
L'unica limitazione di questo file system è che non è possibile installarci sopra OS/2 che deve continuare a risiedere su una partizione HPFS per effettuare il boot del sistema; per il resto la sua presenza è invisibile a tutti i programmi.

Passando alle caratteristiche tecniche è da notare come il JFS possa gestire diverse dimensioni per i blocchi dei dischi: 512, 1024, 2048 e 4096 (4KB) bytes, permettendo quindi di ottimizzare l'occupazione di spazio su disco o l'efficienza nel file-serving.
Infatti blocchi di piccola dimensione consentono di sfruttare al meglio lo spazio su disco, riducendo inoltre la frammentazione dei file. Al contrario, blocchi più grandi riducono l'attività di allocazione e consentono una migliore performance. Dato che questa è la caratteristica più importante per un sistema server, il default all'atto della creazione di una partizione JFS è quello di usare blocchi di 4Kb.

Il Logical Volume Manager

 
  Il Logical Volume Manager o LVM è il nuovo programma di Warp 5 che sostituisce FDISK, per la gestione dei dischi e delle partizioni con OS/2.  Con questo programma è possibile creare due tipi di partizioni logiche:
  • Compatibility volume: compatibili con le vecchie versioni di OS/2 o di altri sistemi operativi, corrispondono ad una partizione fisica dell'hard disk e possono essere avviabili.
  • LVM volume: non sono avviabili ma su di esse possono essere eseguite nuove operazioni di gestione delle partizioni.

Alle funzioni di FDisk ne sono state affiancate di nuove per sfruttare le funzioni aggiuntive che funzionano sulle partizioni LVM, alcune tipiche del JFS, quali il Disk Spanning, il ridimensionamento delle partizioni, le Sticky drive letters e il Cambiamento dinamico delle lettere dei drive.
Vediamo meglio in cosa consistono queste novità:
  • Disk Spanning: Con questa funzione le partizioni fisiche LVM possono essere riunite in una sola partizione logica, a cui viene assegnata una sola lettera, e che viene vista come un'unica grossa partizione. Un esempio di questo è mostrato nella figura seguente.

    - Interfaccia del Logical Volume Manager -

  • Ridimensionamento partizioni: con questa funzione, tipica solo del JFS, è possibile espandere un volume LVM senza toccare i dati già presenti. Un volume LVM si espande quando viene aggiunto con il Disk spanning una nuova partizione che si può trovare sia sullo stesso disco che su un altro.
    Questa funzione, simile a quella offerta nei sistemi Unix dal mount dei dischi, consente di ampliare a volontà lo spazio su disco di un sistema, secondo la necessità in modo molto più facile rispetto ad altri sistemi, come per esempio Windows NT.

    Adesso se lo spazio su disco della partizione assegnata per esempio agli utenti della rete, al database dell'intranet o al server web finisce, basta comprare un nuovo disco, creare una partizione logica LVM ed unirla alla vecchia, il tutto con un operazione invisibile al sistema.
    Come si vede questa funzione è molto superiore a quella simile offerta da programmi come Partition Magic.

  • Sticky drive letters: questa funzione consente di assegnare lettere permanenti ad una partizione, fino a quando questa non viene distrutta. In questo modo non si hanno più problemi nel caso venga cambiato l'ordine dei dischi del sistema, come nel caso di aggiunte di nuovi drive, con spostamento dei vecchi più lenti.
  • Cambiamento dinamico: è l'operazione simmetrica alla precedente; adesso è possibile cambiare lettera ai drive senza dover effettuare un boot del sistema, operazione che nel caso di un server deve ovviamente essere effettuata il minor numero di volte possibile.
É da notare come queste nuove funzioni siano applicabili con alcune limitazioni (non è supportato il Disk spanning) anche ai media rimuovibili come i drive Zip. 

La frammentazione dei file


  Per risolvere il problema della deframmentazione dei file, che su un sistema server trafficato prima o poi si presenta, è disponibile l'apposito programma Defragfs che può agire anche su partizioni attive e sui cui sono in corso accessi ai file.

- Esempio di Defragfs -


La sicurezza dei file

 
  La maggiore sicurezza offerta dal JFS rispetto agli altri file system tradizionali come NTFS, HPFS, FAT o altri file system Unix è data dalle sue funzioni di journaling, che garantiscono una maggiore capacità di recupero dei danni e velocità nel riavvio nel caso per qualche motivo il sistema subisca danni.
Infatti la corruzione dei dati avviene quando il sistema si rompe mentre è impegnato in operazioni multiple di I/O sui dischi, e queste non si riflettono completamente sulla situazione dei media.

Un file system tradizionale in questo caso si basa sui risultati di un programma come il chkdsk che sfrutta le meta informazioni del file system per riparare i danni, con un processo lento e più o meno soggetto ad errori, dato che la capacità di riparazione dipende dall'entità di meta-informazioni rese disponibili dal file system.
Chi volesse maggiori informazioni per quanto riguarda l'HPFS può leggersi l'articolo sul numero 1/98 di Just WARP!.

Al contrario il JFS registra le informazioni sulle operazioni svolte come meta-informazioni nel file system. In caso di errore è quindi sufficiente esaminare la registrazione delle attività più recenti e replicare le transazioni avvenute.

Con questa tecnica si ha un tempo di riavvio del sistema molto ridotto in quanto non è più necessario riesaminare tutto il disco per andare alla ricerca di eventuali dati persi; al solito, nel caso si tratti di server il tempo di malfunzionamento deve essere il più ridotto possibile.

Conclusioni

 
  In conclusione l'introduzione del JFS è una delle novità più utili di Warp Server 5. Oltre alla possibilità di gestire file e partizioni di grandissima dimensione, le nuove funzioni di sicurezza offerte dal journaling delle operazioni e le novità come il Disk spanning e il Partizionamento dinamico fanno di Aurora uno dei più potenti e scalabili sistemi operativi di rete.
[Pagina precedente] [Sommario] [Pagina successiva]