fbpx
Home iPhonia Apple Watch Tutto quello che sappiamo di APFS, il file system Apple di nuova...

Tutto quello che sappiamo di APFS, il file system Apple di nuova generazione

La più importante novità annunciata da Apple nel corso della WWDC di giugno è qualcosa che non sarà immediatamente visibile agli utenti ma che è fondamentale per il futuro di tutte le sue piattaforme: il nuovo filesystem APFS. Ma partiamo dall’inizio, evidenziando alcune delle peculiarità del nuovo meccanismo di memorizzazione.

Che cos’è un filesystem
I computer consentono di creare, manipolare, memorizzare e ritrovare dati. Il filesystem è sostanzialmente l’infrastruttura di supporto che in un sistema operativo rende tutto ciò possibile. Il filesystem consente di organizzare, memorizzare, individuare e gestire informazioni memorizzate in modo permanente su un dispositivo di storage come ad esempio un disco fisso o una chiavetta USB.

Il filesystem è responsabile della gestione dei file (nient’altro che un una sequenza logica di informazioni scritte su “blocchi”), della modalità con la quale sono memorizzate, può tenere conto di eventuali restrizioni, come per esempio l’impossibilità di scrivere in determinate cartelle, mostrare una organizzazione gerarchica con cartelle e sottocartelle (una sorta di illusione creata per comodità dell’utente: il filesystem memorizza tutto sempre e comunque nei primi blocchi liberi) e altre problematiche che chi sviluppa applicazioni delega al sistema operativo.

Su un vecchio floppy disk da a 3½ pollici era possibile memorizzare 1.44MB
Su un vecchio floppy disk da a 3½ pollici era possibile memorizzare 1.44MB

Esistono varie modalità per memorizzare file; nel corso del tempo sono stati studiati vari modi per farlo, fondamentali con l’evolvere delle tipologie di memorie di massa disponibili, con l’evoluzione dei sistemi di storage (siamo passati dai floppy disk a unità anche di decine di TB), con il loro progredire (dai dischi fissi alle unità SSD), con le dimensioni dei file creati dall’utente cresciute enormemente.

L’HFS, l’HFS+ e altri derivati
Hierarchical File System (HFS) è il nome con il quale Apple chiama il suo filesystem. È stato introdotto nel 1985 come nuovo filesystem per i computer Macintosh, in sostituzione del precedente Macintosh File System (MFS), usato dai primi modelli di Mac, pensato per una struttura di memorizzazione “piatta”. Aveva diversi vantaggi rispetto al FAT dei sistemi DOS: permetteva, ad esempio, di usare nomi lunghi fino a 31 caratteri, supportava i metadati e la memorizzazione separata di dati e risorse riguardanti lo stesso file. Verso la fine del 1997, con Mac OS 8.1 fu ufficialmente presentato HFS+, successore del precedente. L’HFS+ risolveva problemi di frammentazione, di spazio occupato inutilmente dai file al crescere delle partizioni, integrando il supporto a nomi di file lunghi fino a 255 caratteri.

Apple ha continuato a migliorare il suo filesystem; nel novembre del 2002 ha aggiunto il journaling migliorando la disponibilità e la resilienza agli errori del computer. Il journaling protegge l’integrità del filesystem in caso di spegnimento imprevisto o caduta di tensione; consente inoltre di ottimizzare i tempi di attività di server e dispositivi di archiviazione connessi, velocizzando la riparazione dei volumi interessati quando il sistema si riavvia.

Con Mac OS 10.3 arrivò un’altra versione di HFS Plus chiamata HFSX. I volumi in in questione sono quasi identici a quelli HFS Plus ma supportano la sensibilità alle maiuscole per i nomi dei file e delle cartelle, facendo distinzione nei nomi di file con maiuscole e maiuscole (opzione particolarmente utile in ambito server). Con Mac OS X 10.4 è stato integrato il supporto ad alcuni attributi estesi e introdotto il supporto per il controllo di sicurezza basato su liste di controllo degli accessi (ACL).

HDDvsSSD

File system di nuova generazione
Apple sa da tempo che l’HFS+ è ormai un sistema datato. Non è “disastroso” come qualcuno tenta di dipingerlo ma anzi, considerando che le sue radici affondano a 30 anni addietro, bisogna riconoscere che i suoi progettisti sono stati lungimiranti, capaci di creare un meccanismo di memorizzazione aggiornabile, solido e resistente nel tempo. I sistemi di memorizzazione sono molto cambiati negli ultimi anni e, come abbiamo già detto, siamo passati dai floppy disk, alle unità SSD, ai dischi RAID, da sistemi di memorizzazione che usavano piatti magnetici, a unità che usano veloci memorie ad accesso casuale.

