RAID uitleg (NL)
RAID CONFIGURATIES - WELKE ZIJN ER EN WAT ZIJN DE VERSCHILLEN
Een RAID* (Redundant Array of Independent Disks) configuratie wordt toegepast bij servers die veel data op moeten slaan. De data op deze servers moet over het algemeen snel bereikbaar en veilig zijn.
Een RAID-configuratie is niets meer dan de wijze waarop je de harde schijven in een server met elkaar samen laat werken. Op een normale computer, zoals je die thuis waarschijnlijk hebt, wordt iedere harde schijf gezien als een afzonderlijke schijf met een eigen naam. Denk hierbij bijvoorbeeld aan de C, D en E-schijf. Een controller stuurt de informatie naar een van de aangegeven schijven en vervolgens wordt de data naar de schijf gestuurd. Alle data staat vervolgens alleen op die schijf en nergens anders.
* RAID werd vroeger 'Redundant array of inexpensive disks' genoemd. Harde schijven waren vroeger erg duur en RAID is een oplossing waarbij meerdere (goedkope) schijven samen kunnen werken.
Bij RAID worden de harde schijven in een server zo geconfigureerd dat deze samen werken. De combinatie van verschillende schijven wordt ook wel een 'array of disks' genoemd. Iedere array wordt door de PC gezien als een enkele schijf. In werkelijkheid is het zo dat een array bestaat uit diverse harde schijven. Het combineren van de schijven heeft als doel om de snelheid te vergroten of de kans op dataverlies (fout correctie) te verkleinen of beide.
Er zijn verschillende RAID configuraties met ieder eigen voordelen en nadelen. De keuze voor een RAID configuratie hang af van de doelen die jij wilt bereiken. Zo kan het belang bijvoorbeeld liggen op snelheid, opslagruimte, foutcorrectie of kosten. Deze verschillende RAID configuraties worden aangeduid met diverse nummers. De rest van dit blog richt zich op deze diverse soorten RAID configuraties te beginnen met RAID 0.
RAID 0 - DISK STRIPING
Bij RAID 0 schrijf je de data op minimaal 2 schijven. Als er bijvoorbeeld een foto van 1 MB op een RAID 0 set gezet wordt dan wordt tegelijkertijd de helft van de foto op schijf 1 gezet en de andere helft op schijf 2. Het proces van het tegelijkertijd schrijven en lezen op 2 schijven wordt ook wel striping genoemd. Dit betekent dat dit ongeveer 2 keer zo snel overgezet kan worden ten opzichte van een enkele schijf. Het nadeel van het verdelen over 2 schijven is dat wanneer 1 schijf defect is, alle data verloren is.
- Met deze methode kun je snel lezen en schrijven van en op de schijf.
- Als één van de schijven faalt, is alle data verloren. Dus geen fout correctie.
- Geen redundantie, de volledige ruimte op de schijven kan gebruikt worden.
Alleen gebruiken als de data niet van groot belang is maar snelheid en kosten juist wél van groot belang zijn.
RAID 1 - MIRRORING
Bij RAID 1 wordt de data gedupliceerd (mirroring) op een 2e schijf. Op het moment dat je een bestand van 1MB opslaat, word deze op beide schijven weggeschreven. Er is bij RAID 1 dus weinig sprake van een verbetering in de snelheid, maar wel in de veiligheid. RAID 1 kan een fractie sneller zijn met het lezen van bestanden. De schijf die het eerste de opgevraagde data bereikt zal de data lezen. Dit verschil in snelheid is echter niet heel groot. Wanneer bij een RAID1 set een schijf uitvalt, staat de data nog op de andere schijf en kan je technisch gezien gewoon doorwerken. Een nadeel van RAID 1 is dat maar de helft van de totale ruimte beschikbaar is om data op te slaan, dezelfde data staat ten slotte op beide schijven.
-De data wordt gedupliceerd op een 2e schijf.
-Er is hier wel sprake van redundantie. Als één van beide schijven uitvalt, kan de data altijd gelezen worden van, of overgeschreven naar, de andere schijf.
-Niet de snelste oplossing.
Gebruiken als kosten en veiligheid de hoogste prioriteit hebben.
RAID 10 - NESTED RAID
RAID 10 is eigenlijk een hybride combinatie tussen RAID 1 en RAID 0. Je combineert de snelheid van striping met de veiligheid van mirroring. Dit is de veiligste en snelste methode maar ook de duurste. Het is een dure methode omdat je gebruikt maakt van RAID 1, dus voor iedere 100 GB aan opslagruimte heb je ook 100 GB aan mirror ruimte nodig, in combinatie met RAID 0 waardoor je veel schijven nodig hebt (de 200GB mirror dient ook weer gestriped te worden naar de andere mirror, resulaat 400 GB totaal). Het werkt zo: De data wordt parallel geschreven naar een RAID 1 set (1e mirror), vervolgens wordt het weer verdeeld weggeschreven naar een 2e mirror (RAID 0).
De 2 RAID 1 sets vormen een striped set (RAID 0). Zo zijn er nog veel meer combinaties mogelijk maar de kosten worden vaak steeds hoger. Veel controllers kunnen bijvoorbeeld nog net RAID 10 aan maar kunnen andere combinaties vaak niet aan. Het combineren van RAID-sets wordt overigens Nested RAID of Hybrid RAID genoemd.
- Deze methode geeft de beste resultaten als het gaat om performance.
- De recovery tijd tijdens een disk failure is vele malen sneller dan de andere methodes
- Er mogen in een RAID 10 set per mirror 1 schijf falen. Dus van 4 disks in RAID10 kunnen 2 schijven falen.
- Duurste oplossing omdat de minimale setup 4 schijven bedraagt waarvan je netto de helft aan opslag overhoudt.
RAID 2 - STRIPING MET HECC
Bij deze RAID-set wordt gebruikt gemaakt van bit-level striping tussen alle schijven in de array. RAID 2 maakt naast striping gebruik van Hamming Error CorrectCode. Vroeger hadden harde schijven geen eigen fout correctie ten opzichte van alle moderne schijven. De Hamming code is zeer gecompliceerd en vaak zijn er meerdere schijven nodig om deze code alleen al op te slaan. Deze RAID-set wordt mede hierdoor (bijna) niet meer gebruikt.
RAID 3 - BIT STRIPING WITH PARITY
Deze RAID-set lijkt veel op RAID 2 met als verschil er 1 schijf gebruikt wordt voor het opslaan van de berekende pariteit*. Doordat de pariteit continue wordt berekend, is het mogelijk om na het falen te berekenen wat de verloren data had moeten zijn. Door deze vorm van pariteit is tegelijkertijd lezen en schrijven vaak wel een probleem bij een RAID 3 set. Raid 3 wordt vooral gebruikt door bedrijven waarbij opslag een hoge prioriteit heeft.
* Pariteit is een techniek voor het herstellen van data. Pariteit is eigenlijk herstel informatie. Als in een RAID set pariteit wordt gebruikt dan wordt er naar 1 of meer schijven pariteitsdata weggeschreven. Wanneer er 1 schijf faalt in het array dan zal de pariteitsdata worden gebruikt om de verloren data te corrigeren en hiermee de volledige data te herstellen. Dus als je 4 schijven hebt met ieder 500 GB, heb je in totaal ongeveer 1 TB ruimte tot je beschikking voor data. De resterende 500 GB wordt gebruikt voor pariteitsdata.
RAID 4 - BLOCK STRIPING WITH PARITY
Het verschil tussen RAID 4 en RAID 3 is de manier van striping. Waar RAID 3 'striped' per bit, striped RAID 4 per blok. Een blok is vaak 32 of 64 KB groot. Hierdoor kan je met een RAID 4 set ten opzichte van een RAID 3 set beter tegelijkertijd lezen en schrijven. RAID 4 wordt tegenwoordig, net als RAID 2 en 3, niet veel meer gebruikt omdat de technieken steeds beter worden.
RAID 5 - STRIPING WITH DIVIDED PARITY
De techniek die gebruikt wordt bij een RAID 5 set is vergelijkbaar aan die van een RAID 4 set. Er is echter een heel belangrijk verschil. Waar er in een RAID 4 set, 1 schijf wordt gebruikt voor de pariteit, worden de pariteitsblokken in een RAID 5 set verdeeld over alle schijven in de array. Omdat de blokken nu tegelijkertijd te lezen/beschrijven zijn gaat het lezen/beschrijven veel sneller. RAID 5 is dus eigenlijk RAID 0 in combinatie met de pariteit-data voor de veiligheid. Het is een combinatie van snelheid en veiligheid. Je snapt waarschijnlijk wel dat dit één van de veelgebruikte RAID-sets is in de huidige netwerkomgevingen. RAID 5 wordt echter niet door alle controllers ondersteund, maar als je je goed laat adviseren, zal dit geen problemen veroorzaken. Er zijn minimaal 3 harde schijven nodig om een RAID 5 set te maken.
-Deze methode geeft de meeste ruimte met de minste hoeveelheid schijven.
-De veiligheid is even groot als bij RAID 1 alleen is de performance beter.
-Er mag maar 1 schijf falen in het gehele array.
-Array is qua performance niet aanbevolen voor Database intensieve applicaties.
-Wanneer 1 schijf faalt werkt het RAID 5 array zeer traag.
RAID 6 - STRIPING WITH DOUBLE PARITY
RAID 6 is bijna gelijk aan RAID 5 met als verschil dat er twee pariteitsblokken per schrijf aanwezig zijn. Dit maakt voor de snelheid van het lezen en schrijven weinig uit, maar je kunt bij het uitvallen van 1 schijf wel sneller herstellen. Het opbouwen van de pariteitsdata kan gewoon doorgaan terwijl het systeem draait. Deze RAID-set is nooit heel goed aangeslagen. Een reden hiervoor kan zijn dat er een extra schijf aangeschaft moet worden omdat er meer ruimte beschikbaar moet zijn voor de pariteitsblokken.
JBOD - JUST A BUNCH OF DISKS
Just a Bunch of Disks, zoals de naam al doet vermoeden is dit een techniek waarbij er verschillende schijven aan elkaar gekoppeld worden. In tegenstelling tot RAID-configuraties werken de harde schijven niet samen en hoeven de schijven niet dezelfde opslagcapaciteit te bevatten. Schijf 1 wordt beschreven tot die vol is, vervolgens wordt schijf 2 beschreven. Als 1 schijf niet meer werkt, is alleen de data op die schijf verloren. Er is verder geen voordeel wat betreft de snelheid, iets wat bij sommige RAID-sets wel het geval is. Het goedkoop, gemakkelijk maar niet snel of betrouwbaar.
CONCLUSIE
Uit dit verhaal kun je concluderen dat RAID 0, 1, 5 en 10 (de combinatie tussen 0 en 1) het meest gebruikt worden. Het maken van de juiste keuze is niet altijd gemakkelijk. Indien geld geen probleem is, zou ik altijd voor RAID 10 gaan. Bij RAID 10 zijn de voordelen van alle andere RAID-sets gecombineerd. Over het algemeen zijn de kosten natuurlijk wel van belang. Het afwegen van prioriteiten is dan van groot belang. Goed nadenken wat belangrijk is voor jouw bedrijf, snelheid, veiligheid, capaciteit of misschien wel allemaal. Laat je adviseren over de verschillende opties en kosten. Heb je een algemene vraag over RAID? Aarzel dan niet en plaats een reactie, dan zullen wij de vraag zo snel mogelijk beantwoorden.