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