Quando si valutano gli hard disk, alcune specifiche fondamentali come la capacità e la velocità di trasferimento sono solitamente i punti di confronto più ovvi. Tuttavia, un sistema NAS raramente sottopone un'unità al carico di lavoro costante e ininterrotto rappresentato da un picco di velocità di trasferimento sequenziale. In pratica, il funzionamento di un NAS prevede attività come backup, accesso ai file, gestione dei metadati, attività RAID e altre richieste concorrenti.
Pertanto, le prestazioni di un NAS non dipendono solo dall'hardware meccanico o dalle metriche prestazionali. L'efficienza con cui l'unità gestisce i carichi di lavoro simultanei può essere altrettanto importante, ed è qui che il firmware gioca un ruolo cruciale. Per capire il perché, è utile considerare cosa rappresentano effettivamente i valori di velocità di trasferimento indicati nelle specifiche.
Le prestazioni di picco raccontano solo una parte della storia.
La velocità di trasferimento sequenziale (STR) indicata per un disco rigido descrive una particolare condizione operativa: il movimento continuo dei dati tra settori adiacenti. Durante un trasferimento sequenziale prolungato, le testine di lettura/scrittura trascorrono relativamente poco tempo spostandosi tra diverse posizioni sul disco. Un sistema NAS raramente opera in queste condizioni per periodi prolungati. Quando arrivano diverse richieste, i trasferimenti continui vengono interrotti e le testine iniziano a spostarsi tra diverse aree del disco.
Su un sistema NAS a quattro alloggiamenti, durante l'orario di lavoro, i backup notturni potrebbero essere ancora in corso mentre gli utenti accedono ai file condivisi e il sistema operativo aggiorna i metadati del file system. Se un'unità è stata recentemente sostituita, il traffico generato dalla ricostruzione del RAID si aggiunge alla stessa coda di richieste. Nessuna di queste attività è particolarmente impegnativa di per sé, ma la sfida sta nel gestirle tutte simultaneamente.
Il risultato non è semplicemente una riduzione delle prestazioni, poiché ogni cambio di direzione interrompe il flusso di dati e richiede un ulteriore movimento della testina prima che la richiesta successiva possa essere elaborata. Con l'aumentare delle richieste, il trasferimento continuo dei dati si frammenta sempre più a causa di altre attività.
Non tutte le richieste possono attendere, sebbene ritardare una parte di un backup sequenziale per una frazione di secondo sia raramente percepibile. Quando un utente apre un documento, si aspetta una risposta immediata, mentre l'elaborazione dei metadati del file system e il traffico generato dalla ricostruzione RAID devono continuare in background. L'unità deve bilanciare le richieste di lettura e scrittura che differiscono per dimensioni, posizione e urgenza, anziché elaborarle rigorosamente nell'ordine in cui arrivano.
Il firmware ottimizza il comportamento dell'hardware.
Le testine di registrazione, il motore del mandrino e il supporto di memorizzazione definiscono i limiti meccanici di un disco rigido. Il firmware non può far funzionare questi componenti più velocemente, ma può determinarne l'efficienza di utilizzo controllando la risposta dell'unità alle diverse richieste, inclusa la gestione dei dati nella cache e l'organizzazione dei comandi prima dell'esecuzione.
Due unità prodotte con hardware simile possono quindi reagire in modo diverso allo stesso carico di lavoro su un NAS. La differenza non risiede nel meccanismo di registrazione in sé, bensì nel firmware che lo controlla.
Il carico di lavoro determina la risposta.
Su questo stesso NAS a quattro alloggiamenti, il backup notturno potrebbe continuare a scrivere dati quando un utente apre un documento memorizzato altrove nell'array di dischi. Il dispositivo potrebbe interrompere immediatamente il backup per gestire la richiesta di lettura, ma ciò aumenterebbe il movimento delle testine e interromperebbe il flusso continuo di scrittura. D'altra parte, ignorare la richiesta di lettura non è un'opzione, poiché l'utente si aspetta una risposta immediata. Pertanto, il firmware deve decidere come gestire queste richieste contrastanti prima che raggiungano il meccanismo di scrittura.
Questa decisione dipende da più fattori rispetto al semplice ordine di arrivo delle richieste. Una richiesta di lettura può richiedere una gestione diversa rispetto a un'operazione di scrittura sequenziale prolungata, mentre gli aggiornamenti dei metadati e il traffico generato dalle ricostruzioni RAID aggiungono ulteriori esigenze al sistema di storage. Man mano che il carico di lavoro varia, il firmware rivaluta continuamente la gestione delle richieste in arrivo prima che raggiungano il meccanismo di scrittura, determinando così come utilizzare la cache e come organizzare i comandi.
L'allocazione della cache dipende dal carico di lavoro.
Identificare il carico di lavoro è solo il primo passo. Una volta che il firmware ha determinato come gestire una richiesta, può applicare una politica di cache che rifletta le esigenze di tale attività, invece di trattare tutte le richieste allo stesso modo.
Un backup sequenziale e l'apertura di un documento da parte di un utente possono entrambi passare attraverso la stessa cache, ma non beneficiano della stessa strategia di allocazione. Riservare spazio nella cache per le scritture bufferizzate contribuisce a mantenere la continuità di un trasferimento sequenziale, mentre disporre di spazio nella cache per le richieste di lettura riduce il tempo di attesa necessario per recuperare i dati.
Applicare un'unica policy di cache a tutte le richieste può far sì che le scritture sequenziali con buffer e le richieste di lettura più piccole competano per le stesse risorse di cache al variare del carico di lavoro.
La pianificazione dei comandi implementa delle decisioni.
Il riconoscimento del carico di lavoro e l'allocazione appropriata della cache non determinano il momento in cui le richieste arrivano al supporto di memorizzazione. Il firmware deve anche decidere l'ordine in cui vengono eseguiti i comandi in sospeso. In un carico di lavoro NAS misto, questa decisione influenza la frequenza con cui le testine di lettura/scrittura si spostano tra le diverse posizioni del disco e il tempo impiegato per il trasferimento dei dati rispetto al tempo necessario per riposizionare il meccanismo di lettura/scrittura.
I principi descritti finora vengono implementati in modi diversi dai vari produttori di unità disco. L'approccio di Toshiba si concretizza nell'architettura del firmware NASLink™, in cui la consapevolezza del carico di lavoro, l'allocazione della cache e la pianificazione dei comandi funzionano come componenti di un unico processo decisionale (Figura 1).

