Smart File System
Lo Smart File System o SFS è un filesystem journaling usato sui sistemi Amiga. Come tutti i file system di tipo journaled, SFS una volta ricevuti da un applicativo i dati che devono essere conservati dal SO, provvede prima a memorizzare le operazioni che deve compiere su un file di log; in seguito effettua la scrittura fisica dei dati sulla periferica di memoria di massa (es.: disco rigido); e come mossa finale registra nuovamente sul file di log le operazioni che sono state effettuate.
Storia
SFS è un filesystem di libera distribuzione scritto in C originariamente da John Hendrikx nel 1998. Quando questi si allontanò dalla scena Amiga nel 2000, rilasciò pubblicamente i sorgenti di SFS alla comunità. Lo sviluppo di SFS è stato continuato da sviluppatori indipendenti.
Caratteristiche
Il design di SFS è ottimizzato per essere performante e garantire scalabilità e integrità. Usa diverse grandezze di blocco a partire da 512 byte x blocco (2^9) fino a 32768 byte (2^15), e la grandezza massima totale della partizione è variabile.
Il valore "grandezza massima" che una partizione può assumere è 1 Terabyte (1024 Gigabyte) se applicato a blocchi di 512 byte, e può ulteriormente aumentare, a seconda della grandezza massima di blocco adoperata.
Una delle caratteristiche più performanti è realizzata raggruppando voci di directory multiple in un singolo blocco e raggruppando blocchi di metadata insieme in cluster. Una bitmap è utilizzata per tenere traccia dello spazio libero, mentre viene tenuta traccia dei dati file usando extent (blocchi logici continui) disposti in una struttura ad albero B+ (detta anche ad albero "bilanciato") ereditata dalla tecnologia di database).
L'integrità è mantenuta da un log di rollback ("annullamento") di tutti i cambiamenti fatti ai metadata in un periodo di tempo determinato. Prima viene scritto il log sul disco, e in seguito i blocchi metadata sono sovrascritti direttamente. Se il sistema dovesse andare in crash, la volta successiva che il filesystem verrà montato si accorgerà della procedura incompleta e ritornerà con una procedura appunto di "rollback" (letteralmente come il riavvolgersi di un nastro) all'ultimo stato coerente. Per ragioni di performance viene garantita solo l'integrità dei metadata. Allo stato attuale i dati nei file possono ancora essere corrotti se una operazione di scrittura viene interrotta a metà.
Una interessante peculiarità dello Smart FS è l'abilità di deframmentarsi al volo, mentre il filesystem è in uso, permettendo tale operazione anche sui file che devono obbligatoriamente risiedere in posizioni fisse del disco rigido. Il processo di deframmentazione è quasi completamente "stateless" (eccetto che nella locazione del disco rigido su cui deve lavorare). Durante la deframmentazione l'integrità dei dati è assicurata contemporaneamente sia per i metadata, sia per i dati.
Supporto nativo
Smart FS è stato scelto dagli sviluppatori di MorphOS come filesystem di base ed è quindi ovviamente uno dei filesystem supportati in modo nativo da tale sistema operativo.
Voci correlate
Collegamenti Esterni
- PFS e SFS su codewiz.org Versione testuale: Link all'articolo in formato txt
- Sito SFS di John Hendrikx
- Sito Ufficiale
- Recensione di SFS su rivista online Obligement Amiga (in lingua francese)
- Risposte a domande frequenti sull'AmigaOS 3.5 (sito in lingua inglese creato dal programmatore Greg Donner)
- Installare un Filesystem su AmigaOS 4 (in lingua inglese)
- Quattro passi in Smart File System (in lingua inglese)
- Linux su Pegasos II e accesso a partizioni SFS (HowTo valido per Yellow Dog Linux 3)