RAID

Bilde av Patrick Lindenberg fra Unsplash

Bilde av Patrick Lindenberg fra Unsplash

RAID er et akronyom for Redundand Array of Independet Disks. På norsk, en redundant rekke med uavhengige disker.

Redundant er ett ord som betyr at noe kan slutte å fungere uten at det går utover funksjonaliteten. I parksis vil det si at man har pumper som er satt i paralell, så hvis den ene pumpen slutter å fungere, brukes den andre. Redundans er er ett konsept som brukes på mye forkjellig utstyr som det er viktig at alltid fungerer.

RAID1

Speiling

Det er mange typer RAID, og den enkleste typen er at alt innhold skrives til to disker som speiler hverandre. Dette heter RAID1, og er ofte brukt i eksterne harddisker. RAID1 får to disker til å oppføre seg som om det er en disk, men du vil bare få lagringsplassen til den ene tilgjengelig, siden innholdet på den andre disken er en nøyaktig kopi av det første. Windows og andre operativsystemer kan brukes til å sette opp slik at to disker oppfører seg som RAID1. Det fine med denne løsningen er at hvis en av de to diskene slutter å fungere har du alltids en kopi liggende.

2TB + 2TB = 2TB, 1x lese hastighet, og 1x skrive hastighet.

RAID0

Striping

RAID0 er ikke redundant, men heller en måte som sprer datablokker utover flere disker slik at man kan få to eller flere disker til å oppføre seg som en stor disk. Fordelen med dette er at lesehastigheten i teorien kan bli dobbelt så raskt med to disker enn hvis det kun var en disk. RAID0 er på ingen måte en smart måte å lagre filer på hvis man er på jakt etter redundans, men heller ett konsept som blir brukt på en mere redundant måte i mere avanserte varianter av RAID.

2TB + 2TB = 4TB, 2x lese hastighet, og 1x skrive hastighet. Årsaken til den økte lese hastigheten kan man forstå ved å se på figuren over. Her kan man lese innholdet fra datablokkene A1 og A2 samtidig.

RAID4

Striping av datablokker + Paritet

RAID4 krever minst 3 disker. Her brukes striping av datablokker for å fordele datablokkene utover to eller flere disker akkurat som i RAID0. I tillegg har man en dedikert paritets disk. Hvis en av diskene skulle slutte å fungere, har man da muligheten til å gjenoppbygge den med hjelp av matematikk. Man ser da på hva som er lagret i paritets blokken, og datablokkene som er på den/de diskene som fortsatt fungerer.

Fordelen med RAID4 fremfor RAID1 er at lesehastigheten blir teoretisk økt like mye som antall disker datablokkene fordeles utover. For skriving av data vil paritets disken fungere som en flaskehals siden man må skrive alle endringer til den dedikerte paritets disken.

2TB + 2TB + 2TB = 4TB, 2x lese hastighet, og 1x skrive hastighet. Årsaken til økningen i lesehastighet kan man forstå ved å se på figuren over. Her kan man lese innholdet fra datablokkene A1, B2 og C3 samtidig. Skrive hastigheten blir ikke økt i sammenlignet med å kun ha en disk siden man ved å endre datablokken A1, også må endre Ap. Siden man ikke kan skrive Bp samtidig må man derfor vente til A1 og Ap er ferdig skrevet før man kan skrive B2 og Bp.

RAID4, er ikke vanlig å bruke i virkeligheten, men er nyttig å forstå for å kunne skjønne mere avanserte RAID.

Paritets blokken i RAID skapes ved å ta en XOR beregning på blokkene som lagres på diskene. XOR krever at det kan kun forekomme en "sann" på en av kildene, alle andre kobinasjoner blir "usann". XOR for to datablokker blir:

1010 - Datablokk A1
1001 - Datablokk A2

0011 - Datablokk Ap

XOR for 3 datablokker blir:

10101100 - Datablokk A1
10110010 - Datablokk A2
10011001 - Datablokk A3

00000111 - Datablokk Ap

RAID5

Striping av datablokker + Fordelt paritet

RAID5 er kanskje den mest vanlige RAID varianten og krever minst 3 disker. Det er likt RAID4 bortsett ifra at paritets blokken fordeles utover diskene, så man ikke har en dedikert disk med paritets blokker. Som ett resultat av dette kan skrive hastigheten bli betydelig høyere, men fortsatt ikke like høy som RAID0. Man må fortsatt skrive paritets blokken, og avhengig av hvor mange disker du har i RAID'et vil det være en sansynlighet for at man endrer på en datablokk som har paritetsblokken sin plassert på samme disk som en parallell endring. Teoretisk vil det si at:

2TB + 2TB + 2TB = 4TB, 2x lese hastighet, og 1,5x skrive hastighet.

Det er verdt å vite at når en disk slutter å fungere vil lese og skrive hastigheten synke dramatisk fordi at RAID-kontrolleren må beregne innholdet i det som skulle vært på disken som ikke fungerer.

RAID6

Striping av datablokker + Fordelt dobbel paritet

RAID6 er likt RAID5, men som en ekstra sikkerhet har man to kopier av paritetsblokken. Dette gjør at man må minst bruke 4 disker. Fordelen med RAID6 er at man kan tåle at hele to disker slutter å funke uten at man mister innholdet. Men som en konsekvens av at man har dobbelt så mange paritets blokker vil man i realiteten ikke merke noen økning i skrivehastighet, fremfor å ha en stor disk. Siden man har en økning i redundans kan dette være ett godt alternativ i servere med kritisk informasjon.

RAID er ikke en erstatning for backup

...til tross for at man tåler at en disk ikke funker

Det er situasjoner som fortsatt kan ødelegge diskene dine. Det er naturkatastrofer som flom og lynnedslag eller at diskene blir stjålet (ransomware). RAID brukes for å sikre seg mot at disker slutter å fungere, men det er fortsatt veldig mange andre grunner til til at man kan miste data.

Oppsummert

TL;DR

RAID har mange varianter, men de to mest vanlige variantene er RAID1 som brukes på disker som inneholder kritiske filer. Her tåler man at en disk slutter å fungere uten at man mister data. RAID5 er det mest vanlige i filservere, hvor man har mange disker og ønsker fordelen med rask lesehastighet og redundans. I liket med RAID1, tråler man at en av diskene slutter å fungere uten at man mister data.