Artikel top billede

Falsk sikkerhed: Bruger du RAID 5 eller 6 på din NAS, så pas på

Klumme: Bruger du en NAS, hvor diskene i jagten på bedre beskyttelse mod nedbrud er sat op i et RAID 5- eller 6-setup, skal du passe meget på. Fornemmelsen af sikkerhed kan vise sig at være falsk.

Som amatør-youtube'er er mit pladsbehov eksploderet, og derfor er min gode gamle NAS, som jeg før har skrevet om, løbet tør for plads.

Valget stod mellem en simpel opgradering af diske og en helt ny NAS. Ved udsigten til friskbrygget ny hardware var det ikke svært at lokke mig selv ...

Den anden dag købte jeg derfor en ny NAS. Jeg er glad for QNAP, og derfor faldt valget atter på en QNAP-model.

Jeg købte en TS-563, som er en 5-bay-model med en ret potent quad-core CPU.

Se unboxing og installation af 5*5 TB harddiske her, og jeg har efterfølgende opgraderet den til 16 GB RAM. Det kan du se en video af her.

Hvad skal man med så megen RAM i en NAS? Svaret er virtualisering. Se min video af det her.

... og nu kommer vi til sagens kerne.

Min gamle NAS havde seks 1TB-diske forbundet i et RAID 5-setup.

Jeg valgte af gammel vane samme konfiguration med de nye 5 TB-diske til min nye NAS, hvorefter en kollega gjorde mig opmærksom på, at med de nye store HDD-størrelser giver RAID 5 og RAID 6 i realiteten kun en falsk fornemmelse af sikkerhed.

Jeg må bekende, at jeg ikke lige havde skænket det en tanke, og efter, at jeg har undersøgt sagen nærmere, må jeg give min kollega ret.

Det kunne være, at der var andre derude, som heller ikke lige er opmærksom på dette, og derfor vil jeg lige beskrive problematikken.

Derfor RAID

For de nysgerrige: RAID betyder Redundant Array of Inexpensive Disks. Wikipedia har en god baggrundsartikel.

Først og fremmest er det vigtigt at påpege, at RAID ikke kan være en erstatning for en backup.

Derfor har jeg da også løbende foretaget (nogenlunde regelmæssig) backup af de vigtige data.

RAID kan derimod - afhængig af konfiguration - forbedre ydelsen og minimere eller helt eliminere nedetid i forbindelse med fejl på en eller flere diske.

Jeg har brugt RAID 5, hvor data og en distribueret paritet fordeles over de fem diske således, at hvis en disk fejler, vil RAID-array'et kunne genopbygges med data fra de resterende fire diske.

Prisen, man betaler for denne beskyttelse, er så, at kapacitet svarende til en hel disk i arrayet bliver dedikeret til paritet.

I mit tilfælde går jeg altså fra 25 TB til 20 TB kapacitet.

Av, for den ... er det prisen?

Men får jeg egentlig den beskyttelse, jeg "betaler for"?

Hvis en disk fejler, forudsætter en succesfuld genopbygning af array'et, at de resterende fire diske kan læses uden en eneste bitfejl.

Og dette er en vigtig pointe.

Hvis én eneste bit ud af de 160.000.000.000.000 bits læses forkert, er samtlige data på diskene tabt!

Sandsynligheden for, at det sker, kan vi beregne.

Hvis vi siger, at $p$ er sandsynligheden for, at en bit bliver fejllæst, kan vi udtrykke $q=1-p$ som sandsynligheden for, at læsningen af en bit går godt.

For at genopbygge et RAID 5 array med N diske á K terabytes, skal vi læse $K \cdot (N-1)$ terabytes data. Omregnet til bits, $b$, vil det sige, at vi skal gennemlæse $b=K \cdot (N-1) \cdot 8 \cdot 10^{12}$ bits.

Sandsynligheden $P$ for, at genopbygningen af array'et sker uden bitfejl, kan nu udtrykkes som $P=q^b$.

Termen i harddisk-sammenhæng er URE (Unrecoverable Read Error), og URE for mine harddiske er $10^{-14}$ [1], og dermed kan $P$ beregnes til $13,5\%$.

Med andre ord er der en $86,5\%$ sandsynlighed for, at genopbygningen af mit RAID-array vil fejle.

Av, for den lede!

Er der belæg for den udregning?

Det skal retfærdigvis siges, at denne beregning er worst-case, da vi i det ovenstående antager, at bitfejl er uniformt fordelt over såvel harddiskene som tid.

