high end, low end e midrange

L’industria divide lo storage in tre grandi categorie: low end, midrange e high end. Per quanto questo articolo sia focalizzato sulla categoria midrange (la più importante per la piccola/media azienda italiana) è giusto fare un minimo di chiarezza sul quello che propone il mercato.

La differenziazione che l’industria fa di questi prodotti è principalmente dovuta al posizionamento che hanno sul mercato, cercherò quindi di riassumerla nel modo più veloce possibile: I sistemi high-end sono quelli più complessi e normalmente, oltre ad avere le funzionalità più sofisticate, sono anche quelli più sicuri in termini di protezione dei dati, capacità di recovery in caso di disastro, prestazioni (anche con carichi di lavoro molto diversi fra loro) e scalabilità verticale. L’architettura di questi sistemi è molto complessa, spesso composta da diversi controller, una grande cache condivisa e un backend molto sofisticato che portano degli up-time elevatissimi.

Purtroppo l’altra faccia di tutta questa complessità si traduce in costi molto elevati sia di acquisto che di gestione non affrontabili da molte aziende: lo storage high end, infatti, trova posto prima di tutto nella gestione dei dati più critici per la grande impresa, nelle telco o negli ambienti finanziari.

Lo storage Midrange ed entry level (low end) ha caratteristiche ed architetture comuni: spesso la differenza è dovuta solo alla velocità e la capacità di espansione. Le soluzioni di questo tipo hanno costi decisamente più contenuti dei precedenti e garantiscono comunque la cosa più importante: la protezione dei dati. Infatti, fino al recente passato, gli storage midrange di vecchia generazione avevano funzionalità molto limitate (anche se ora le cose stanno cambiando radicalmente!).

Sempre più spesso, anche i grossi clienti cercano di contenere i costi affiancando questo tipo di soluzioni a quelle di classe superiore, utilizzandole poi come storage di secondo livello per gli ambienti relativamente meno critici.

architettura di base di uno storage midrange

L’architettura di uno storage midrange è abbastanza semplice, nella maggior parte dei casi si parla di due controller con una CPU a testa (multicore nelle ultime generazioni) e sempre più di rado un chip dedicato al calcolo della parità RAID. La tendenza del mercato è quello di spostarsi sempre di più su architetture molto standard usando componentistica identica a quella dei server x86 (CPU, bus PCI, RAM DDR, ecc), sempre più spesso i controller sono dei veri e propri server x86! Questa tendenza porta grandi vantaggi in termini di costi ma anche di prestazioni.

i controller

Il controller, al contrario dei sistemi di fascia alta, si occupa sia delle operazioni di IO che di calcolare la parità limitando spesso la tipologia di RAID che l’utente può scegliere per organizzare i RAID group del suo array. I due controller possono essere di due tipi: Active/Passive o Active/Active, la seconda è ovviamente preferibile per poter sfruttare al massimo le perfomance teoriche fornite dal sistema bilanciando il carico al meglio.

Lo svantaggio palese di avere due controller è che se per un qualsiasi motivo (un fail o una attività programmata) si ferma un controller si perde automaticamente il 50% della potenza di calcolo e di IO e, quasi sicuramente, la consistenza della cache in scrittura (che viene automaticamente disabilitata). Quindi, anche se i produttori dichiarano che il sistema è teoricamente in grado di effettuare qualsiasi tipo di attività a caldo, nella pratica questo è vero solo parzialmente.

la cache

Nella maggior parte dei casi la cache di un sistema midrange è abbastanza piccola se confrontata con i sistemi tier 1. Un array midrange, può ospitare al massimo poche decine di GB di cache e, di solito, una piccola parte di questa è abilitata come cache di scrittura. In molti storage, soprattutto quelli di vecchia generazione, la cache viene anche usata come memoria di sistema ed è facile quindi vederla fortemente limitata una volta abilitate alcune funzioni software.Inoltre, la coerenza della cache (necessaria in caso di fail di uno dei due controller), viene mantenuta utilizzando un meccanismo di duplicazione dei dati fra i due controller che ne limita parzialmente la prestazioni globali del sistema.

backend

Nel recente passato c’era un solo protocollo di frontend e backend FC ma le cose stanno cambiando velocemente. In particolare riguardo al backend c’era un problema abbastanza sentito di poter “mischiare” sugli stessi canali dischi di tipo diverso (es.: FC e SATA) in termini di tempi di risposta e throughput, problema che si è amplificato con l’introduzione dei dichi SSD. Tutti i vendor sono passati negli ultimi due anni ad avere un backend di tipo SAS: questo protocollo permette di ottenere sistemi più scalabili, affidabili e prestazionali soprattutto grazie alla diversa topologia di connessione dei dischi.