Nel 2007 Apple cominciò ad esplorare il supporto a file system di nuova generazione mettendo gli occhi su ZFS, filesystem progettato da un team di Sun che vanta numerose caratteristiche assenti dai filesystem di vecchia generazione. In alcune versioni preliminari di Mac OS X 10.5 era stato integrato il supporto in lettura e scrittura allo ZFS ma il progetto fu definitivamente abbandonato nel 2009 (per motivi mai del tutto chiariti ma probabilmente per incompatibilità con la tipologia di licenza imposta da Sun per l’uso del suo filesystem). Esistono strumenti di terze parti che consentono di gestire ZFS sul Mac ma queste utility non hanno mai avuto successo all’infuori di ristrette cerchie di esperti e appassionati.

Arriva APFS
Apple non è stata con le mani in mano in questi anni e il team che si occupa del filesystem a Cupertino (guidato da Dominic Giampaolo, ingegnere che ha creato, tra le altre cose, BeFS per BeOS e integrato il journaling in HFS+), ha sviluppato un nuovo filesystem, APFS, che è supportato da macOS Sierra 10.12 ma il cui completamento è fase di testing e richiederà molti mesi. Apple parla del 2017 ma potrebbe essere un obiettivo ottimistico: com’è facile immaginare, un filesystem con potenziali bug disastrosi non è accettabile: si mettono a rischio i dati di milioni di utenti e prima di marcarlo come definitivo, sicuro e affidabile, occorreranno mesi e mesi di test nelle condizioni più disparate possibili.

Struttura container

Perché “APFS” e non “AFS”?
Il nome “APFS” è stato scelto al posto di “AFS” (logico acronimo per “Apple File System”) perché esiste già un filesystem con quest’ultimo nome. AFS è l’acronimo di Andrew File System: quest’ultimo è sviluppato dalla Carnegie Mellon University ed è utilizzato nell’ambito dell’elaborazione distribuita. Per evitare questioni legali, Apple ha probabilmente preferito chiamare il nuovo meccanismo di memorizzazione dei file con un acronimo non esistente.

Peculiarità di APFS
Sono varie le peculiarità di APFS. Di seguito la descrizione di alcune funzionalità tra le più interessanti (per i dettagli più tecnici vi rimandiamo agli articoli di supporto tecnico sul sito Apple dedicato agli sviluppatori).

  • Cifratura – Una prima caratteristica dell’APFS è la cifratura. È un requisito essenziale in virtù di nuove necessità che si sono create in ambito sicurezza e con il diffondersi dei dispositivi portatili (notebook, smartphone, tablet). Dal punto di vista tecnico, APFS supporta unità cifrate e no, cifratura a chiave singola (crittografia simmetrica) per medatati e dati utente, cifratura a chiavi multiple con differenti tipologie di protezioni per metadati, file e sezioni di file (a misura variabile o “extents”).
  • Snapshot – Gli snapshot (“istantanee”) sono una delle funzionalità più interessanti. In poche parole è possibile “fotografare” lo stato complessivo di una unità in un determinato momento, opzione utile per ripristinare il sistema in caso di problemi. Sarà, ad esempio, possibile installare un aggiornamento del sistema operativo e, in caso di problemi, tornare indietro esattamente alla stessa situazione dalla quale siamo partiti prima dell’update. Il sistema è efficiente dal punto di vista della gestione dei dati, tiene conto delle effettive modifiche apportate. Il meccanismo è complementare alle funzionalità previste da Time Machine (il quale, al momento non supporta la scrittura su supporti inizializzati APFS). Nelle future versioni di OS X si avranno in pratica due funzioni per il ripristino dei dati: con Time Machine sarà possibile recuperare file e cartelle cancellati nel corso del tempo; con gli snapshot sarà possibile ripristinare l’intero stato del sistema salvato periodicamente (in base alle impostazioni scelte dall’utente).
  • Spazio condiviso – L’APFS supporta lo spazio condiviso di unità e volumi, costituito da unità, o volumi, uniti tra loro. Lo space sharing consente a più filesystem di condividere lo spazio libero su un volume fisico. Rispetto al tradizionale e rigido meccanismo delle partizioni, con il quale è necessario allocare un determinato spazio fisso per il filesystem, i volumi APFS possono crescere o diminuire (essere ridimensionati) senza ripartizionare i volumi. Ciascun volume in un “container” APFS riporta lo stesso spazio libero disponibile, corrispondente al titolare dello spazio disponibile nel container. Ad esempio, un container APFS con capacità di 100GB che include il volume “A” nel quale sono sfruttati 10GB e il volume “B” che sfrutta 20GB, lo spazio libero totale è indicato in 70GB (100GB – 10GB – 20GB).
  • Efficienza nella gestione dello spazio allocato – L’APFS tiene conto di file identici, evitando l’inutile duplicazione. Se esistono cartelle con più file identici, il sistema memorizzerà un solo tipo di file per tutti; se un singolo file viene modificato rispetto agli altri fino a quel momento identici, allocherà al volo nuovo spazio con la “copy in write”, una tecnica di ottimizzazione che mira alla riduzione delle operazioni di duplicazione delle risorse del sistema. Il vantaggio principale della tecnica di copy-on-write è che se una risorsa duplicata viene successivamente liberata o eliminata senza che nel frattempo né l’originale né la copia siano mai stati modificati, il sistema ha effettivamente evitato una duplicazione non necessaria, con conseguente risparmio di tempo. Il copy-on-write è quindi tanto più vantaggioso quanto più “onerosa” è l’operazione di duplicazione e quanto più infrequenti sono le operazioni di scrittura
  • Integrità dati – Lo scopo principale di un filesystem è garantire l’integrità dei dati. Durante le operazioni di lettura e scrittura dei file, è possibile che si verifichino crash, blocchi, chiusura improvvise della macchina. Nei fileystem tradizionali, un flag all’avvio del sistema consente di capire se un computer o un dispositivo è stato chiuso correttamente o meno e richiamare eventuali utility di verifica e controllo. Uno specifico schema di gestione dei metadati copy-on-write consente di migliorare la protezione del filesystem dai crash, riducendo allo stesso tempo i compiti al quale è richiamato il journaling in caso di problemi.
  • Performance – Apple afferma che il nuovo filesystem è particolarmente ottimizzato per le unità di archiviazione Flash/SSD. Allo scopo ha previsto un layer specifico denominato Flash Translation Layer (FTL). Maggiore velocità nella lettura e scrittura dei file dovrebbero essere garantite da specifiche funzionalità pensate per ridurre le latenze di I/O. Il sistema tende sempre a dare priorità alle operazioni eseguite dall’utente; in teoria – dovremmo vedere molto meno la rotella colorata che appare quando il sistema è particolarmente occupato in operazioni di lettura/scrittura con il disco. Anche tenere conto di quanto spazio occupa un insieme di cartelle sarà più facile: il Fast Directory Sizing consente di calcolare velocemente lo spazio occupato da cartelle e sottocartelle.

