mercoledì 4 giugno 2014

La Protezione dei Dati in XtremIO - XtremIO Data Protection (XDP)



Nel presente articolo parleremo della protezione dei dati in XtremIO (XtremIO Data Protection o XDP) descrivendo anche i vantaggi di questo particolare e unico schema di protezione raid.

XDP è un algoritmo brevettato di protezione dei dati sugli SSD (Solid State Disks) che protegge contro i guasti nei flash drive e, come vedrete, XDP ha diverse proprietà esclusive che permettono a XtremIO di  fare alcune cose piuttosto sofisticate.



XDP è il terzo dei quattro pilastri tecnologici unici di XtremIO. XDP offre la capacità di massimizzare lo spazio utilizzabile nell’array, fornisce una superiore durata dei supporti flash e permette di ottenere prestazioni superiori a qualsiasi altro tipo di algoritmo RAID. Il presente articolo descrive a grandi linee quali sono stati gli obiettivi di progettazione di questo schema di protezione facendo prima un rapido aggiornamento sulle attuali tecnologie RAID in modo da poter capire meglio  come funziona XDP.


 

Nella figura seguente sono elencati i cinque obiettivi chiave di progettazione per la creazione di XDP.


Uno di questi obiettivi è, quindi, quello di  offrire il massimo livello di protezione mantenendo al massimo la capacità utilizzabile nello storage. Un secondo obiettivo è  quello di non avere dischi “hot spare” nel sistema. Perché è importante non avere “hot spare”?. Semplicemente perché i clienti acquistano l’array con tutta la capacità e quindi l’obiettivo è stato quello di sviluppare uno schema di protezione in grado conservare i loro investimenti.

Un altro aspetto che è stato considerato con XDP è offrire prestazioni superiori rispetto ad altri algoritmi RAID. Questo può essere realizzato perché XtremIO XDP ha un basso “overhead” rispetto ai sistemi RAID tradizionali. XDP ha prestazioni migliori durante le normali operazioni ma anche in  occasione di eventi di guasti ai dischi SSD e conseguente ricostruzione dei dati. Con XDP, infine, EMC XtremIO ha anche migliorato la durata dei dischi flash rispetto ad algoritmi RAID tradizionali.

Come è  stato realizzato tutto questo? Come detto in precedenza  XtremIO XDP ha un basso overhead, circa l’8% paragonato ad un 50% di overhead di uno schema R1 o il 25% di uno schema R5. Questo significa che complessivamente gli SSD vengono molto meno acceduti da quelli che utilizzano un tipo di RAID tradizionale. Invece di dedicare dei dischi di parità che implicano un overhead del 50% nel caso del R1 o del 25% nel caso di un R5, in XtremIO esiste il concetto di “hot-space”; sui 25 dischi che compongono un Xbrick, lo spazio pari a due dischi è dedicato alla parità, questo significa un overhead di solo l’8% (23/25).



E 'anche importante notare che con XtremIO non vi è alcuna necessità di fare particolari set-up o messa a punto per lo schema di protezione dei dati.
Negli array tradizionali è necessario definire una protezione specifica per i vari gruppi di raid. In XtremIO XDP non bisogna fare nulla di tutto ciò. XPD è automaticamente “on” per l'intero array.

Cominciamo con un esempio di ciò che accade su un di flash array tradizionale, utilizzando la tecnologia RAID tradizionale, da quando l’array  è  vuoto e comincia a riempirsi.


In uno schema RAID tradizionale possiamo iniziare con degli spazi vuoti, in questo caso l'idea è quella di scrivere righe o strisce piene (“full stripes”) una dopo l'altra fino a quando l’array diventa relativamente pieno. Poi si presenta un problema perché non ci sono più strisce vuote dove scrivere. A questo punto, tutti gli array iniziano a sovrascrivere i dati esistenti. Le zone rosse della figura seguente mostrano dove i dati vengono scartati per creare nuovo spazio. Questo è dovuto al fatto che non c’è più spazio vuoto per scrivere strisce piene e quindi per ottimizzare le operazioni di scrittura.  Tutti gli schemi RAID tradizionali e tutti gli storage flash utilizzano questo processo chiamato “garbage collection”. 



