XFS (file system)
XFS è un file system di tipo journaled con indirizzamento a 64 bit sviluppato da SGI per il sistema operativo IRIX. XFS è stato incluso in linux 2.4 (dalla 2.4.25, quando Marcelo Tosatti l'ha ritenuto abbastanza stabile) e nella 2.6. FreeBSD ha il supporto in sola lettura dal dicembre 2005 e nel giugno 2006 è stato introdotto il supporto sperimentale alla scrittura (solo nella versione CURRENT). XFS è un file system maturo e scalabile con un sistema di journaling che minimizza l'impatto di read/write massive: usa un'efficiente struttura a tabelle che permette una rapida ricerca e altrettanto rapida nuova allocazione di spazio. CapacitàXFS è un file system a 64 bit e supporta una dimensione massima del file system di 9 exabyte però è soggetto ai limiti imposti dal sistema operativo. Nei sistemi Linux a 32 bit il limite della dimensione dei file e del file system è di 16 terabyte JournalingXFS fornisce il journaling dei metadati del file system, gli aggiornamenti del file system vengono scritti in un journal seriale prima che i blocchi del disco vengano aggiornati. Il journal è un buffer circolare di blocchi del disco che non è mai letto in un'operazione normale del file system. Il journal può essere memorizzato nell'area dati del file system (un log interno) oppure in un dispositivo separato per minimizzare la contesa dei dischi. Gli aggiornamenti del journal sono effettuati in modo asincrono per evitare perdite di prestazioni. Nel caso di crash del sistema, le operazioni effettuate immediatamente prima del crash possono essere effettuate nuovamente usando i dati nel journal, che permettono a XFS di garantire la consistenza. Il recupero viene effettuato automaticamente durante il montaggio, il tempo impiegato non dipende dalla dimensione del file system. Quando le modifiche recenti non vengono scritte su disco (flush) prima di un crash, XFS assicura che ogni blocco di dati non scritto viene azzerato al riavvio, ovviando ogni problema di sicurezza che derivi dai dati non scritti. Gruppi di allocazioneI file system XFS sono internamente partizionati in gruppi di allocazione, che sono regioni lineari del file system equamente dimensionate. File e directory possono essere distribuiti in più gruppi di allocazione. Ogni gruppo di allocazione gestisce separatamente i suoi inode e il suo spazio libero, provvedendo scalabilità e parallelismo, thread multipli e processi possono effettuare operazioni di I/O nello stesso filesystem simultaneamente. Questa architettura aiuta ad ottimizzare le performance del I/O parallelo nei sistemi SMP anche gli aggiornamenti dei metadati sono parallelizzabili. Il partizionamento interno provveduto dai gruppi di allocazione può essere utile quando il file system occupa più dispositivi fisici, permettendo l'uso ottimale della banda dei dispositivi fisici. Allocazione basata sugli extentLo spazio nei file memorizzati nei filesystem XFS è gestito in extent di dimensione variabile, diversamente dai blocchi di dimensione fissa usati da molti altri filesystem. Molti filesystem gestiscono l'allocazione dello spazio con una bitmap dei blocchi, invece in XFS l'allocazione dello spazio è gestita tramite 2 alberi B+tree per ogni gruppo di allocazione del filesystem. Uno dei B+tree è indicizzato per la dimensione degli extent liberi, invece l'altro è indicizzato per il blocco di partenza degli extent liberi. Questo doppio schema di indicizzazione permette ricerche altamente efficienti degli extent liberi appropriati per le operazioni del filesystem. Ridimensionamento in lineaXFS provvede l'utility Utility native per il Backup/RipristinoXFS provvede le utility SnapshotsXFS non fornisce un supporto diretto agli snapshots,
Per eseguire uno snapshot di un filesystem XFS, è necessario usare l'utility CuriositàIl server SGI Altix 3000, che frantumò il record del benchmark per l'High Performance Computing dei supercomputer nel 2003, utilizzava kernel Linux, processori Intel Itanium e XFS come file system. Questo sistema di file viene tuttora utilizzato in diversi NAS casalinghi basati su linux come ad esempio Etrayz Xstream. Collegamenti esterni
|
Portal di Ensiklopedia Dunia