NTFS ha 19 anni

Test – con la compressione offerta da Windows si può ottenere qualche gigabyte in più sul proprio SSD senza perdere prestazioni, a patto di avere una CPU adatta.

Avatar di Tom's Hardware

a cura di Tom's Hardware

NTFS ha 19 anni

Windows NT 3.1, pubblicato nel 1993, aprì una nuova era con l'introduzione del file system NT a sostituzione del precedente FAT. C'erano un paio di vantaggi, come la possibilità di usare nomi più lunghi per i file, che in precedenza potevano solo essere di 8+3 caratteri. A differenza del sistema FAT inoltre NTFS permette di usare fino a 256 caratteri Unicode – prima si ammettevano solo caratteri latini. Questa caratteristica è presente anche nell'erede del FAT, che è il FAT32 - fu introdotto con Windows 95b nel 1997, ma non riuscì a diventare un vero concorrente per NTFS.

NTFS offre anche molte funzioni di sicurezza, come il journaling che permette di applicare tutte le modifiche nel cosiddetto journal (diario) in uno spazio dedicato sul disco, prima che i dati siano effettivamente modificati. Questa tecnica permette di recuperare i dati velocemente se si verifica un'interruzione delle operazioni, dovuta magari a un crash di sistema o a un'interruzione dell'alimentazione.

Tra le altre caratteristiche comprese nel sistema NTFS c'è la possibilità di specificare permessi di accesso per file e cartelle, crittografare solo alcune aree del disco, stabilire quote di spazio assegnate agli utenti e usare la compressione dati oggetto di questo articolo.

Compressione NTFS

NTFS usa l'algoritmo LZNT1, una variante dell'LZ77, per la compressione senza perdite e cluster da 4096 byte per l'archiviazione dei dati. Il file system comprime i dati in blocchi da 16 cluster, con incrementi di 64 KB ognuno. Se non riesce a comprimere i dati in meno di 16 blocchi invece non applica modifiche.

Se l'algoritmo LZNT1 riesce a comprimere blocchi da 64 KB in 60 KB o meno, risparmiando così almeno un cluster, userà il cluster così liberato come uno sparse file, cioè un file sparso distribuito nel disco per ottimizzare lo spazio. Questi file sono prevalentemente vuoti e il sistema NTFS è in grado di ignorare le parti che non contengono informazioni. Un file compresso può quindi includere cluster compressi e non compressi, insieme a cluster dichiarati sparsi.

Questa compressione non esclude nessun tipo di file, ma come altre tecniche è inefficiente con dati che sono già compressi, come con in formati JPG, AVI o ZIP. La compressione avviene a livello di file system, ed è invisibile a livelli superiori (applicazione). Per quanto riguarda l'uso vero e proprio dei dati, tanto da parte di Windows quanto delle applicazioni, non ci sono differenze tra file compressi e non compressi in questo modo.

Vantaggi: il più grande vantaggio della compressione NTFS è, ovviamente, che si guadagna spazio. Specialmente chi ha un piccolo SSD sarà probabilmente contento di poter aggiungere al totale anche qualche MB. Aumentare la compressione e ridurre la dimensione dei file dovrebbe anche portare a migliori velocità di lettura  e scrittura; almeno in teoria, perché si leggono e scrivono meno dati.

Svantaggi: secondo Microsoft la compressione NTFS pesa molto sulla CPU, e non è raccomandabile per server che devono gestire molte operazioni di lettura e scrittura. Anche in casa ci sono dei limiti da tenere in considerazione: dovreste abilitare la compressione solo per quelle cartelle con poche operazioni di lettura e scrittura, quindi non certo la cartella di Windows o quelle delle applicazioni più usate.

Anche le operazioni di copia potrebbero diventare molto più lente, perché prima il sistema deve decomprimere i file, poi eseguire l'operazione e infine comprimere di nuovo le informazioni. I dati sono decompressi anche in caso di trasferimenti di rete, quindi questa tecnica non aiuta a risparmiare banda.

Nota: la compressione NTFS in segmenti da 64 KB produce una grande frammentazione nei dati, specialmente per i file più facilmente comprimibili perché le informazioni saranno gestite come file sparsi. Secondo Microsoft la compressione NTFS di un blocco da 64 KB genera mediamente un cluster sparso. Dividere un file da 20 GB in segmenti da 64 KB in questo modo quindi genera 327.680 cluster sparsi. Un fatto senz'altro rilevante se parliamo di hard disk meccanico, ma non altrettanto per un SSD, perché i drive allo stato solido hanno un tempo di accesso talmente basso che la frammentazione semplicemente non è un problema.