Nel settore delle unità disco siamo a un punto di svolta. Negli corso degli ultimi anni la densità di memorizzazione è aumentata vertiginosamente, mentre la dimensione del blocco logico, noto come settore, che è uno degli aspetti di base del design delle unità disco, è rimasta invariata.
Intorno al 2010 i produttori di unità disco hanno cominciato a smettere di utilizzare settori da 512 byte per passare a settori da 4.096 byte, in genere indicati come settori da 4 KB, che offrono dimensioni maggiori e sono più efficienti. Questo formato è comunemente indicato con il termine Advanced Format, coniato dall'associazione IDEMA (The International Disk Drive Equipment and Materials Association).
Nel presente documento viene fornito il contesto di questa migrazione e vengono descritti i vantaggi a lungo termine per i clienti nonché come evitare possibili problemi associati al passaggio dai settori da 512 byte a settori da 4 KB.
Per oltre 30 anni i dati memorizzati sulle unità disco sono stati formattati in piccoli blocchi logici detti settori, con dimensioni di 512 byte. Sono ancora molti gli aspetti dei sistemi attuali che operano a partire da questo formato standard.
In questo formato dei settori sono incluse una sezione di separazione, una sezione di sincronizzazione, una sezione del contrassegno dell'indirizzo, una sezione dati e una sezione ECC (Error Correction Code) per i codici di correzione degli errori (Figura 1).
Figura 1. Layout dei settori sul supporto dell'unità disco con lo standard precedente
Di seguito viene descritta la struttura del layout dei settori.
Questo formato a basso livello è stato utilizzato nel settore con successo per molti anni. Tuttavia, con l'aumentare delle capacità delle unità disco, la dimensione dei settori è man mano diventata un freno nella progettazione di unità disco con capacità maggiori e nel miglioramento dell'efficienza della correzione degli errori. Ad esempio, confrontando il rapporto tra dimensione dei settori e capacità totale delle unità disco precedenti e di quelle più recenti, è evidente che la risoluzione dei settori è diventata molto piccola. La risoluzione dei settori (ossia la percentuale occupata da un settore rispetto allo spazio di memorizzazione totale) è diventata molto piccola e sempre più inefficiente (Tabella 1).
| Capacità | Numero totale di settori | Risoluzione dei settori |
| 40 MB | 80.000 | 0,001% |
| 400 GB | 800.000.000 | 0,0000001% |
| 12 TB | 24,000,000,000 | 0,000000004% |
Una risoluzione molto piccola è adatta quando si gestiscono piccole quantità di dati distinte. Le comuni applicazioni nei sistemi di elaborazione moderni gestiscono però blocchi di dati grandi, molto più grandi dei 512 byte che corrispondono alla dimensione dei settori dello standard precedente.
Inoltre, e ancora più importante, i piccoli settori da 512 byte occupano uno spazio sempre inferiore sulla superficie dell'unità disco a causa dell'aumento della densità d'area. Questo rappresenta un problema relativamente alla correzione degli errori e al rischio di difetti del supporto. Nella Figura 2 è illustrato come il fatto che i dati occupano aree più piccole nel settore dell'unità disco renda più difficile la correzione degli errori in quanto un difetto del supporto con le stesse dimensioni ora può danneggiare una più alta percentuale dei dati totali e quindi risulta più complesso da correggere.
Figura 2. Difetti del supporto e densità d'area
Un settore da 512 byte in genere è in grado di correggere un difetto con una lunghezza massima di 50 byte. Oggigiorno, con l'aumentare della densità d'area, le unità disco hanno iniziato a raggiungere i loro limiti in termini di correzione degli errori. La migrazione a settori di dimensioni maggiori nelle unità disco è perciò diventata una necessità fondamentale per ottenere miglioramenti nel campo della correzione degli errori e una maggiore efficienza di formattazione.
Sono anni che nel mercato dei sistemi di memorizzazione si pensa di effettuare la transizione a unità disco con settori di dimensioni maggiori. Seagate e i suoi collaboratori hanno incominciato a impegnarsi in modo significativo in questa direzione dal 2005 (Figura 3). Nel dicembre 2009, in collaborazione con l'associazione IDEMA, è stato approvato il nome ufficiale Advanced Format per lo standard con settori da 4 KB. Tutti i produttori di unità disco si sono così impegnati a immettere sul mercato nuove piattaforme di unità disco per PC desktop e portatili con i settori formattati in base allo standard Advanced Format a partire dal gennaio 2011. Ma le prime unità Advanced Format si sono affacciate sul mercato ancora prima di questa data. Seagate ha proposto le unità con settori più grandi prime ai clienti OEM e all’interno di prodotti retail con marchio Seagate.
Figura 3. Momenti importanti nello sviluppo dello standard Advanced Format
Poiché tutti i produttori di unità disco hanno accettato di passare al formato dei settori Advanced Format entro il gennaio 2011, il mercato si è preparato ad accogliere questo cambiamento in modo da minimizzare possibili effetti secondari negativi. Sebbene gli utenti finali non abbiano visto a breve termine forti aumenti immediati delle capacità, la migrazione ai settori da 4 KB ha decisamente favorito un rapido aumento delle densità d'area e delle capacità delle unità disco, oltre a una più affidabile correzione degli errori.
Maggiore efficienza di formattazione grazie alla riduzione dello spazio utilizzato per i codici di correzione degli errori
Nella Figura 4 è illustrato il formato precedente con settori da 512 byte, dove per ogni settore da 512 byte sono presenti 50 byte non destinati ai dati ma a ECC e altri 15 byte per le sezioni di spaziatura, sincronizzazione e contrassegno dell'indirizzo, per un'efficienza della suddivisione in settori1 pari a circa l'88% (512/(512 + 65)).
Figura 4. Layout del formato precedente con settori da 512 byte
Il nuovo standard Advanced Format utilizza settori da 4 KB, ossia praticamente unisce otto settori del precedente formato da 512 byte in un singolo settore da 4 KB (Figura 5).
Figura 5. Layout di Advanced Format: con settori da 4 KB
Lo standard Advanced Format utilizza lo stesso numero di byte per spaziatura, sincronizzazione e contrassegno dell'indirizzo, ma estende a 100 i byte riservati per il campo ECC, per un'efficienza della suddivisione in settori1 pari al 97% (4096/(4096 + 115)), un miglioramento vicino al 10%.
Questo aumento di efficienza del formato ha portato, nel tempo, a capacità superiori e a una maggiore integrità dei dati.
Affidabilità e correzione degli errori
Sebbene la dimensione fisica dei settori delle unità disco sia diminuita, in quanto occupano sempre meno spazio, i difetti dei supporti non si sono ridotti. Nella Figura 6 sono rappresentati degli oggetti che vengono considerati molto piccoli, ma rispetto alla distanza dalla superficie della testina di lettura/scrittura dell'unità disco in movimento questi oggetti risultano relativamente grandi. Particelle microscopiche molto più piccole di quelle mostrate in figura possono creare danni al supporto dell'unità disco.
Figura 6. Rappresentazione in scala della distanza della testina in movimento
I settori più grandi da 4 KB dello standard Advanced Format consentono circa di raddoppiare2 la dimensione del blocco ECC, da 50 byte a 100 byte, offrendo un netto miglioramento nell'efficienza di correzione degli errori e maggiore resistenza a particelle e difetti del supporto.
I vantaggi offerti da una maggiore efficienza di formattazione e da una correzione degli errori più affidabile rendono la transizione ai settori da 4 KB un buon investimento. Riuscire a gestire questa transizione in modo da godere dei vantaggi a lungo termine, minimizzando gli effetti collaterali, è stato uno degli obiettivi principali del mercato delle unità disco.
Come già fatto notare, molte funzioni dei sistemi di elaborazione moderni continuano ad assumere che la dimensione dei settori sia di 512 byte. Sperare che l'intero mercato passi al nuovo standard da 4 KB e che scompaiano i sistemi che lavorano con il precedente standard è semplicemente non realistico. Nel tempo sicuramente nasceranno implementazioni con settori da 4 KB nativi, dove sia l'host che l'unità disco scambiano dati in blocchi di 4 KB, ma fino ad allora i produttori di unità disco implementeranno la transizione ai settori da 4 KB insieme a una tecnica detta emulazione dei settori da 512 byte.
Emulazione dei settori da 512 byte.
L'introduzione dei settori da 4 KB ha fatto molto affidamento sull'emulazione dei settori da 512 byte, ossia al processo di conversione dai settori fisici da 4 KB utilizzati dallo standard Advanced Format ai settori logici da 512 byte utilizzati dai sistemi di elaborazione host.
Questa soluzione è accettabile in quanto non richiede cambiamenti complessi nei sistemi di elaborazione esistenti. Potrebbero tuttavia sorgere dei problemi di prestazioni, in particolare quando si scrivono dati che non corrispondono esattamente a otto settori nel formato precedente convertiti. Il problema diventa evidente se si analizza il processo di lettura e scrittura richiesto dall'emulazione a 512 byte.
Processi di lettura e scrittura emulati
Per leggere i dati da un'unità formattata in settori da 4 KB in modalità di emulazione a 512 byte, il processo è molto semplice, come illustrato nella Figura 7.
Figura 7. Possibile sequenza di lettura per emulazione a 512 byte
Il processo di lettura di un blocco di 4 KB di dati e la riformattazione in settori da 512 byte virtuali richiesti dal computer host viene eseguito nella memoria DRAM dell'unità e non influisce in modo significativo sulle prestazioni.
Il processo di scrittura può invece essere più complicato, specialmente se i dati che il computer host scrive sono un sottoinsieme di un settore fisico da 4 KB. In questo caso, infatti, l'unità disco deve leggere prima l'intero settore da 4 KB corrispondente alla destinazione della richiesta di scrittura da parte dell'host, quindi deve unire i dati esistenti a quelli nuovi e infine deve riscrivere l'intero settore da 4 KB (Figura 8).
Figura 8. Possibile sequenza di scrittura per emulazione a 512 byte
Come conseguenza l'unità disco esegue movimenti meccanici aggiuntivi, in quanto legge un settore da 4 KB, ne modifica il contenuto e quindi scrive i dati. Questo processo viene detto ciclo di lettura-modifica-scrittura e non è desiderabile perché ha un impatto negativo sulle prestazioni. Minimizzare la probabilità e la frequenza delle operazioni di lettura-modifica-scrittura è l'aspetto più importante per garantire una transizione ai settori da 4 KB semplice e senza problemi.
Come evitare operazioni di lettura-modifica-scrittura
Differenza tra partizioni di unità disco allineate e non allineate
Finora abbiamo esaminato la comunicazione tra sistemi host e unità disco relativamente alla posizione dei settori sul supporto. Adesso parleremo dell'indirizzo di blocco logico (LBA).
Ad ogni settore da 512 byte viene assegnato un indirizzo LBA univoco, da zero (0) a un numero che dipende dalla dimensione del disco. L'host richiede un blocco di dati specifico utilizzando l'indirizzo LBA assegnato. Quando l'host richiede di scrivere i dati, alla fine della scrittura viene restituito un indirizzo LBA che indica all'host dove si trovano i dati. Questa informazione è importante quando si passa a utilizzare settori da 4 KB poiché sono presenti otto casistiche di posizionamento dell'indirizzo LBA dell'host.
Se l'indirizzo LBA 0 è allineato con il primo blocco virtuale da 512 byte nel settore fisico da 4 KB, lo stato di allineamento logico-fisico per l'emulazione a 512 byte è Alignment 0. L'indirizzo LBA 0 potrebbe invece essere allineato con il secondo blocco virtuale da 512 byte nel settore fisico da 4 KB. Questa condizione è indicata con Alignment 1 e viene confrontata con lo stato Alignment 0 nella Figura 9. Sono presenti altre sei casistiche per le partizioni non allineate che possono generare eventi di lettura-modifica-scrittura in modo simile allo stato Alignment 1.
Figura 9. Stati di allineamento
Le condizioni indicate dallo stato Alignment 0 funzionano molto bene con i settori da 4 KB dello standard Advanced Format, in quanto è facile mappare otto settori da 512 byte consecutivi dell'unità disco con un singolo settore da 4 KB. È infatti sufficiente memorizzare le richieste di scrittura da 512 byte nella cache dell'unità disco finché è stato ricevuto il numero di blocchi contigui necessari per formare un settore da 4 KB. Dato che le moderne applicazioni di elaborazione in genere gestiscono blocchi di dati con dimensioni superiori a 4 KB, gli eventi di runt sono molto rari. Le condizioni dello stato Alignment 1 sono invece completamente diverse.
Quando le partizioni dell'unità disco vengono create in uno stato di mancato allineamento come illustrato nella Figura 9, vengono eseguiti diversi cicli di lettura-modifica-scrittura che possono compromettere le prestazioni dell'unità disco. È quindi fondamentale evitare questo stato nell'implementazione di unità disco con standard Advanced Format, come descritto di seguito.
Scrittura di pochi dati
Nelle moderne applicazioni di elaborazione i dati gestiti, come documenti, immagini e flussi video, occupano molto più spazio di 512 byte. Per questo motivo, le unità disco possono memorizzare le richieste di scrittura nella cache finché il numero di blocchi da 512 byte consecutivi forma un settore da 4 KB. A patto che le partizioni delle unità disco siano allineate, la mappatura di settori da 512 byte dell'unità disco con settori da 4 KB è semplice e non incide sulle prestazioni. Esistono tuttavia dei processi a basso livello che potrebbero obbligare l'unità disco a gestire un evento runt non associato a partizioni non allineate. Ciò si verifica raramente quando l'host invia delle richieste di scrittura distinte per dati la cui dimensione è inferiore a 4 KB. In genere si tratta di attività a livello del sistema operativo relative a file system, journaling o altre operazioni simili a basso livello. Poiché solitamente il numero di queste occorrenze è limitato, le prestazioni generali non ne risentono in modo significativo. Si consiglia comunque ai progettisti di sistemi che effettuano la transizione al formato 4 KB di apportare le modifiche necessarie a questi processi al fine di ottimizzare le prestazioni.
Dopo avere analizzato i vantaggi offerti dalla migrazione ai settori da 4 KB e il possibile impatto sulle prestazioni, esaminiamo ora come affrontare al meglio questa transizione. Tratteremo questo argomento nel contesto dei due sistemi operativi più diffusi nei sistemi di elaborazione moderni: Windows e Linux.
Gestione della transizione ai settori da 4 KB in ambiente Windows
L'aspetto più importante della gestione della transizione ai settori da 4 KB è decisamente quello relativo alle problematiche di allineamento precedentemente descritte. Le unità con standard Advanced Format funzionano perfettamente nello stato Alignment 0, quando le posizioni di inizio fisica e logica coincidono. Lo stato di allineamento viene determinato nel momento in cui si creano le partizioni dell'unità disco. Le partizioni vengono create da software che appartiene a una delle seguenti due categorie generali:
Se le partizioni sono state create mediante il sistema operativo Windows, dobbiamo esaminare situazioni diverse per le tre versioni Windows XP, Windows Vista e Windows 7. Dato che Microsoft ha collaborato con la comunità per pianificare la transizione a settori di dimensioni maggiori, ha incominciato a distribuire software compatibile con i settori da 4 KB a partire da Windows Vista con Service Pack 1. Il software che crea partizioni con stato Alignment 0 (ossia che funzionano con lo standard Advanced Format) viene detto “predisposto per settori da 4 KB”. Nella Tabella 2 viene riportata la situazione per le generazioni correnti del sistema operativo Microsoft Windows.
| Versione del sistema operativo | Predisposto per settori da 4 KB | Risultati |
| Windows XP | No | Creazione della partizione primaria con stato Alignment 1 (non allineata) |
| Windows Vista - Prima del Service Pack 1 | No | Riconoscimento dei settori con dimensioni maggiori ma creazione incorretta delle partizioni (non allineate) |
| Windows Vista - Service Pack 1 o successivo | Sì | Creazione di partizioni con stato Alignment 0 (allineate) |
| Windows 7 | Sì | Creazione di partizioni con stato Alignment 0 (allineate) |
| Windows 10 | Sì | Creazione di partizioni con stato Alignment 0 (allineate) |
Chiaramente, i nuovi computer venduti con le ultime versioni di Windows non creano alcun problema con le unità disco con standard Advanced Format. I sistemi che utilizzano ancora Windows XP o Windows Vista prima del Service Pack 1, potrebbero invece risentirne in termini di prestazioni se le partizioni vengono create dal sistema operativo.
Non solo versioni precedenti del sistema operativo Windows possono creare partizioni non allineate, ma anche utility software molto diffuse tra costruttori di sistemi, OEM, rivenditori a valore aggiunto e responsabili IT. A dire la verità, in genere le partizioni vengono create con questi tipi di utility e non mediante il sistema operativo Windows. Il rischio di creare partizioni non allineate, e quindi un ambiente in cui le prestazioni dell'unità disco possono risultare compromesse quando si utilizzano settori da 4 KB, è significativo. Per complicare ulteriormente la situazione, le unità disco all'interno dei sistemi attuali in genere contengono più partizioni. È quindi necessario creare ogni partizione sull'unità disco con software predisposto per i settori da 4 KB al fine di garantire un corretto allineamento e prestazioni inalterate. Nella Figura 10 è illustrato cosa può succedere se sull'unità disco si creano più partizioni con software non predisposto per i settori da 4 KB.
Figura 10. Stato di allineamento con più partizioni
Sono disponibili tre metodi per evitare o ovviare a condizioni di mancato allineamento che potrebbero compromettere le prestazioni dell'unità disco.
L'uso di una versione di Windows predisposta per i settori da 4 KB per creare le partizioni dell'unità disco è una soluzione semplice e diretta per evitare condizioni di mancato allineamento. I fornitori di utility software per la creazione di partizioni delle unità disco dovrebbero essere in grado di indicare se sono disponibili versioni predisposte per i settori da 4 KB. In caso affermativo, eseguire la migrazione a tali versioni per evitare qualsiasi preoccupazione.
Alcuni produttori di unità disco affrontano questo problema offrendo utility che esaminano le partizioni dell'unità disco esistenti e le riallineano se necessario. Questa alternativa richiede tempo e passaggi aggiuntivi durante il processo di costruzione o upgrade del sistema.
In futuro i produttori di unità disco svilupperanno metodi più sofisticati per ovviare a condizioni di mancato allineamento in grado di evitare, allo stesso tempo, un impatto negativo sulle prestazioni.
Nel corso della transizione alle unità con standard Advanced Format, tutti questi metodi contribuiranno a massimizzare i vantaggi nel settore ma anche ad evitare eventuali cali delle prestazioni.
Le principali strategie di gestione della transizione ai settori da 4 KB in ambiente Windows sono applicabili anche in ambiente Linux. Poiché la maggior parte degli utenti di sistemi Linux hanno accesso al codice sorgente, possono personalizzare il sistema operativo in modo che soddisfi le loro esigenze specifiche. Questo consente di aggiornare in modo proattivo il sistema Linux in modo che gestisca correttamente le unità disco con standard Advanced Format.
Apportando delle modifiche al sistema Linux è possibile evitare preoccupazioni quali la creazione di partizioni dell'unità disco non allineate in unità con standard Advanced Format e la minimizzazione della scrittura di piccole quantità di dati a livello di sistema che possono generare runt indipendentemente dallo stato di allineamento.
Sono state quindi apportate modifiche sia al kernel che a utility di Linux in modo da supportare le unità con standard Advanced Format. Queste modifiche garantiscono che tutte le partizioni di unità con standard Advanced Format sono correttamente allineate con i confini dei settori da 4 KB. Il supporto per unità con standard Advanced Format a livello di kernel è disponibile a partire dalla versione 2.6.31. Il supporto per la creazione di partizioni e la formattazione di unità con standard Advanced Format è disponibile nelle seguenti utility Linux:
Fdisk: Fdisk di GNU è un'utility da riga di comando che crea partizioni nelle unità disco. Le unità con standard Advanced Format sono supportate a partire dalla versione 1.2.3.
Parted: Parted di GNU è un'utility grafica che crea partizioni nelle unità disco. Le unità con standard Advanced Format sono supportate a partire dalla versione 2.1.
Il progressivo allontanamento dal precedente standard che utilizzava settori da 512 byte è una ormai realtà. I produttori di unità disco hanno tutti accettato di adottare lo standard Advanced Format entro il gennaio 2011 per i nuovi modelli immessi sui segmenti di mercato dei PC desktop e portatili.
Gli ingegneri continuano ad aumentare le densità d'area sulle unità disco e a fornire sistemi di correzioni degli errori più robusti. I consumatori continuano a usufruire di capacità delle unità disco sempre maggiori, costi per gigabyte inferiori e livelli di affidabilità costanti grazie alla tecnologia impiegata nelle unità disco.
La transizione è stata indolore, senza problematici cali di prestazioni, grazie a una buona informazione della comunità nel campo dei sistemi di memorizzazione. L'aspetto più critico che ha assicurato il successo di questa transizione, senza problemi, ai settori da 4 KB utilizzati nello standard Advanced Format, è stata la promozione dell'uso di strumenti per la creazione di partizioni sulle unità disco predisposti per i settori da 4 KB. I costruttori di sistemi, gli OEM, gli integratori, i professionisti IT e addirittura gli utenti finali che assemblano o configurano computer, devono accertarsi di rispettare le seguenti indicazioni:
Collaborando con i nostri clienti e colleghi del settore, continuiamo a garantire una transizione semplice ed efficiente ad Advanced Format con settori da 4 KB, che consente all'intero mercato dei sistemi di memorizzazione di usufruire dei potenziali vantaggi a lungo termine.
1 Il formato della suddivisione in settori si riferisce esclusivamente ai settori dei dati e non tiene conto del carico di lavoro associato ai dati servo e di altri tipi di inefficienze legate al layout dei settori.
2 Non tutte le implementazione dei settori a 4 KB raddoppiano esattamente il numero di byte ECC con il passaggio da 512 byte a 4 KB.
Perché lo storage è la base per nuove opportunità e un mondo migliore