Lo storage server rappresenta uno degli elementi fondamentali dell'infrastruttura IT di un'azienda perché è il componente sul quale vengono memorizzati documenti, database, applicazioni, backup, archivi e una quantità sempre maggiore di dati prodotti quotidianamente dai sistemi informatici. Progettare correttamente lo spazio di archiviazione non significa quindi semplicemente installare dischi con una determinata capacità, ma definire un'architettura in grado di garantire contemporaneamente spazio sufficiente, prestazioni adeguate, disponibilità dei dati, affidabilità e possibilità di espansione nel tempo.
La progettazione dello storage deve partire dall'analisi del tipo di dati che il server dovrà gestire. Un ambiente che conserva principalmente documenti Office e file condivisi presenta esigenze completamente diverse rispetto a un server che ospita database ad alto numero di transazioni, macchine virtuali, applicazioni aziendali o sistemi che devono eseguire continuamente operazioni di lettura e scrittura. La capacità complessiva dei dischi è quindi soltanto uno dei parametri da considerare.
Capacità dello storage: quanto spazio serve realmente
Il primo elemento da valutare è la quantità di dati che l'azienda deve conservare, ma anche la velocità con cui questi dati aumentano. Installare oggi uno storage dimensionato esclusivamente sulla quantità di dati attuale può creare problemi nel giro di pochi anni, soprattutto quando vengono conservati documenti, immagini, database, log applicativi, copie di sicurezza e versioni precedenti dei file.
Per progettare correttamente la capacità è necessario considerare non soltanto lo spazio attualmente utilizzato, ma anche la crescita prevista, la percentuale di spazio che deve rimanere libera, le esigenze di backup e l'eventuale presenza di snapshot o sistemi di replica. Uno storage che raggiunge livelli di occupazione troppo elevati può infatti perdere flessibilità e, in determinate architetture, anche prestazioni.
Per questo motivo il dimensionamento dovrebbe partire da una misurazione dello spazio utilizzato e da una stima della crescita annuale. Se un'azienda utilizza oggi 8 TB e produce mediamente 2 TB di nuovi dati ogni anno, progettare un sistema da 10 TB complessivi non significa aver risolto il problema dello storage, perché una parte della capacità deve essere riservata alla ridondanza e alla crescita futura.
HDD e SSD: scegliere il tipo di disco
La scelta tra HDD e SSD dipende principalmente dal tipo di carico di lavoro. Gli hard disk tradizionali utilizzano componenti meccanici e rimangono una soluzione interessante quando sono necessari grandi quantitativi di spazio a costi contenuti, soprattutto per dati che non richiedono prestazioni I/O particolarmente elevate.
Gli SSD utilizzano invece memoria flash e non hanno parti meccaniche in movimento. Questo permette di ottenere latenze significativamente inferiori e un numero molto maggiore di operazioni di input/output al secondo. In un server che gestisce database, macchine virtuali o applicazioni con numerose richieste contemporanee, la differenza può essere particolarmente significativa.
La scelta non deve però essere necessariamente tra un'architettura completamente HDD e una completamente SSD. In molti ambienti aziendali è possibile utilizzare configurazioni miste, destinando lo storage più veloce alle applicazioni che richiedono elevate prestazioni e utilizzando dischi di maggiore capacità per dati meno frequentemente utilizzati.
IOPS e throughput: la capacità non basta
Quando si valuta uno storage server è importante distinguere tra capacità, throughput e IOPS. La capacità indica quanti dati possono essere memorizzati, mentre il throughput rappresenta la quantità di dati che il sistema può trasferire nell'unità di tempo. Gli IOPS, invece, indicano quante operazioni di input/output possono essere gestite in un determinato intervallo di tempo.
Questi parametri diventano particolarmente importanti nei server che eseguono database o macchine virtuali. Un sistema può avere una capacità di archiviazione molto elevata ma risultare lento durante l'esecuzione di applicazioni che effettuano numerose operazioni casuali di lettura e scrittura.
Un database, per esempio, può eseguire migliaia di operazioni I/O di piccole dimensioni, mentre un sistema utilizzato per l'archiviazione di file video può essere maggiormente influenzato dal throughput sequenziale. La progettazione dello storage deve quindi essere collegata al comportamento reale delle applicazioni.
RAID: proteggere lo storage dal guasto di un disco
Uno degli elementi più importanti nella progettazione di uno storage server è il RAID, tecnologia che permette di combinare più dischi fisici per ottenere differenti livelli di ridondanza e prestazioni. RAID 1, per esempio, utilizza il mirroring e mantiene una copia dei dati su due dischi, mentre RAID 5 utilizza la parità distribuita e permette di tollerare il guasto di un disco. RAID 6 estende questa capacità permettendo di tollerare il guasto contemporaneo di due dischi.
RAID 10 combina invece mirroring e striping, offrendo un buon equilibrio tra prestazioni e ridondanza quando sono disponibili almeno quattro dischi. La scelta del livello RAID deve essere effettuata considerando capacità utilizzabile, numero di dischi, prestazioni richieste, tolleranza ai guasti e tempi di ricostruzione.
È importante però chiarire un concetto fondamentale: il RAID non è un sistema di backup. Se un file viene cancellato accidentalmente, modificato in modo errato o cifrato da un ransomware, il sistema RAID continuerà normalmente a replicare le modifiche sui dischi. La ridondanza protegge principalmente dalla perdita di disponibilità causata dal guasto hardware, mentre il backup serve a recuperare i dati in caso di cancellazione, corruzione o incidente.
Controller RAID e gestione dello storage
Nei server professionali può essere presente un controller RAID hardware oppure una soluzione software che gestisce direttamente l'organizzazione dei dischi. La scelta dipende dall'architettura del server, dal sistema operativo e dalle caratteristiche dell'infrastruttura.
Un controller RAID dedicato può includere cache, gestione della parità, monitoraggio dei dischi e procedure di ricostruzione dell'array. Nei sistemi moderni è comunque importante verificare anche la gestione della cache e le modalità di protezione dei dati presenti nella cache stessa, perché un'interruzione improvvisa dell'alimentazione durante un'operazione di scrittura può provocare inconsistenze se le informazioni non sono state gestite correttamente.
Per questo motivo lo storage server dovrebbe essere associato anche a un sistema UPS adeguato e a procedure di monitoraggio che permettano di individuare tempestivamente eventuali problemi hardware.
Storage server e macchine virtuali
La virtualizzazione aumenta ulteriormente l'importanza dello storage. Quando un server ospita più macchine virtuali, ogni sistema operativo virtualizzato genera attività di lettura e scrittura che confluiscono sullo stesso sottosistema di storage.
Un'infrastruttura composta da numerose macchine virtuali può quindi generare un carico I/O molto superiore rispetto a quello prodotto da un singolo server fisico. In questo scenario la semplice capacità dei dischi diventa meno importante rispetto alla latenza e agli IOPS disponibili.
Gli SSD possono offrire vantaggi significativi in questo tipo di ambiente, soprattutto quando vengono utilizzati per ospitare sistemi operativi e applicazioni delle macchine virtuali. La progettazione deve comunque considerare il numero di VM, il carico medio e di picco, la quantità di RAM disponibile e la tecnologia utilizzata per collegare lo storage al server.
Storage locale e storage condiviso
Un altro aspetto fondamentale riguarda la posizione fisica dello storage. In un'infrastruttura semplice i dischi possono essere installati direttamente all'interno del server. In ambienti più complessi può invece essere necessario utilizzare uno storage condiviso, come un NAS o una SAN.
Il NAS espone generalmente lo spazio di archiviazione attraverso protocolli di rete come SMB o NFS ed è particolarmente adatto alla condivisione dei file e alla gestione centralizzata dei dati. Una SAN è invece progettata per fornire storage a livello di blocco ai server e viene utilizzata frequentemente in ambienti virtualizzati e infrastrutture che richiedono prestazioni e gestione centralizzata dello storage.
La scelta tra storage locale, NAS e SAN dipende quindi dal tipo di applicazioni, dal numero di server, dalle prestazioni richieste e dal livello di disponibilità necessario.
Velocità della rete e storage
Quando lo storage viene utilizzato attraverso la rete, anche l'infrastruttura Ethernet diventa parte integrante delle prestazioni complessive. Un sistema di storage molto veloce collegato a una rete sottodimensionata non potrà esprimere pienamente le proprie capacità.
Per questo motivo è necessario valutare la velocità delle interfacce di rete, la capacità degli switch, il numero di connessioni simultanee e l'eventuale presenza di collegamenti ridondati. In ambienti con elevate esigenze di trasferimento dati possono essere utilizzate connessioni 10 GbE, 25 GbE o superiori, a seconda dell'architettura.
La velocità nominale della rete non rappresenta comunque da sola una garanzia di prestazioni. Latenza, congestione, protocollo utilizzato, configurazione degli switch e carico dello storage devono essere analizzati insieme.
Storage Tiering: utilizzare lo storage in modo efficiente
In infrastrutture di dimensioni maggiori può essere utile adottare una strategia di storage tiering, nella quale i dati vengono distribuiti su differenti livelli di archiviazione in base alle loro caratteristiche.
I dati utilizzati frequentemente possono essere mantenuti su SSD ad alte prestazioni, mentre informazioni consultate raramente possono essere conservate su dischi con maggiore capacità e costi inferiori. In questo modo è possibile utilizzare lo storage veloce dove realmente serve senza dover necessariamente acquistare grandi quantità di memoria flash per tutti i dati.
Il principio è particolarmente utile quando il volume complessivo delle informazioni è molto elevato ma solo una parte dei dati viene utilizzata frequentemente. La progettazione deve però prevedere meccanismi affidabili per determinare quali dati spostare e in quale momento.
Snapshot e versioning dei dati
Uno storage server moderno può supportare anche snapshot, cioè copie dello stato dei dati in un determinato momento. Le snapshot possono essere utili per recuperare rapidamente versioni precedenti dei file o ripristinare una situazione precedente a una modifica.
Anche in questo caso è importante non confondere snapshot e backup. Una snapshot che rimane sullo stesso sistema di storage non protegge necessariamente da un guasto grave dell'apparato, dalla distruzione fisica del server o da un attacco che comprometta l'intero sistema.
Le snapshot possono quindi rappresentare un ulteriore livello di protezione all'interno di una strategia più ampia che comprende backup locali, copie remote e, quando necessario, copie offline o immutabili.
Monitoraggio dello storage server
Una corretta progettazione dello storage deve includere anche il monitoraggio. Non è sufficiente installare i dischi e verificare che il server funzioni al momento della configurazione. Nel tempo è necessario controllare capacità, temperatura, stato dei dischi, errori I/O, latenze, utilizzo degli array RAID e crescita dello spazio occupato.
Le tecnologie SMART possono fornire informazioni utili sullo stato degli hard disk e degli SSD, mentre i sistemi di monitoraggio centralizzato possono generare alert quando vengono rilevati comportamenti anomali o condizioni che richiedono un intervento.
Un esempio tipico è l'aumento progressivo dello spazio occupato. Se un filesystem raggiunge il 90 o 95% della propria capacità, l'amministratore deve essere avvisato prima che lo spazio disponibile diventi insufficiente per le applicazioni.
Crescita futura e scalabilità dello storage
Un errore frequente nella progettazione dello storage consiste nel dimensionare il sistema esclusivamente sulle esigenze attuali. I dati aziendali tendono infatti ad aumentare nel tempo e la quantità di spazio necessaria può crescere rapidamente.
Per questo motivo è importante valutare fin dall'inizio la possibilità di aggiungere dischi, espandere gli array, collegare nuovi sistemi di storage oppure migrare verso infrastrutture più capienti. La scalabilità deve essere considerata sia dal punto di vista della capacità sia da quello delle prestazioni.
Un sistema che permette di aggiungere spazio ma non dispone di sufficiente capacità di I/O potrebbe risolvere il problema della capacità senza risolvere quello delle prestazioni. Allo stesso modo, aumentare il numero di dischi senza verificare i limiti del controller o della rete può creare nuovi colli di bottiglia.
Backup e disaster recovery dello storage
Lo storage aziendale deve essere inserito all'interno di una strategia complessiva di protezione dei dati. Un server con RAID, alimentazione ridondata e dischi professionali può essere molto affidabile, ma nessuna di queste tecnologie sostituisce un sistema di backup.
La strategia dovrebbe prevedere copie dei dati su sistemi differenti e, in base alla criticità delle informazioni, anche su infrastrutture geograficamente separate. In caso di guasto grave del server, incendio, furto, ransomware o errore umano, la disponibilità di una copia indipendente può fare la differenza tra un semplice ripristino e una perdita significativa di dati.
Anche il disaster recovery deve essere considerato durante la progettazione. Per i dati più importanti è necessario definire quanto tempo l'azienda può rimanere senza il servizio e quanti dati è accettabile perdere. Questi requisiti influenzano direttamente l'architettura dello storage e dei sistemi di backup.
Come progettare uno storage server aziendale
La progettazione di uno storage server deve quindi partire dalle applicazioni e dai dati, non dalla semplice scelta dei dischi. È necessario comprendere quanti dati devono essere conservati, quanto velocemente crescono, quale livello di prestazioni è richiesto, quanti utenti accederanno contemporaneamente alle informazioni e quale disponibilità deve essere garantita.
Successivamente devono essere valutati HDD e SSD, livello RAID, controller, interfacce di rete, capacità degli switch, eventuale utilizzo di NAS o SAN, sistemi di monitoraggio, backup, snapshot e possibilità di espansione. Solo mettendo insieme questi elementi è possibile progettare un sistema di storage realmente dimensionato sulle esigenze dell'azienda.
Uno storage server progettato correttamente non deve quindi essere semplicemente grande, ma deve essere affidabile, monitorabile, performante, ridondato e scalabile. L'obiettivo è garantire che i dati siano disponibili quando servono e che l'infrastruttura possa crescere senza richiedere una sostituzione completa del sistema dopo pochi anni.
In ALLIT possiamo supportare le aziende nell'analisi e nella progettazione dell'infrastruttura di storage, valutando capacità, prestazioni, RAID, server, NAS, SAN, sistemi di backup e possibilità di crescita futura. La progettazione viene effettuata considerando i carichi di lavoro reali e il ruolo che lo storage svolge nei processi aziendali, così da evitare sia infrastrutture sovradimensionate sia sistemi incapaci di sostenere la crescita dei dati nel tempo.