Det er der ikke nødvendigvis belæg for at antage.

Det er vigtigt, at huske, at URE er en statistisk term. Det, der dog taler for ovenstående beregning, er, at mine harddiske (og det er nok gældende for de fleste) er samme model, og da de er købt samtidig, er der stor sandsynlighed for, at de også kommer fra samme produktionsbatch.

I et RAID 5-setup bliver de iøvrigt belastet 100 procent ens ved skrivninger/læsninger, så det er ikke en urimelig antagelse, at når en disk begynder at fejle, er der ret stor sandsynlighed for, at de andre diske også kan begynde at fejle.

Så spørgsmålet, jeg må stille mig selv, er:

"Når sandsynligheden for, at mit RAID 5-setup overhovedet vil have en nytteeffekt er mindre end sandsynligheden for at kaste en sekser i første terningkast, er det så overhovedet prisen værd?"

For RAID 6 er sandsynligheden for, at en genopbygning fejler lidt bedre, men den er i realiteten ikke signifikant: $P_{RAID6} \approx 70\%$.

Grunden til dette er, at et RAID 6-array har to distribuerede pariteter. Men dermed betaler man så også den dobbelte pris i tabt kapacitet, så jeg synes egentlig ikke, det står mål med fordelen.

Så min anbefaling er: Hvis dine harddiske er større end 1 TB, giver det ikke mening at benytte RAID 5. Er de større end 2 TB, giver det heller ikke mening at bruge RAID 6.

Hvad gør man så?

Jamen hvad skal jeg så gøre?

Man kunne bare have hver disk som et separat volume (altså ingen RAID overhovedet), men det er ufleksibelt og giver pladsspild, så jeg vil have ét volumen med den samlede diskkapacitet, og så laver jeg dedikerede shares oven på det.

Derved udnytter jeg pladsen optimalt.

Så hvis vi lige genbesøger de forskellige RAID-varianter, har vi RAID 0 som den eneste RAID-variant uden overhead. Der er ingen redundans, men data spredes over alle diske i array'et, hvilket øger skrive/læsehastigheden. Denne er en god kandidat for mig.

RAID 1, 1+0, 2, 3, 4, 5 og 6 benytter alle redundante data i større eller mindre omfang og tilbyder dermed en vis beskyttelse mod nedetid ved diskfejl, men som beskrevet ovenfor er der forholdsvis stor sandsynlighed for, at data alligevel kan mistes i tilfælde af disknedbrud.

Dernæst findes der en række RAID-varianter, som mest af alt er marketing-BS: RAID 10, 50, 51 og så videre. De er alle variationer over de ovenstående grund-varianter.

Mit valg

Jeg har valgt at køre mine diske i et RAID 0-setup, hvor der ikke er nogen redundans men stadig en hastighedsgevinst.

Alternativt kunne man vælge JBOD (Just a Bunch Of Disks), men så får man ikke performance-fordelen. RAID 0 kræver dog, at alle diske er samme størrelse, hvor de kan være forskellige i et JBOD-setup.

Backup har jeg hele tiden kørt, og det gør jeg selvfølgelig fortsat i mit nye setup.

Sluttelig lige et surt opstød til QNAP: Hvorfor giver firmaet ikke en advarsel i deres GUI, når brugeren under installationen vælger et setup med så lille sandsynlighed for at virke?

Noget i retning af "Kære bruger. Med de installerede harddisk-størrelser er sandsynligheden for, at array'et kan genopbygges kun X procent. Er du sikker på, at du vil vælge denne konfiguration?"

Det, synes jeg, de burde.

[1] Datasheet for HGST Deskstar NAS

Husk, I kan følge mig på Facebook, hvor jeg skriver løst og fast om teknologi, og hvor I kan komme med forslag til emner, som jeg kan tage op i klummen: https://www.facebook.com/en.noerds.bekendelser/

Min lille private teknologiske losseplads finder I på http://www.nørdoteket.dk/, hvor jeg dumper de artikler, jeg har skrevet, og diverse andet snask - alt sammen med primær fokus på teknologi.

Klummer er læsernes platform på Computerworld til at fortælle de bedste historier, og samtidig er det vores meget populære og meget læste forum for videndeling.

Har du en god historie eller har du specialviden, som du synes trænger til at blive delt?

Læs vores klumme-guidelines og send os noget tekst, så kontakter vi dig - måske bliver du en del af vores hurtigt voksende korps af klummeskribenter.