SAN o NAS? unified

Riguardo al frontend le cose sono un po più complicate. Anche qui, una volta era solo FC “affiancato” poi a protocolli basati su ethernet (iSCSI e NAS: Network Attached Storage) e le porte/protocolli sul frontend si sono moltiplicate: FC + ethernet come mezzi trasmissivi e iSCSI, FC, NFS, CIFS come protocolli di comunicazione. In realtà, dopo un periodo molto lungo di diatribe sul “cosa è meglio per fare cosa”, ormai sono tutti convinti che il migliore approccio è quello dello storage unificato: quindi un oggetto capace di fornire tutti i protocolli, magari abilitandoli attraverso delle semplici licenze software e/o opzioni hardware.

Il futuro è comunque già scritto ed è una ulteriore unificazione che vedrà l’eliminazione del protocollo FC su fibra a fronte dell’adozione da parte dei vendor di FCoE (FC over Ethernet).

le funzionalità

I primi array di fascia media sul mercato erano degli oggetti abbastanza semplici. Permettevano di organizzare i dischi fisici in gruppi (RAID groups/sets) molto rigidi su cui venivano divisi i dati e le informazioni di parità necessarie in caso di fail. Nelle diverse generazioni che si sono susseguite gli array hanno iniziato ad avere funzionalità sempre più sofisticate a supporto della gestione del dato (snapshot, repliche, cloni, ecc.). Alcuni sistemi di nuova generazione hanno anche perso il concetto di RAID group ed hanno introdotto uno strato di virtualizzazione radicale della componente fisica del sistema. In certi casi, alcune di queste funzionalità innovative, hanno permesso di ottenere risultati strabilianti anche se paragonati con i sistemi enterprise di classe superiore.

la scalabilità

Un sistema midrange ha una scalabilità limitata, spesso non tanto come numero di dischi, ma come capacità di connessione e prestazioni. Il limite dei sistemi midrange non è quasi mai in TB ma nella capacità di dare una perfromance lineare in funzione dell’aumento di dischi a disposizione. Oltre ad un certo limite, spesso molto più basso del limite fisico supportato, è più conveniente aggiungere un secondo sistema piuttosto che rischiare, ance se poi aumentano i costi di manutenzione e gestione. Esistono alcune soluzioni (scale-out) che migliorano la potenza di calcolo con l’aumentare dei dischi ma poi, per problemi di architettura, rimangono sempre limitate nella crescita.

la semplicità d’uso

Un fattore di successo dei sistemi midrange è la facilità d’uso: l’architettura semplice e il fatto che non sono nati ai tempi dei mainframe (al contrario di quelli high-end) ha sempre prodotto interfacce d’uso relativamente semplici da usare. Soprattutto negli ultimi anni, con l’ausilio di GUI molto sofisticate, amministrare lo storage è diventato molto più semplice che in passato diminuendo sensibilmente i costi di gestione.

la miglior scelta per la virtualizzazione?

Gli ambienti operativi delle ultime generazioni (mi riferisco in particolare alle infrastrutture virtualizzate) hanno un gran feeling con gli storage midrange, principalmente per due motivi. Il primo è di carattere puramente opportunistico: all’inizio, le infrastrutture virtualizzate, erano praticamente ambienti di sviluppo e test e gli fu assegnato uno storage meno pregiato di quello di produzione. Poi le cose sono cambiate ma gli utenti si erano già resi conto che i sistemi midrange erano “good enough” ed hanno continuato ad investire in quella direzione! Secondo, i produttori di hypervisor (e sistemi operativi) hanno lavorato su tutta una serie di funzionalità software molto sofisticate portando molta “intelligenza” storage lato host, eliminando di fatto la necessità di molte funzionalità normalmente presenti su storage di classe differente (es. Storage vMotion che permette di spostare VM da uno storage all’altro per fare manutenzione).

il futuro

Lo spazio degli storage midrange si allargherà sempre di più. Le funzionalità degli storage di ultima generazione sono molto sofisticate e molto competitive, in alcuni casi superiori, a quelle di storage sensibilmente più costosi. Molti vendor stanno anche promuovendo delle soluzioni che permettono di associare più sistemi in un cluster distribuendo il carico e i rischi di fail come avviene oggi con il DRS nei cluster VMware. I costi bassi, la semplicità d’uso, i meccanismi di automazione e l’integrazione (in alcuni casi radicale) con le piattaforme di virtualizzazione ne fanno la soluzione ideale anche per i datacenter più sofisticati e per il cloud computing.