Il processo di “garbage collection” consuma molte risorse di back-end per le letture / scritture. In sostanza nel frattempo è difficile servire contemporaneamente gli iops di FE. La “garbage collection” causa non solo la perdita di prestazioni, ma implica un pesante utilizzo delle unità flash diminuendo la loro durata.



XDP invece è stato progettato in modo unico per gestire questa situazione.  Gli algoritmi RAID tradizionali sono stati progettati per sequenzializzare le scritture verso i dischi creando prima dei “full stripes” in modo da ottimizzare il processo di scrittura. In XtremIO invece, l’algoritmo è stato ottimizzato per scrivere strisce parziali (“partial stripes”) permettendo di scrivere i dati ovunque ci sia dello spazio disponibile.


 
XtremIO XDP non ha bisogno di spostare i dati dentro l’array per creare nuovo spazio vuoto, i dati possono essere scritti utilizzando gli spazi esistenti senza muovere nulla, evitando la “garbage collection” e ottimizando in questo modo le prestazioni. Questo particolare disegno rappresenta un enorme vantaggio perché permette a XtremIO di mantenere un comportamento consistente in grado di funzionare praticamente allo stesso modo da quanto l’array è vuoto fino a quando non c’è più spazio disponibile.
È importante sottolineare che grazie a questo disegno che permette di evitare la “garbage collection” e i suoi effetti collaterali associati, XtremIO XDP non consuma cicli extra di scrittura / lettura sui dischi flash, incrementando quindi la durata degli SSDs.




Quindi, in realtà ciò che abbiamo con XDP, è una combinazione dei migliori benefici di ogni algoritmo raid preesistente, R1, R5, R6, tutti messi insieme in modo da ottenere le prestazioni elevate del R1, buon utilizzo della capacità del  R5 e la protezione ottimale del R6, tutto ciò senza il bisogno di alcuna configurazione particolare da parte degli utenti.

E 'interessante notare che non c’è alcun “hot spare” nel sistema e che gli SSD possono eseguire il “fail-in-place”.  Appena XtremIO rileva uno SSD non funzionante, inizia il processo automatico di ricostruzione senza l'intervento dell'utente. In XtremIO XDP, la ricostruzione è molto veloce perché solo lo spazio utilizzato sul disco viene copiato. In XDP si parla di “hot space”, infatti su ogni disco dell’array esiste un piccolo spazio lasciato libero. Durante la ricostruzione XDP sfrutta questo spazio su tutti i dischi velocizzando enormemente il processo. Questo disegno permette inoltre a XDP di tollerare diversi guasti SSD, mentre ci sia spazio libero sull’array il processo di ricostruzione può essere effettuato senza nessuna interruzione del servizio verso gli utenti e senza nessun calo di prestazioni.





I vantaggi di avere un algoritmo proprietario per i dischi flash permette a XtremIO di mantenere prestazioni quasi identiche anche se l’array è pieno.  Nella figura sopra, quello che potete vedere in alto  è un cluster di XtremIO parzialmente pieno e successivamente un altro cluster pieno al 100%; circa lo stesso carico di lavoro su entrambi. Notate che tutte e due performano in modo pressochè  identico. Questo è qualcosa che nessun altro prodotto sul mercato è in grado di fare. Altri fornitori raccomandano di rimanere con un utilizzo dell’array inferiore all'80% oppure lasciare l’array non utilizzato durante la notte per consentire l’esecuzione del processo di “garbage collection”.
Il fatto che XtremIO mantenga sia le performance che la latenza a questo livello di utilizzo della capacità è davvero notevole. Provate a farlo con qualsiasi altro array.

Per riassumere, abbiamo visto come XDP consente a XtremIO di:

  • ·         Essere ottimizzato per gli aggiornamenti di “partial stripes”
  • ·         Offrire sempre prestazioni consistenti fino a quando l’array  è pieno al 100%
  • ·         Tollerare una serie di failure di dischi  SSD mantenendo sempre la piena ridondanza




Agostino Brunamontini
Advisory Systems Engineer





Nessun commento:

Posta un commento