XFS (file system): differenze tra le versioni

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
Contenuto cancellato Contenuto aggiunto
Luckas-bot (discussione | contributi)
m r2.7.1) (Bot: Aggiungo: zh:XFS
→‎Curiosità: Aggiunto il template "Curiosità"
Etichetta: Editor wikitesto 2017
 
(20 versioni intermedie di 18 utenti non mostrate)
Riga 1: Riga 1:
{{File system
{{Infobox filesystem |
name = XFS |
|Nome = XFS
|Immagine =
full_name = XFS |
|Didascalia =
developer = [[Silicon Graphics Inc.]] |
|Sviluppatore = [[Silicon Graphics Inc.]]
introduction_os = [[IRIX]] v5.3 |
|NomeCompleto = XFS
introduction_date = 1994 |
|Data = 1994
partition_id = |
directory_struct = [[B+tree]]|
|Introduzione = [[IRIX]] v5.3
|Identificazione =
file_struct = basato sugli [[extent]]|
|ContenutiDirectory = [[B-Albero#B+tree|B+tree]]
bad_blocks_struct = |
|AllocazioneFile = basato sugli [[extent]]
max_filename_size = |
|BlocchiDanneggiati =
max_files_no = |
max_volume_size = 16 [[exabyte]] |
|DimensioneMassimaFile = 8 [[exabyte]]
|NumeroMassimoFile =
max_file_size = 8 [[exabyte]] |
|DimensioneMassimaNomeFile =
filename_character_set = Tutti i byte eccetto NUL |
|DimensioneMassimaVolume = 16 [[exabyte]]
dates_recorded = Si |
|Caratteri = Tutti i byte eccetto NUL
date_range = |
|DateMemorizzate = Sì
forks_streams = Si (sono chiamati attributi estesi)|
|DateSupportate =
attributes = |
|Fork = (sono chiamati attributi estesi)
file_system_permissions = Si |
|Attributi =
compression = No |
|Permessi = Sì
encryption = No (reso disponibile a livello del dispositivo a blocchi) |
|CompressioneTrasparente = No
|CrittografiaTrasparente = No (reso disponibile a livello del dispositivo a blocchi)
}}
}}

'''XFS''' è un [[file system]] di tipo ''journaled'' con indirizzamento a 64 bit sviluppato da [[Silicon Graphics|SGI]] per il sistema operativo [[IRIX]].
'''XFS''' è un [[file system]] di tipo ''journaled'' con indirizzamento a 64 bit sviluppato da [[Silicon Graphics|SGI]] per il sistema operativo [[IRIX]].


Riga 32: Riga 35:


== Journaling ==
== Journaling ==
XFS 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 una operazione normale del file system.
XFS 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.
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 posso 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.
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.
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.


Riga 40: Riga 43:
I file system XFS sono internamente partizionati in gruppi di allocazione, che sono regioni lineari del file system equamente dimensionate.
I 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.
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.
Ogni gruppo di allocazione gestisce separatamente i suoi [[inode]] e il suo spazio libero, provvedendo scalabilità e parallelismo, [[Thread (informatica)|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 [[Multiprocessore simmetrico|SMP]] anche gli aggiornamenti dei [[metadati]] sono parallelizzabili.
Questa architettura aiuta ad ottimizzare le performance del I/O parallelo nei sistemi [[Multiprocessore simmetrico|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.
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.
Riga 50: Riga 53:


== Ridimensionamento in linea ==
== Ridimensionamento in linea ==

XFS provvede l'[[utility]] <code>xfs_growfs</code> per effettuare il ridimensionamento del filesystem in linea. I filesystem XFS possono soltanto ingrandirsi e non restringersi, e l'ingrandimento del filesystem richiede che ci sia dello spazio non allocato nel dispositivo che contiene il filesystem.
XFS provvede l'[[utility]] <code>xfs_growfs</code> per effettuare il ridimensionamento del filesystem in linea. I filesystem XFS possono soltanto ingrandirsi e non restringersi, e l'ingrandimento del filesystem richiede che ci sia dello spazio non allocato nel dispositivo che contiene il filesystem.
Questa funzionalità è tipicamente usata in congiunzione con il [[volume management]], altrimenti la partizione che contiene il filesystem deve essere ingrandita separatamente.
Questa funzionalità è tipicamente usata in congiunzione con il [[Gestore logico dei volumi|volume management]], altrimenti la partizione che contiene il filesystem deve essere ingrandita separatamente.


== Utility native per il Backup/Ripristino ==
== Utility native per il Backup/Ripristino ==
XFS provvede le utility <code>xfsdump</code> e <code>xfsrestore</code> in sussidio al backup dei dati contenuti in un filesystem XFS.
XFS provvede le utility <code>xfsdump</code> e <code>xfsrestore</code> in sussidio al backup dei dati contenuti in un filesystem XFS.
L'utility <code>xfsdump</code> esegue il backup di un filesystem XFS, rispettando l'ordine degli [[inode]]. Diversamente dai tradizionali filesystem [[UNIX]], che devono essere smontati prima di effettuare il [[dump]] per garantire la coerenza, XFS permette di eseguirlo a filesystem in uso. I dump e i ripristini di XFS sono riprendibili, e possono essere interrotti senza difficoltà.
L'utility <code>xfsdump</code> esegue il backup di un filesystem XFS, rispettando l'ordine degli [[inode]]. Diversamente dai tradizionali filesystem [[UNIX]], che devono essere smontati prima di effettuare il [[dump]] per garantire la coerenza, XFS permette di eseguirlo a filesystem in uso. I dump e i ripristini di XFS sono riprendibili, e possono essere interrotti senza difficoltà.
L'operazione multi-thread di <code>xfsdump</code> provvede operazioni di backup ad alte prestazioni, dividendo il dump in [[stream]] multipli, che possono essere inviati in differenti destinazioni. Le capacità multistream non sono state ancora portate completamente su Linux.
L'operazione multi-thread di <code>xfsdump</code> provvede operazioni di backup ad alte prestazioni, dividendo il dump in [[stream (informatica)|stream]] multipli, che possono essere inviati in differenti destinazioni. Le capacità multistream non sono state ancora portate completamente su Linux.


== Snapshots ==
== Snapshots ==
XFS non provvede un supporto diretto agli snapshots,
XFS non fornisce un supporto diretto agli snapshots,
Per eseguire uno snapshot di un filesystem XFS, è necessario usare l'utility <code>xfs_freeze</code> per congelare l'I/O verso il filesystem, il volume manager per compiere lo snapshot attuale e poi scongelare l'I/O per riprendere le operazioni normali.
Per eseguire uno snapshot di un filesystem XFS, è necessario usare l'utility <code>xfs_freeze</code> per congelare l'I/O verso il filesystem, il volume manager per compiere lo snapshot effettivo e poi scongelare l'I/O per riprendere le operazioni normali.
Lo snapshot può essere poi montato in sola lettura per scopi di backup. Le release di XFS su IRIX incorporano un volume manager integrato di nome XLV. Questo volume manager non è stato portato su Linux. Nei kernel Linux recenti, la funzionalità xfs_freeze è stata implementata a livello di VFS ed è eseguita automaticamente quando viene chiamata la funzione snapshot del volume manager.
Lo snapshot può essere poi montato in sola lettura per scopi di backup. Le release di XFS su IRIX incorporano un volume manager integrato di nome XLV. Questo volume manager non è stato portato su Linux. Nei kernel Linux recenti, la funzionalità xfs_freeze è stata implementata a livello di VFS ed è eseguita automaticamente quando viene chiamata la funzione snapshot del volume manager.


== Curiosità ==
== Curiosità ==
{{Curiosità}}
Il server [[Silicon Graphics|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.
Il server [[Silicon Graphics|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 [[Network Attached Storage|NAS]] casalinghi basati su linux come ad esempio [[Etrayz Xstream]].


== Collegamenti esterni ==
== Collegamenti esterni ==
* [http://www.sgi.com/products/storage/software/xfs.html Pagina su XFS nel sito di Silicon Graphics]
* {{cita web | 1 = https://www.sgi.com/products/storage/software/xfs.html | 2 = Pagina su XFS nel sito di Silicon Graphics | accesso = 5 maggio 2019 | urlarchivio = https://web.archive.org/web/20170726090610/http://www.sgi.com/products/storage/software/xfs.html | dataarchivio = 26 luglio 2017 | urlmorto = sì }}
* [http://oss.sgi.com/projects/xfs/ Pagina su XFS nei progetti open source del sito di Silicon Graphics]
* {{cita web | 1 = http://oss.sgi.com/projects/xfs/ | 2 = Pagina su XFS nei progetti open source del sito di Silicon Graphics | accesso = 20 marzo 2009 | urlarchivio = https://web.archive.org/web/20160203194451/http://oss.sgi.com/projects/xfs/ | dataarchivio = 3 febbraio 2016 | urlmorto = sì }}


{{Portale|informatica}}
[[Categoria:File system]]


[[Categoria:File system]]
[[cs:XFS]]
[[da:XFS]]
[[de:XFS (Dateisystem)]]
[[en:XFS]]
[[es:XFS]]
[[eu:XFS]]
[[fr:XFS]]
[[gl:XFS]]
[[hu:XFS]]
[[ja:XFS]]
[[lt:XFS]]
[[nl:XFS]]
[[no:XFS]]
[[pl:XFS]]
[[pt:XFS]]
[[ru:XFS]]
[[sk:XFS]]
[[sv:XFS]]
[[uk:Xfs]]
[[zh:XFS]]

Versione attuale delle 13:21, 23 mag 2024

XFS
Dati generali
SviluppatoreSilicon Graphics Inc.
Nome completoXFS
Introduzione1994 IRIX v5.3
Struttura
Struttura contenuti directoryB+tree
Allocazione dei filebasato sugli extent
Limiti
Dimensione massima di un file8 exabyte
Dimensione massima del volume16 exabyte
Caratteri permessi nel nome di un fileTutti i byte eccetto NUL
Caratteristiche
Date memorizzate
ForkSì (sono chiamati attributi estesi)
Permessi file system
Compressione trasparenteNo
Crittografia trasparenteNo (reso disponibile a livello del dispositivo a blocchi)

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.

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

XFS 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 allocazione

[modifica | modifica wikitesto]

I 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 extent

[modifica | modifica wikitesto]

Lo 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 linea

[modifica | modifica wikitesto]

XFS provvede l'utility xfs_growfs per effettuare il ridimensionamento del filesystem in linea. I filesystem XFS possono soltanto ingrandirsi e non restringersi, e l'ingrandimento del filesystem richiede che ci sia dello spazio non allocato nel dispositivo che contiene il filesystem. Questa funzionalità è tipicamente usata in congiunzione con il volume management, altrimenti la partizione che contiene il filesystem deve essere ingrandita separatamente.

Utility native per il Backup/Ripristino

[modifica | modifica wikitesto]

XFS provvede le utility xfsdump e xfsrestore in sussidio al backup dei dati contenuti in un filesystem XFS. L'utility xfsdump esegue il backup di un filesystem XFS, rispettando l'ordine degli inode. Diversamente dai tradizionali filesystem UNIX, che devono essere smontati prima di effettuare il dump per garantire la coerenza, XFS permette di eseguirlo a filesystem in uso. I dump e i ripristini di XFS sono riprendibili, e possono essere interrotti senza difficoltà. L'operazione multi-thread di xfsdump provvede operazioni di backup ad alte prestazioni, dividendo il dump in stream multipli, che possono essere inviati in differenti destinazioni. Le capacità multistream non sono state ancora portate completamente su Linux.

XFS non fornisce un supporto diretto agli snapshots, Per eseguire uno snapshot di un filesystem XFS, è necessario usare l'utility xfs_freeze per congelare l'I/O verso il filesystem, il volume manager per compiere lo snapshot effettivo e poi scongelare l'I/O per riprendere le operazioni normali. Lo snapshot può essere poi montato in sola lettura per scopi di backup. Le release di XFS su IRIX incorporano un volume manager integrato di nome XLV. Questo volume manager non è stato portato su Linux. Nei kernel Linux recenti, la funzionalità xfs_freeze è stata implementata a livello di VFS ed è eseguita automaticamente quando viene chiamata la funzione snapshot del volume manager.

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

[modifica | modifica wikitesto]
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica