RAID, eller Redundant Array of Independent Disks, er en betegnelse for når man kombinerer flere diske sammen til ét disk volume, for at opnå højere driftssikkerhed, hastighed eller begge dele. Dette kan gøres på flere forskellige måder, hvilket jeg vil forsøge at afdække/forklare i denne artikel.
RAID benyttes som regel i servere, men kan også opsættes på private computere, forudsat man har grej der understøtter det. Man kan til dette formål benytte enten software eller hardware til at opsætte sine RAID arrays.
Hardware- og software-RAID
Man kan aktivere RAID via hardware (RAID-controllerkort eller RAID-chip), eller via software (udelukkende software eller hybrid).
Hardware-RAID
En dedikeret hardwarecontroller giver mulighed for hardwarebaserede RAID-tjenester. Man kan generelt opsætte hardware-RAID på to måder: via et eksternt RAID-controllerkort eller via en intern RAID-chip. Når man opsætter RAID på denne måde, vil ens RAID være helt transparent for operativsystemet, hvilket betyder at dette blot vil se ens RAID array som en normal fysisk disk.
- RAID-controllerkort
Et udvidelseskort som forbindes til motherboardet. Kortet indeholder en RAID-processor samt I/O processorer med interfaces til drevene. Kortene kan koste en del, men siden de er separate fra værtscomputeren, vil alt ressourceforbrug foregå lokalt på det dedikerede kort istedet for at gå gennem CPU’en på værtscomputeren. - RAID-chip
En chip på motherboardet integrerer værtens interface, I/O interfaces for harddiske, RAID-processoren og en hukommelsescontroller.
Software-RAID
Leverer RAID-tjenester fra værtscomputeren. Software-RAID kommer i to varianter: udelukkende softwaredefineret via operativsystemet, og en hybridløsning hvor der benyttes en hardwarekomponent til at aflaste systemprocessoren (CPU).
- Udelukkende software
Er den billigste form for RAID, og er ofte inkluderet som en indbygget funktion i styresystemet. Det er en værtsbaseret softwareløsning som styrer RAID-beregningerne for de tilkoblede harddiske. Aktiverer når operativsystemet indlæser RAID-driveren. - Hybrid
Softwarebaseret RAID som benytter en hardwarekomponent til at levere RAID BIOS-funktioner på motherboardet. Denne teknologi tilbyder et lag af redundant beskyttelse for en fejlet bootproces. Udelukkende softwarebaseret RAID booter fra operativsystemet. og boot-fejl kan derfor påvirke hele RAID-systemet. Dette beskytter tilføjelsen af RAID BIOS-funktionerne imod.
Bemærk: når der benyttes en form for hardware i forbindelse med opsætning af RAID, findes der naturligvis en risiko for at denne hardware står af. I tilfælde af at dette sker, kan man blive tvunget til at finde nyt tilsvarende hardware, for igen at kunne læse sine diske. Dette gør sig gældende, både hvis der er benyttes RAID-controllerkort, RAID-chip eller RAID BIOS-funktioner.
Begreber der bruges i forbindelse med RAID
I forbindelse med RAID, bruger man generelt begreberne striping, mirroring og paritet.
Striping
Betyder generelt at flere diske kombineres til én disk.
Mirroring
Betyder generelt at diske klones, så samme data findes på flere diske.
Paritet
Kontroldata der kan bruges til at validere at data er som det skal være.
Forklaret anderledes, så er det noget som giver fejltolerance, ved at lave en kalkulation på data lagret to steder, hvorefter resultaterne heraf gemmes et tredje sted. Disse resultater kan herefter benyttes til at genoprette data, efter et fejlet drev er blevet skiftet.
Man gemmer generelt paritetsdata på to forskellige måder:
- Dedikeret paritet, hvor man gemmer paritetsdata på en dedikeret disk.
- Distribueret paritet, hvor paritetsdata ligger på diskene som indeholder den almindelige data.
Standard RAID-typer
Der er mange forskellige måder at køre RAID på, men Standard RAID typer er:
RAID 0 (striping, ingen paritet)
RAID 1 (mirroring, ingen paritet)
RAID 2 (bit level striping, dedikeret paritet)
RAID 3 (byte level striping, dedikeret paritet)
RAID 4 (block level striping, dedikeret paritet)
RAID 5 (block level striping, distribueret paritet)
RAID 6 (block level striping, dobbelt distribueret paritet)
Nested RAID-typer
Ud over dette, findes der også såkaldte Nested RAID typer, som er kombinationer af standardtyperne:
RAID 01 (RAID 0+1)
RAID 03 (RAID 0+3)
RAID 10 (RAID 1+0)
RAID 50 (RAID 5+0)
RAID 60 (RAID 6+0)
RAID 100 (RAID 10+0)
De mest brugte RAID-typer
Eftersom mange af RAID-typerne ikke rigtigt bruges i praksis, vil jeg i denne artikel fokusere primært på følgende mest brugte RAID typer:
RAID 0 (striping)
RAID 1 (mirroring)
RAID 5 (striping, distribueret paritet)
RAID 6 (striping, dobbelt distribueret paritet)
RAID 10 (striping + mirroring)
I tillæg til dette, vil jeg komme ind på nogle enkelte, mere specielle RAID-typer efter dette, blandt andet Synologys Hybrid RAID, SHR. (MANGLER)
Ønsker du yderligere information, findes der kildeangivelser til alt dette i bunden af artiklen.
Diske kombineres til én stor disk, og data fordeles skiftevis mellem diskene. Kræver minimum 2 diske. Når en enkelt disk fejler, fejler hele systemet. Dette skyldes selvfølgelig at filsystemet strækker over alle diskene, som én stor disk. Jo flere diske man har, desto større risiko er der dermed for at systemet fejler. Fordelen er at der kan læses fra flere diske på samme tid, hvilket giver højere hastigheder. Søgetiden vil være den samme som de underliggende diske. Overførselshastigheden øges med en faktor svarende til de underliggende diske både ved læsning og skrivning.
Data spejles/duplikeres på tværs af flere diske, som kombineres til én stor disk. Man mister derfor lagringsplads, da alt skal ligge flere gange. Kræver minimum 2 diske. Når en enkelt disk fejler, vil systemet køre videre på de øvrige. Med andre ord, så øges redundansen med en faktor svarende til antallet af diske. To diske vil f.eks. betyde dobbelt så høj redundans. Søgetiden vil, ved parallel tilgang, øges med en faktor tilsvarende antal brugte diske. Overførselshastigheden øges også med en faktor svarende til antal diske, men kun ved læsninger. Ved skrivninger er der ingen hastighedsforøgelse, da alt data skal skrives til alle diske.
RAID 5 (striping, distribueret paritet)
Som RAID 0, men med en distribueret paritetsblok. Dette betyder at hvis én disk står af, vil systemet kunne gendannes. Kræver som minimum 3 diske for at fungere. Redundansen forbedres svarende til 1, divideret med antal diske. Søgetiden vil være den samme som den langsommeste af diskene. Overførselshastigheden ved læsning er den samme som summen af de underliggende diske. Ved skrivninger vil hastigheden være en del lavere, da der også skal skrives paritetsdata. Søgetiden i forbindelse med dette (skrivninger), vil nogle gange forårsage et relativt stort fald i performance.
RAID 6 (striping, dobbelt distribueret paritet)
Som RAID 5, men med dobbelt så mange paritetsblokke. Dette betyder at der kan håndteres hvis 2 diske står af. Kræver som minimum 4 diske for at fungere. Ydelsen vil være den samme som RAID 5, minus en disk.
RAID 10 (striping + mirroring)
En kombination af RAID 1 og RAID 0, hvilket betyder at det er striping og mirroring på samme tid. Mere specifikt, så er det et stripe af et mirror. Kræver som minimum 4 diske for at fungere. I et array med 4 diske, vil systemet stripe data fra to af diskene, som hver består af to diske der kører mirroring: Ydelsesmæssigt vil der være samme skrivehastighed som med RAID 1 (mirroring), men med dobbelt læsehastighed, på grund af brugen af striping.
RAID vs. backup
Afslutningsvist er det vigtigt at nævne, at RAID ikke er nogen erstatning for backup. Alt RAID, med undtagelse af RAID 0, beskytter en mod at en enkelt disk fejler. Nogle kan endda beskytte dig mod at 2 diske fejler. Det er dog stadig vigtigt at have backup for at sikre sig helt, af følgende årsager:
- Backup er nyttigt hvis alle drev fejler som resultat af overspænding eller lignende strømproblemer.
- Backup beskytter i tilfælde af tyveri.
- Backup beskytter mod brugerfejl.
Hvis nogen ved en fejl sletter noget vigtigt data, og dette ikke bemærkes i længere tid, er det en fordel at have gode backups, så disse data kan gendannes derfra.
Læringsvideo om RAID
Er du typen der gerne vil se en video for at lære ting som dette istedet, har jeg indlagt en video der kan benyttes herunder.
Skulle der være kommentarer til ovenstående artikel, hører jeg meget gerne fra jer. Enten her, eller inde på Discord. Linket til vores Discord-server findes i toppen af hjemmesiden (i headeren).