Già dal 2012, con l’introduzione di Windows Server 2012, Microsoft ha presentato ReFS (Resilient File System), un nuovo file system per gli ambienti Windows progettato per i workload moderni e, idealmente, per sostituire NTFS appena possibile. Le prime versioni di ReFS non brillavano per velocità ma con Windows Server 2016 ReFS è diventato il file system raccomandato per workload importanti come i cluster di storage S2D o per le infrastrutture iperconvergenti basate su Hyper-V, promuovendolo ormai senza riserve all’uso in produzione.
Nel mondo di Windows Server è certamente inusuale discutere di file-system alternativi a NTFS, discussioni più comuni nel mondo Linux nel quale le alternative sono numerose, ma se Microsoft ha deciso di introdurre una alternativa a NTFS lo ha fatto probabilmente per superare le limitazioni di una tecnologia disegnata tantissimi anni fa
ReFS include novità come l’introduzione dei B+ trees per incrementare le prestazioni, una tecnologia di block cloning che riduce la necessità di trasferire i dati da una parte all’altra del disco implementando l’operazione come una modifica di puntatori che possono essere aggiornati con pochissimo I/O e lo sparse VDL (Valid Data Length) che può inizializzare in modo super-veloce i nuovi file e che rende quindi la creazione di file molto grandi una operazione che dura pochissimi secondi. Accanto a questo, la dimensione massima di ogni volume passa a 1 yottabyte, cioè un miliardo di terabyte, garantendo il supporto per dati di dimensioni difficilmente immaginabili quando il vecchio NTFS fu progettato e proiettando ReFS nell’era del cloud.
Ci sono però 4 funzionalità killer che consentono al nuovo file system di fare da subito la differenza anche quando non si abbiano necessità particolari come l’implementazione di cluster di storage o di virtualizzazione o sistemi complessi. Alcune di queste non sono novità assolute ma richiedevano controller hardware per essere implementate mentre ReFS è un modulo completamente software che non usa i controller RAID hardware.
Funzionalità #1: chkdsk senza downtime
Con l’avvento del cloud i workload sono diventati ancora più complessi e la mole di dati da gestire è aumentata a dismisura. In passato il danneggiamento di un file system richiedeva l’uso di chkdsk ma, soprattutto, la sospensione delle attività del volume per la correzione degli errori. L’unità doveva essere messa offline e verificata, una operazione che poteva durare anche decine di ore per volumi molto grandi e questo spesso incoraggiava e creare volumi più piccoli per rendere questi tempi accettabili.
Nell’era del cloud la sospensione dell’attività di un volume, e quindi l’indisponibilità dei relativi dati, per ore non è più accettabile. ReFS non ha quindi più bisogno di chkdsk e nemmeno di sospendere l’attività del volume perché il file system può correggere (se possibile) i problemi in modo automatico e, nei casi in cui la correzione non sia possibile, può rimuovere le aree danneggiate dalla gestione del volume senza andare ad intaccare gli altri dati.
Perchè è importante
Chiunque si sia trovato davanti alla necessità di effettuare un chkdsk di un volume, magari a causa di un file danneggiato che non poteva essere rimosso nè rinominato, e abbia dovuto attendere ore per il completamento dell’operazione tirerà sicuramente un sospiro di sollievo. ReFS non fa magie e non può impedire la perdita di dati ma può rendere l’operazione molto meno impattante per il prosieguo delle attività ed evitare, almeno per i dati non danneggiati, downtime di ore solo per la correzione di pochi file.
Funzionalità #2: correzione automatica degli errori
ReFS può correggere automaticamente gli errori del file system quando viene usato con tecnologie che lo supportino come Storage Spaces. Su volumi protetti con funzionalità di mirror o parity, quando ReFS rileva un errore può automaticamente andare a leggere il dato da una delle altre copie disponibili prima di restituire un errore definitivo all’utente. Su un volume mirrored con 3 copie dei dati, ReFS può quindi provare a leggere una delle altre due copie che risiedono sugli altri dischi e rispondere con errore solo quando tutte e tre le copie siano danneggiate e tutto questo in modo trasparente.
Inoltre, ReFS può usare gli integrity file-stream come ulteriore meccanismo di protezione dal danneggiamento dei dati. Normalmente il file system memorizza il checksum solo per i metadata ma può essere configurato per memorizzare il checksum anche dei dati dei file e quindi rilevarne il danneggiamento anche quando le informazioni possano essere lette ma non siano corrette. Anche in questi casi ReFS può provare a leggere le altre copie disponibili prima di arrendersi e restituire un errore, sempre in modo trasparente per l’utente.
Perchè è importante
La correzione automatica dei dati consente di risolvere in modo rapido ed indolore situazioni nelle quali errori di lettura delle informazioni si potevano ripercuotere su altre parti del funzionamento di una applicazione e generare a cascata altri problemi. ReFS può risolvere queste situazioni in modo automatico e consentire alle applicazioni di funzionare normalmente e pianificare con una maggiore tranquillità le attività di manutenzione.
Funzionalità #3: performance migliorate
ReFS può gestire in modo più semplice quelle situazioni in cui NTFS veniva messo a dura prova, ad esempio nel caso di volumi o cartelle con un numero di file molto elevato che spesso diventavano quasi ingestibili. Inoltre, risolve i casi di estrema frammentazione di file molto grandi che causano errori e richiedono la formattazione NTFS con il famoso switch “/l” che aumenta la dimensione dei record. Con ReFS questo problema non esiste più.
Le prestazioni di ReFS in generale variano in relazione ai casi d’uso. NTFS è sicuramente ancora più veloce come file system generico ma tecnologie come il fast-cloning possono rendere le operazioni in ReFS più veloci in determinati scenari ed in generale la differenza di prestazioni tra i due sistemi non è più così ampia, aggirandosi tra il 5 ed il 7%.
Perchè è importante
ReFS non è per adesso più veloce di NTFS per quello che riguarda la velocità pura ma può compensare con le sue molteplici funzionalità aggiuntive ed in generale è ormai davvero vicino alle prestazioni del suo fratellino più anziano.
Funzionalità #4: scrubbing automatico
Questa funzionalità sarebbe potuta comparire nel punto #2 ma merita un suo paragrafo perchè può risultare molto utile in alcuni scenari. ReFS ha infatti un processo di scrubbing automatico che viene eseguito ogni 4 settimane, anche se la frequenza può essere configurata, e che è pensato per combattere il cosiddetto bit flipping che può capitare con i dati ai quali si accede meno di frequente.
Lo scrubbing effettua un tentativo di accesso di tutti i dati memorizzati su disco e forza in questo modo la lettura delle informazioni ed eventualmente il rilevamento di eventuali errori. Grazie alle sue funzionalità di protezione, ReFS può correggere automaticamente tali errori prendendo il dato da altre copie, come descritto nel paragrafo #2, ed evitare così la perdita dei dati.
Questa funzionalità può risultare utilissima se sul volume sono memorizzati dati a cui si accede molto di rado perchè a volte l’infrequenza dell’accesso porta a rendersi conto del problema solo quando è troppo tardi, magari quando anche le copie aggiuntive sono danneggiate o non più recuperabili. Con lo scrubbing invece i dati vengono mantenuti verificati con una certa costanza ed è così possibile rilevare prima eventuali problemi.
Perchè è importante
Per motivi tecnici, i dati a cui si accede di meno sono quelli più a rischio di danneggiamento e spesso sono anche quelli di cui ci accorge solo quando è troppo tardi. Lo scrubbing automatico aiuta a rilevare eventuali problemi ed anche a correggerli automaticamente, se possibile.
Funzionalità #5: deduplica dei dati
Un momento ma non erano 4 i motivi ? Si ma c’è un bonus perchè con il rilascio di Windows Server 1709, ReFS guadagna anche la deduplica dei dati, la tecnologia che consente di memorizzare più copie dello stesso dato solo una volta su disco promettendo un risparmio di spazio che arriva fino al 95% in alcuni scenari. Questa funzionalità non è una esclusiva di ReFS perchè anche NTFS ha la deduplica dei dati ma questa funzionalità aggiunge valore all’investimento in ReFS, specialmente quando la si usa con il block cloning di cui abbiamo già parlato.
Perchè è importante
Ci sono molti scenari in cui lo stesso dato viene memorizzato più volte sullo stesso volume. Macchine e virtuali e backup sono candidati ideali ma ci possono essere altri scenari sorprendenti nei quali la deduplica può aiutare a risparmiare molto spazio.
Due motivi importanti per non usare ReFS
Ci sono anche limitazioni nell’usare ReFS sebbene siano di molto ridotte rispetto alle prime versioni della tecnologia. Alcune di queste limitazioni sono però da valutare molto attentamente perché possono influire sulla sicurezza dei dati e sulle funzionalità del proprio sistema.
Limitazione #1: tool e filosofia interna
Il primo e più importante limite di ReFS sta proprio nella sua filosofia perché essendo progettato come file-system per l’era del cloud, è stato sviluppato per essere usato nelle infrastrutture di nuova generazione con le quali si suppone che il sistema non vada mai in crash completo grazie ad un design “resiliente”. Questo si nota anche dalla mancanza di sistemi di recupero delle informazioni in caso di volumi che, per qualsiasi ragione, non funzionino correttamente. Intendiamoci, ReFS non è fragile ed anche in deployment complessi come quelli di infrastrutture iperconvergenti con S2D può recuperare da crash completi e funzionare correttamente.
Come con tutti i sistemi informatici, però, ci sono situazioni in cui – per diverse ragioni – il sistema non può tornare online da solo ed in questo caso l’assenza di tool di recupero può essere un fattore da tenere in considerazione. In questi casi il ripristino può avvenire solo da backup, almeno fino a quando non ci saranno strumenti elaborati da Microsoft o da terze parti che consentano di intervenire più a basso livello. In questo NTFS, che è in giro più di 20 anni, ha un vantaggio.
Limitazione #2: funzionalità non supportate
Alcune delle funzionalità di NTFS non sono supportate dal nuovo ReFS. Non è dato sapere ancora se queste funzionalità siano in fase di completamento o se Microsoft ritenga che una o più di queste non siano utili per gli scenari per cui ReFS è stato progettato ma tra le funzionalità non supportate ci sono la compressione dei file, gli hard link, la cifratura dei dati, le transazioni, i quota ed altre.
Bisogna tenere conto della mancanza di queste funzionalità sia se ne facesse un uso diretto, sia se fossero necessarie per il corretto funzionamento di qualche applicazione che quindi potrebbe non essere eseguita correttamente se installata su ReFS.
In breve…
ReFS viene in genere considerata una tecnologia pensata in modo specifico per l’hardware e da usare nella costruzione di grandi infrastrutture cloud ed è sicuramente questo il suo obiettivo principale. Con le sue funzionalità avanzate, specialmente quando usato con Storage Spaces o Storage Spaces Direct (S2D), ReFS è in grado di risolvere anche automaticamente molti problemi comuni per le infrastrutture di storage e questo senza usare controller particolari ma solo un layer software. Tuttavia la tecnologia è utilizzabile anche con le infrastrutture virtuali, sia quando l’infrastruttura stessa fornisca una resilienza di base, sia quando quest’ultima sia necessaria a livello di deployment virtuale.
Ciò che mi sento di raccomandare più che caldamente è però la necessità di affiancare al deployment di ReFS un robusto sistema di backup. Come detto, ReFS è nuovo e, a parte i bug, la mancanza di tool di recupero potrebbe rendere i dati inaccessibili o costosi da recuperare
Alcune funzionalità, come la capacità di non dover mettere offline il volume da riparare, sono enorme aiuto anche in caso di virtualizzazione senza contare che in alcuni casi è Microsoft stessa che raccomanda l’uso di ReFS ad esempio per i database di Exchange 2016.
Nel mondo di Windows Server è certamente inusuale discutere di file-system alternativi a NTFS, discussioni più comuni nel mondo Linux nel quale le alternative sono numerose, ma se Microsoft ha deciso di introdurre una alternativa a NTFS lo ha fatto probabilmente per superare le limitazioni di una tecnologia disegnata tantissimi anni fa e che, seppur migliorata nel corso del tempo, probabilmente inizia a sentire il peso di un design pre-cloud e pre-Internet.
Ciò che mi sento di raccomandare più che caldamente è però la necessità di affiancare al deployment di ReFS un robusto sistema di backup. Come detto, ReFS è nuovo e, a parte i bug, la mancanza di tool di recupero potrebbe rendere i dati inaccessibili o costosi da recuperare ed in questi casi è più pratico avere un backup da ripristinare per poter recuperare almeno la parte necessaria delle informazioni in base alle proprie necessità. ReFS senza backup ? No no…
Leave a Response