Critiche
Tutto bene per APFS? Sì, ma gli appunti non mancano. Tra le critiche al nuovo filesystem l’assenza di un sistema di checksum per i dati utente. È previsto un meccanismo di checksumming ma non per i file generati dagli utenti. Questa implementazione, secondo alcuni esperti, benché implicherebbe per ogni file maggiore spazio occupato, permetterebbe di implementare una sequenza di bit che, associata al pacchetto trasmesso, potrebbe essere usata per verificare l’integrità di un qualsiasi file.

Altra critica all’APFS è che continua a essere basato sul concetto di blocchi logici (settori), un meccanismo che a detta di alcuni non ha più senso con l’avvento delle memorie di nuova generazione come le 3D Xpoint di Intel. Dischi fissi e unità SSD memorizzano i file in blocchi logici variabili da 512 byte (nei vecchi sistemi) a settori da 4K (4.096 byte). Con l’aumentare delle capacità delle unità disco, la dimensione dei settori si è dimostrata un freno nella progettazione di unità disco di grandi capacità e nel miglioramento dell’efficienza della correzione degli errori. Ad ogni modo, essendo un filesystem in fase di sviluppo non è da escludere l’arrivo di nuove funzionalità nei mesi e negli anni a venire. Come abbiamo visto, precedenti limitazioni dell’HFS sono state risolte nelle successive implementazioni.

Conclusioni
Non esiste il filesystem perfetto e soprattutto non è possibile crearlo in poco tempo. Apple, benché abbia ufficialmente reso noto solo ora APFS,  sta ad ogni modo lavorando al sistema da almeno un paio di anni. Cupertino ha gettato le basi per un filesystem che potrà probabilmente resistere bene almeno altri 30 anni. Serviranno moltissimi test (Apple ipotizza la disponibilità nel 2017 ma non ci stupiremmoo se decidesse di spostare ancora più in avanti nel tempo il rilascio delle specifiche definitive).

Quando il nuovo filesystem sarà disponibile potrà essere messo alla prova in quanto a prestazioni, affidabilità, sicurezza, ecc. Non è chiaro se il filesystem sarà disponibile come implementazione open source; nella documentazione degli sviluppatori è indicato che – al momento – tale implementazione non è disponibile; non è dunque da escludere che Apple intenderà fare qualcosa in questo senso. La disponibilità come open source potrebbe significare l’adozione o il supporto anche su sistemi operativi non Apple, accelerando e favorendo l’adozione di massa.

Offerte Speciali

Apple Watch 5 GPS+Cellular, sconto su Amazon

Su Amazon Apple Watch 5 con rete cellulare è in sconto. La versione alluminio rosa a quasi 45 euro in meno del prezzo di mercato
Pubblicità
Pubblicità
Pubblicità

Seguici e aggiungi un Like:

64,429FansMi piace
95,285FollowerSegui