TTY / Tietoturvallisuuden jatkokurssi / Harjoitustyö 2011 / Luonnosvaihe

Mikael Viitaniemi

Suurten datamäärien saatavuuden turvaaminen RAID-järjestelmillä

Johdanto

RAID-tekniikka on kehitelty aikaan, jolloin gigatavun kokoinen levy oli jääkaapin kokoinen. Se tarkoittaa nimensä mukaisesti redundanttia joukkoa halpoja levyjä. Levyjen tallennuskapasiteetti kasvaa kuitenkin nopeammin kuin siirtoväylien kapasiteetti, josta seuraa erityisesti palautumistilanteissa ongelmia. Työssä tarkastellaan tästä kehityksestä johtuvaa ongelmaa nykyaikaisissa tietojärjestelmissä kahdelta kannalta alan tutkimustietoon pohjautuen. Ensimmäinen tapaus on tilanne, jossa on määrällisesti vähän suuria levyjä. Toinen tilanne puolestaan sisältää paljon yksittäisiä levyjä, jotka ovat kapasiteetiltaan suhteellisen pieniä.

Määritelmiä

RAID

RAID on lyhenne sanoista Redundant Array of Inexpensive Disks, eli redundantti joukko halpoja levyjä. Toisinaan sen tulkitaan tarkoittavan myös redundanttia joukkoa itsenäisiä levyjä. RAID on kahdennustekniikka, jonka avulla on tarkoitus estää palvelun keskeytyminen. Käytännössä RAID jakautuu useaan alakategoriaan, mutta tässä työssä olennaisia ovat RAID5, RAID6 ja RAID10. RAID5 ja RAID6 jakavat datan ja yhden tai kaksi pariteettilohkoa levyille. RAID10 jakaa datan kahteen tai useampaan osaan, joista kukin tallennetaan vielä kahdennettuna useille levyille.

Levyrikko

Levyn rikkoutumiselle voidaan asettaa useita erilaisia määritelmiä ja levyn rikkoutuminen harvoin on kovin mustavalkoinen tila. Tämän työn aiheen kannalta on luontevaa tulkita levyrikko tilaksi, jossa levy joudutaan korjaustoimenpiteen kautta vaihtamaan uuteen. Tällöin rajataan pois virheet, joista voidaan toipua ja muut vastaavat tilat.

Palautumiskelvoton luku- tai kirjoitusvirhe

Palautumiskelvoton virhe on tilanne, jossa levyltä luettaessa tai sinne kirjoittaessa ei voida olla varmoja lopputuloksen oikeellisuudesta virheenkorjauksen jälkeenkään. Normaalisti RAID-järjestelmän redundanssin ansiosta tällaiset vahingoittuneet alueet voidaan yksinkertaisesti palauttaa, mutta jos virhe sattuu kun järjestelmä on jo haavoittuvassa tilassa esimerkiksi palautumisen aikana, on kyseisessä levyn kohdassa oleva data pysyvästi menetetty.

Levykoon vaikutukset esiintyviin ongelmiin

RAID-pakan korjausaika

RAID-järjestelmä tavoittelee jatkuvuuden varmentamista redundanssilla. Tällöin on edessä väistämättä tilanne, jossa osa tuosta redundanssista menetetään. Saavuttaakseen jälleen aiemman redundanssitason, RAID-järjestelmän täytyy kopioida levyrikon vuoksi menetetty data uudelleen korvaavalle levylle. Tähän korjausoperaatioon kuluvana aikana RAID-järjestelmä saattaa olla haavoittuvainen datan menetykselle, jos samassa järjestelmässä sattuu toinen levyrikko.

