Som specielt administratorer, er vi enten direkte involveret med at rode med disksystemer, eller også spørges vi til råd mht performance og vores Oracle Databaser.

En af de meget forkomne former derude hedder RAID, eller originalt redundant array of inexpensive disks eller også kendt som redundant array of independent disks, der referere til data opbevaring ved brug af flere disks, til at dele eller replikere data mellem dem, og hvor de fremstår som en logisk enhed. RAID kan tilbyde fejltolerance og/eller højere hastighed end der kan opnås hvis man benytter enkeltstående harddiske. Ovenstående link viser samtlige Raid former fra wikipedia, den fri encyklopædi, hvor nedenstående, er en gennemgang af de RAID jeg primært støder på, nemlig Raid 0, Raid 1, Raid 0+1 og Raid 10 eller 1+0.

Fordelene ved RAID

  • Tilbyder realtids data genetablering samtidigt med at serveren kører videre hvis en disk skulle fejle.
  • Forøger serverens oppetid.
  • Beskytter imod tab af data, hvis en harddisk skulle fejle.
  • Flere harddiske kan arbejde sammen for at forøge hastigheden

Forskellige former for RAID
Der findes mange måder RAID kan implementeres på, men kort sagt findes der 3 typer.

  • Software RAID
    Serveren og operativsystemet laver alt arbejdet, og bruges ofte på meget lavt belastede servere og ofte kun i forbindelse med RAID1 for at sikre systemer i tilfælde af at en harddisk går i  stykker.
  • Hardware RAID
    En controller monteres i serveren og sørger for alle beregningerne, operativsystemet ser det  logiske RAID array som var det en ganske normal harddisk.
  • Extern hardware RAID
    Her sider både diske og controller i et seperat kabinet, denne løsning bruges ofte i forbindelse  med cluster systemer hvor 2 servere skal bruge den samme storage plads samtidigt.

RAID muligheder, (levels)

RAID 0 - Striping (ingen data beskyttelse)
Data spredes på 2 eller flere diske og der opnås herved en forbedring af både læse og skrive hastighed, går en disk i stykker er alle data tabt. RAID 0 anvendes som regel i forbindelse med temporære data. Level 0 er også den laveste RAID, faktisk kan man ingengang kalde det RAID, da den ingen form for redundans tilbyder data gemt i arrayet.

Følgende eksempel viser hvordan data er skrevet i en RAID 0 implementering. Hver række i arket repræsenterer en fysisk blok på drevet og hver kolonne er det individuelle drev. Tallene i tabellen repræsenterer data blokkene. Dublikerede numre indikerere en dublikeret data blok.

  Drive 1 Drive 2
Block 1 1 2
Block 2 3 4
Block 3 5 6

Hvis ovenstående f.eks repræsenterer 6 blokke der udgør en datafil, kan der læses og skrives meget hurtigere sammenlignet med et enkelt drev. Hver drev arbejder paralelt, dvs. der skal med 2 drev, 3 læsninger til at læse de 6 blokke, hvor et enkelt drev skulle bruge dobbelt så lang tid.  Ulempen somsagt er at fejler et drev - har vi kun de 3 blokke, og der skal 6 til, for at udgøre vores fil.

RAID 1 - Mirror

De samme data placeres på 2 diske og der opnås derved fejltolerance ligegyldigt hvilken disk der går ned kan systemet køre videre.

Et eksempel på RAID 1. Hver række i arket nedenfor repræsenterer en fysisk blok på et drev, og hver kolonne et drev.  Samme numre indikerer en dublikeret blok.

  Drive 1 Drive 2
Block 1 1 1
Block 2 2 2
Block 3 3 3

Som det ses er der fuld redundans ved RAID 1. Fejler et drev, er data tilgængelig ved det andet drev. Den store ulempe ved RAID 1, er egentlig plads, den tager meget plads, faktisk dobbelt så meget - men det siger jo sig selv.

RAID 0/1

Er en sådan hybrid form af ovenstående 2 former. Dette kan typisk kun lade sig gøre på et system med minimum 4 diske. Der kombineres så mirroring og striping for at leverere performance og redundans. De første 2 diske vil være aktive og have data striped over dem, mens de andre 2 fungerer som spejl.

Et eksempel på RAID 1. Hver række i arket nedenfor repræsenterer en fysisk blok på et drev, og hver kolonne et drev.  Samme numre indikerer en dublikeret blok.

  Drive 1 Drive 2 Drive 3 Drive 4
Block 1 1 2 1 2
Block 2 3 4 3 4
Block 3 5 6 5 6

I tilfældet bliver data blokke fordelt over drevene indenfor drev sættet, mens der spejles mellem sættene. Dette giver bedre performance på RAID 0, fordi det tager drevet halv tid at skrive data, sammenlignet med et enkeltstående drev og så er der redundans. Ulempen er penge - det koster naturligvis mere, at skulle have minimum 4 diske, for dette setup.

RAID 1+0 eller RAID 10

RAID 10 er det samme som RAID 0+1. Istedet for at stripe data mellem disk sættene og så spejle dem, er de første 2 drev spejlet sammen. De næste 2 diske er også spejlet sammen men gemmer striped data på det første drev.

Dette er en form for nested RAID setup. Drev 1 og 2 er RAID 1 spejl og drev 3 og 4 er også et spejl. Disse 2 sæt er så sat op i et striped array.

Et eksempel på RAID 1. Hver række i arket nedenfor repræsenterer en fysisk blok på et drev, og hver kolonne et drev.  Samme numre indikerer en dublikeret blok.

  Drive 1 Drive 2 Drive 3 Drive 4
Block 1 1 1 2 2
Block 2 3 3 4 4
Block 3 5 5 6 6

Som ved RAID 0+1, kræver RAID 10 minimum 4 diske for at virke. Performance er nogenlunde den samme men data er en anelse mere beskyttet end ved RAID 0+1.

Det var en ganske kort RAID gennemgang af de former jeg typisk støder på.