Blog

Datacenter

Triple Erasure Coding

29 mei 2017

“Hardware is sowieso belangrijker dan software. En disks zijn het allerbelangrijkst, want daar staan de data op.” beweerde de stagiair assertief. Dat data op disks staan is feitelijk correct, toch wordt hardware steeds minder belangrijk. Sterker nog, van alle hardware zijn disks het minst belangrijk. Zelfs als er drie tegelijk stuk gaan, blijven data gewoon beschikbaar en loopt de operationele continuïteit geen gevaar. Hoe dat kan? Het korte antwoord is Triple Erasure Coding. In deze blog ga ik er graag iets dieper op in.

Frank Teegelbeckers door Frank Teegelbeckers

Vroeger, toen mensen nog offline werkten en informatie uitwisselden op floppy disks via sneakernet, betekende een PC met een defecte harde schijf zonder backup dat data definitief kwijt waren. Schijven waren toen inderdaad nog één van de belangrijkste onderdelen. Sinds mensen vooral online werken en data niet meer lokaal, maar via netwerken bewaren op storagesystemen met meerdere disks, is het opslaan van gegevens steeds fouttoleranter geworden. Online datastorage struikelde in de vorige eeuw nog over twee defecte disks, sinds 2003 pas bij drie en sinds kort bij niet minder dan vier. De technologie die dit mogelijk maakt heet RAID (Redundant Array of Independent Disks), specifieker en in chronologische volgorde, RAID-4, RAID-DP en RAID-TEC. RAID reconstrueert data van een defecte disk door binaire XOR-calculaties toe te passen op de overgebleven gezonde disks. De werking van RAID kan ook zonder formele logica, hogere wiskunde en al te veel technisch detail gemakkelijk worden uitgelegd met decimale berekeningen.

De werking van RAID-4

Conceptueel gezien werkt RAID-4 als volgt. Terwijl gegevens worden bewaard op datadisks, berekent RAID-4 de zogenaamde pariteit, die in het voorbeeld  wordt bewaard op een vijfde disk.

raid 4
Gaat er één disk stuk, bijvoorbeeld de middelste disk hierboven, dan zijn de overgebleven pariteit en datadisks voldoende om foutloos te bepalen welke data er moeten worden gereconstrueerd op een zesde, niet afgebeelde reserve disk  (3+1+?+3=9 => ?=2). Gaan er twee of meer stuk, dan zijn de overgebleven disks ontoereikend voor data reconstructie.

Dubbele pariteitsberekening

RAID-DP lost dit op met dubbele pariteitsberekening, de eerste horizontaal zoals hierboven, de tweede diagonaal.

Dubbele pariteitsberekening
Vallen tegelijkertijd bijvoorbeeld de eerste twee linkerdisks uit, dan zijn de data in de horizontale streep op de overgebleven disks zoals gezegd onvoldoende om de verloren data te reconstrueren. De diagonale lijn daarentegen is toereikend om data van één van beide defecte disks in de bovenste streep foutloos te reconstrueren (?+2+2+7=12 => ?=1). Het resultaat is nog maar één ontbrekende waarde in de bovenste streep, die vervolgens weer gemakkelijk met RAID-4 gereconstrueerd kan worden (?+1+2+3=9 => ?=3). Zijn er drie of meer defecte disks, dan zijn diagonale en horizontale pariteit niet genoeg om de verloren data foutloos te reconstrueren.

Triple Erasure Coding

RAID-TEC lost dit op met anti-diagonale pariteit. De mathematische algoritmes en technische uitwerking ervan zijn nogal complex.

RAID-TEC

RAID-TEC
Het principe is globaal hetzelfde. Eerst worden met anti-diagonale pariteit de data van één van de drie defecte disks gereconstrueerd, vervolgens met diagonale pariteit data van de tweede en daarna met horizontale pariteit data van de derde disk.

Anti-diagonale pariteit
Met anti-diagonale pariteit in de oranje lijn kan gereconstrueerd worden dat de vierde datadisk van links de waarde twee had (3+7+?+9+12=33 => ? = 2). Daarna kan het systeem weer terugvallen op diagonale respectievelijk horizontale pariteit om verloren data van de derde en eerste datadisk te herstellen.

Toegevoegde waarde van RAID-TEC

Disks worden steeds groter, maar niet proportioneel beter in termen van Bit Error Rate. Logischerwijs neemt de kans op een defecte disk daardoor toe. De kans op drie defecte disks gelijktijdig is echter nog steeds astronomisch klein. Meldt een systeem toch zoveel uitval, dan is doorgaans de oorzaak niet disks maar de disk shelf. Om het risico in te perken dat een haperende shelf IO naar meerdere disks gelijktijdig verhindert, kan in theorie een RAID-groep gemaakt worden van één disk per shelf, bijvoorbeeld zes data en twee pariteitdisks. De data:pariteit ratio in zo’n RAID-DP-groep van acht disks is 3:1. Wanneer daarentegen twee disks per shelf worden geïnstalleerd en RAID-TEC wordt gebruikt, dan is storage niet enkel fouttoleranter, maar ook beduidend efficiënter. Uitgaande van hetzelfde aantal van acht shelves en dus een RAID-groep van zestien in plaats van acht disks (dertien data en drie pariteit) levert RAID-TEC dan een data:pariteit ratio op van 4,3:1.

RAID-TEC vergt extra pariteitsberekeningen. Deze overhead op zichzelf vermindert performance. Daar staan minstens drie andere factoren tegenover. Ten eerste kost deze overhead enkel performance bij het bewaren van data, niet bij het openen van bestanden. Ten tweede vergt RAID-TEC bij data-reconstructie drieëntwintig procent minder XOR-calculaties dan vergelijkbare technologieën als STAR. Ten derde faciliteert Triple Erasure Coding grotere RAID-groepen. Het opslaan van data kan dan gelijktijdig door meerdere disks en dus sneller worden afgehandeld.

Samengevat, wilt u minder verstoringen door haperende disks, minder risico op complicaties tijdens reconstructie in RAID-DP, meer efficiëntie en geen onnodige performance degradatie? Dan is RAID-TEC een uitstekende optie.

Geïnteresseerd?

Frank Teegelbeckers
Neem contact op met onze specialist Frank Teegelbeckers

Frank Teegelbeckers is tien jaar Datacenter Engineer bij Telindus Technical Operations. Daarvoor was hij drie jaar werkzaam als Storage Engineer bij NetApp en vijf jaar als Server en Netwerk Engineer bij HP. Frank kenmerkt zich door zijn pragmatische benadering van acute verstoringen en door zijn systematische aanpak van terugkerende technisch-operationele problemen. Hij heeft zich de laatste jaren gespecialiseerd in performance optimalisatie, virtualisatie en software defined storage. Frank is geboren en getogen in een Limburgs dorpje, getrouwd met een Moskovita, vader van een puberende dochter, en houdt verder van reizen, tuinieren en barbecueën met vrienden en familie.

geen reacties
Plaats een reactie