Figura 1: Il firmware identifica innanzitutto il carico di lavoro prima di applicare l'allocazione della cache e la pianificazione dei comandi per ottenere prestazioni "prevedibili"
In NASLink™, il tipo di elaborazione riconosciuto influenza l'organizzazione dei comandi in sospeso. Le richieste di scrittura di piccole dimensioni vengono raggruppate in sequenze di scrittura continue più lunghe per ridurre i movimenti non necessari delle testine. Quando possibile, le richieste di lettura di piccole dimensioni vengono intervallate durante i periodi di inattività nelle operazioni di scrittura, mentre le attività in background, come la ricostruzione RAID o il controllo del disco, vengono regolate in modo da ridurre al minimo il loro impatto sull'accesso degli utenti.

Figura 2: NASLink™ riorganizza le richieste in sospeso raggruppando le operazioni di scrittura in trasferimenti sequenziali più lunghi, gestendo le operazioni di lettura più piccole a intervalli appropriati e gestendo separatamente l'attività RAID in background.
Le decisioni di pianificazione tengono conto anche di fattori che vanno oltre il comando stesso. Ad esempio, la lunghezza della coda, la continuità dei dati, le vibrazioni e la temperatura influenzano l'ordine in cui vengono eseguite le richieste.
Il firmware rimane dipendente dall'hardware.
Il firmware può identificare i carichi di lavoro, allocare la cache e organizzare la coda dei comandi, ma queste decisioni dipendono comunque dalle caratteristiche fisiche dell'unità. La tecnologia di registrazione determina come i dati vengono scritti sul supporto, la cache disponibile limita lo spazio di lavoro del firmware e un posizionamento preciso della testina rimane essenziale durante l'esecuzione dei comandi.
Ecco perché il firmware NAS viene sviluppato in combinazione con hardware progettato per il funzionamento continuo in ambienti multi-unità, anziché in isolamento. Sulle unità Toshiba N300, la tecnologia di registrazione magnetica convenzionale (CMR) fornisce le caratteristiche di registrazione sequenziale prevedibili su cui si basa la strategia del firmware, fino a 1 GB di cache fornisce la memoria di lavoro che NASLink™ alloca dinamicamente e i sensori di vibrazione rotazionale aiutano a mantenere un posizionamento preciso della testina quando le unità adiacenti generano vibrazioni all'interno del case.
Progettazione per carichi di lavoro misti:
la velocità sequenziale massima rimane una specifica importante, ma descrive solo una condizione operativa. Un NAS trascorre gran parte del suo ciclo di vita rispondendo a richieste simultanee che interrompono il trasferimento continuo dei dati e richiedono al firmware di prendere decisioni su come organizzare l'attività di archiviazione.
I carichi di lavoro sui sistemi NAS combinano trasferimenti sequenziali, letture casuali e attività di manutenzione in background, lasciando gran parte del comportamento dell'unità sotto il controllo del firmware. La consapevolezza del carico di lavoro, l'allocazione della cache e la pianificazione dei comandi influenzano il modo in cui il meccanismo di registrazione risponde a queste richieste simultanee, mentre l'hardware fornisce la piattaforma stabile su cui si basano queste decisioni. NASLink™ è un esempio di come questi principi ingegneristici vengano applicati a un'unità progettata specificamente per gli ambienti NAS.
Autore: Eun-Kyung Hong, responsabile prodotto HDD presso Toshiba Electronics Europe GmbH