Tästä riskistä johtuen olisi tietty luontevaa minimoida järjestelmän vakauttamiseen kuluva aika. Aikaa on mahdollista lyhentää huomattavasti, jos järjestelmä voidaan kytkeä pois toiminnasta palautumisen ajaksi. Tällöin toisaalta menetetään juuri se hetkellinen jatkuvuus, jota redundanssilla tavoitellaan. Todellisuudessa palautumiseen kuluva aika on kuitenkin suoraa verrannollinen RAID-järjestelmässä käytetyn yksittäisen levyn kokoon ja koko järjestelmän kapasiteettiin. Suurempi levykoko tarkoittaa poikkeuksetta pidempää palautumisaikaa, jonka aikana on mahdollista menettää dataa.

Kokonaistodennäköisyys levyrikon esiintymiselle

Edellä esitettiin, että suurempi levykoko tarkoittaa pidempää palautumisaikaa. Toinen ääripää ei kuitenkaan välttämättä ole sen parempi tilanne. Yksinkertainen todennäköisyyslaskenta paljastaa, että levyjen määrää kasvattamalla todennäköisyys levyrikon esiintymiselle kasvaa. Tällöin on mahdollista, että tiheämmin esiintyvien levyrikkojen vuoksi järjestelmä on suunnilleen yhtä kauan aikaa epävakaassa tilassa, kuin hieman suuremmillakin levyillä.

Statistiikkoja alan tutkimuksesta

Googlen julkaisemassa tutkimuksessa päädyttiin tulokseen, jossa alle vuoden ikäisellä levyllä on noin 2-3% todennäköisyys kokea levyrikko vuoden sisällä ja 2 vuoden ikäisellä jopa 8% [1]. Muissa vastaavissa tutkimuksissa luvut liikkuvat noin 2-7% välillä. [2] Lisäksi käytettäessä useita samanlaisia levyjä samoista valmistuseristä RAID-järjestelmässä, yhden levyrikon korrelaatio suhteessa muiden saman järjestelmän levyjen rikkoontumiseen kasvaa.

Nykyisissä SATA-levyissä esiintyy palautumiskelvoton virhetila luettaessa tai kirjoitettaessa keskimäärin 12.5 teratavun välein [3]. Tätä ja edellisessä kappaleessa annettua tietoa hyödyntämällä voidaan esittää laskennallisia arvioita RAID-järjestelmien turvallisuudesta erilaisin parametrein.

Laskennallisia todennäköisyyksiä yksittäiselle levyrikolle

Tarkastellaan nykymittapuulla hyvin keskivertoa viiden 500 GB levyn RAID5 pakkaa. Kokonaiskapasiteetti on tällöin 2 teratavua. Jos levyt ovat uusia, käyttämällä 3% hajoamistodennäköisyyttä saadaan koko pakalle arvioksi noin 13% todennäköisyys menettää yksi levyistä. Jos levyt puolestaan ovat vanhempia, käyttämällä 8% todennäköisyyttä hajoamiselle saadaan koko pakalle arvioksi noin 35% todennäköisyys menettää yksi levyistä vuosittain.

Kapasiteetin perusteella puolestaan käyttämällä edellisessä luvussa mainittua 12.5 teratavun virheväliä saadaan 16% todennäköisyys, että vähintään yksi levysektori menetetään palautuksen aikana. Tulokset yhdistämällä voidaan arvioida tämän kyseisen konfiguraation osalta, että uusilla levyillä on noin 2% todennäköisyys ja vanhoilla levyillä noin 5% todennäköisyys menettää dataa vuosittain levyrikon seurauksena.

Lähteet

SivuTiedotLaajennettu edit

Vaativuus Jatko
Valmius Kehitteillä
Tyyppi Ydin
Luokitus Fyysinen
Mitä Saatavuus
Miltä Ihmisetön uhka
Missä Järjestelmä
Kuka Tite-ammattilainen
Milloin Ennakolta
Miksi Hyvä tapa
Print version |  PDF  | History: r2 < r1 | 
Topic revision: r2 - 04 Nov 2011 - 01:17:10 - MikaelViitaniemi?
 

TUTWiki

Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TUTWiki? Send feedback