Sisältö

·         1 Johdanto

o    1.1 Fyysisten levyjen ja loogisten levyjen eroavaisuudet

o    1.2 Tietojen lukeminen ja kirjoittaminen

o    1.3 Mikä on RAID?

o    1.4 Miksi käyttää RAIDia?

o    1.5 Historia

·         2 RAID-järjestelmien käyttämät peruskäsitteet

o    2.1 Välimuistitallennus

o    2.2 Peilaus: Useampi kuin yksi kopio tiedoista

o    2.3 Raidoitus: Osa tiedoista on toisella levyllä

o    2.4 Virheiden korjaus ja viat

o    2.5 Hot spares: käytetään enemmän levyjä kuin on tarpeen

o    2.6 Stripe size ja chunk size: tietojen jakaminen useammalle levylle

o    2.7 Levyn kokoaminen: JBOD, ketjutus tai hajauttaminen

o    2.8 Aseman kloonaus

o    2.9 Erilaiset asetukset

·         3 Perusteet: yksinkertaiset RAID-tasot

o    3.1 Yleisesti käytetyt RAID-tasot

§  3.1.1 RAID 0 "striping" (raidoitus)

§  3.1.2 RAID 1 "peilaaminen"

§  3.1.3 RAID 5 "striping with distributed parity" (raidoitus ja hajautettu pariteetti)

§  3.1.4 Kuvat

o    3.2 Vähemmän käytetyt RAID-tasot

§  3.2.1 RAID 2

§  3.2.2 RAID 3 "striping with dedicated parity" (raidoitus ja oma pariteetti)

§  3.2.3 RAID 4 "striping with dedicated parity" (raidoitus ja oma pariteetti)

§  3.2.4 RAID 6

§  3.2.5 Kuvat

o    3.3 Epästandardit RAID-tasot

§  3.3.1 Kaksoispariteetti / Diagonaalipariteetti

§  3.3.2 RAID-DP

§  3.3.3 RAID 1.5

§  3.3.4 RAID 5E, RAID 5EE ja RAID 6E

§  3.3.5 RAID 7

§  3.3.6 Intel Matrix RAID

§  3.3.7 Linux MD RAID -ajuri

§  3.3.8 RAID Z

§  3.3.9 Kuvat

·         4 RAID-tasojen yhdistäminen

·         5 RAIDin tekeminen

o    5.1 Ohjelmiston RAID

o    5.2 Laitteiston RAID

o    5.3 Laitteistoavusteinen RAID

·         6 Laitteistovikoihin liittyvät eri termit

o    6.1 Vikaantumisaste

o    6.2 Keskimääräinen aika tietojen katoamiseen

o    6.3 Keskimääräinen toipumisaika

o    6.4 Korjaamaton bittivirheprosentti

·         7 RAIDin ongelmat

o    7.1 Levyjen lisääminen myöhemmin

o    7.2 Linkitetyt epäonnistumiset

o    7.3 Atomisuus

o    7.4 Palauttamattomat tiedot

o    7.5 Kirjoitusvälimuistin luotettavuus

o    7.6 Laitteiden yhteensopivuus

·         8 Mitä RAID voi tehdä ja mitä ei voi tehdä

o    8.1 Mitä RAID voi tehdä

o    8.2 Mitä RAID ei voi tehdä

·         9 Esimerkki

·         10 Viitteet

·         11 Muut verkkosivustot

RAID on lyhenne, joka tarkoittaa Redundant Array of Inexpensive Disks tai Redundant Array of Independent Disks. RAID on tietotekniikassa käytetty termi. RAID:in avulla useat kiintolevyt muodostetaan yhdeksi loogiseksi levyksi. Tämä voidaan tehdä eri tavoin. Jokaisella kiintolevyjen yhdistämistavalla on joitakin etuja ja haittoja verrattuna siihen, että levyjä käytettäisiin yksittäisinä, toisistaan riippumattomina levyinä. Tärkeimmät syyt, miksi RAID-järjestelmää käytetään, ovat seuraavat:

  • Jotta tietojen menetys tapahtuisi harvemmin. Tämä tapahtuu ottamalla useita kopioita tiedoista.
  • Saadaksesi lisää tallennustilaa monilla pienemmillä levyillä.
  • Suurempi joustavuus (levyjä voidaan vaihtaa tai lisätä järjestelmän ollessa käynnissä).
  • Saadaksesi tiedot nopeammin.

Kaikkia näitä tavoitteita ei ole mahdollista saavuttaa samanaikaisesti, joten on tehtävä valintoja.

On myös joitakin huonoja asioita:

  • Tietyillä valinnoilla voidaan suojautua siltä, että tiedot menetetään yhden (tai useamman) levyn vikaantumisen vuoksi. Ne eivät kuitenkaan suojaa tietojen poistamiselta tai ylikirjoittamiselta.
  • Joissakin kokoonpanoissa RAID voi sietää yhden tai useamman levyn vikaantumista. Kun vikaantuneet levyt on vaihdettu, tiedot on muodostettava uudelleen. Kokoonpanosta ja levyjen koosta riippuen tämä uudelleenrakentaminen voi kestää kauan.
  • Tietynlaiset virheet tekevät tietojen lukemisen mahdottomaksi.

Suurin osa RAIDia koskevasta työstä perustuu vuonna 1988 kirjoitettuun artikkeliin.

Yritykset ovat käyttäneet RAID-järjestelmiä tietojensa tallentamiseen siitä lähtien, kun tekniikka kehitettiin. RAID-järjestelmiä voidaan valmistaa eri tavoin. RAID-järjestelmän rakentamisen kustannukset ovat laskeneet paljon sen keksimisen jälkeen. Tästä syystä jopa joissakin kotona käytettävissä tietokoneissa ja laitteissa on joitakin RAID-toimintoja. Tällaisia järjestelmiä voidaan käyttää esimerkiksi musiikin tai elokuvien tallentamiseen.

Peruskäsitteet

Tässä muutama keskeinen käsite, jotka helpottavat RAIDin ymmärtämistä:

  • Peilaus (mirroring): sama data tallennetaan kahdelle tai useammalle levylle. Esimerkki: RAID 1.
  • Raidoitus (striping): data jaetaan lohkoihin (chunk/stripe) ja kirjoitetaan vuorotellen eri levyille. Parantaa usein suorituskykyä, mutta ei yksinään suojaa vikaantumiselta (esim. RAID 0).
  • Pariteetti: lisätieto, jonka perusteella voidaan laskea puuttuva data, jos levy vikaantuu. Käytetään esimerkiksi RAID 5:ssä ja RAID 6:ssa.
  • Hot spare: odottava vara-asema, joka voidaan automaattisesti ottaa käyttöön vikatilanteessa ilman, että järjestelmä tarvitsee manuaalista asennusta.
  • Stripe size / chunk size: määrittää, kuinka suuren datapalasen kerralla kirjoitetaan yhdelle levylle ennen siirtymistä seuraavaan. Oikea koko riippuu käyttötapauksesta.
  • JBOD (Just a Bunch Of Disks): levyt yhdistettynä ilman RAID-logiikkaa — näkyvät yleensä erillisinä loogisina levyinä tai ketjutettuina.

Yleisimmin käytetyt RAID-tasot (yhteenveto)

Tässä on suositeltu tiivistelmä yleisimmistä RAID-tasoista ja milloin niitä kannattaa käyttää:

  • RAID 0 (striping): hyvä suorituskyvylle ja käytettävissä olevalle kapasiteetille (summa levyjen kapasiteeteista), mutta ei tarjoa redundanssia. Yhden levyn vika = koko ryhmän tietojen menetys.
  • RAID 1 (mirroring): korkea luotettavuus, koska jokaisesta kirjoituksesta on kopio vähintään kahdella levyllä. Tehokas kapasiteetti on 50 % (kahdella levyllä). Lue- ja kirjoituskäyttäytyminen: lukeminen voi nopeutua, kirjoitukset usein hitaita verrattuna stripingiin.
  • RAID 5 (striping + hajautettu pariteetti): vaatii vähintään 3 levyä. Pariteetti tallennetaan eri levyille, joten yhden levyn vika voidaan sietää. Hyvä kapasiteettitehokkuus, kohtuullinen suorituskyky lukemiseen, kirjoitukset voivat olla hitaampia pariteetin laskennan vuoksi.
  • RAID 6 (kaksinkertainen pariteetti): vaatii vähintään 4 levyä ja sietää kahden levyn yhtäaikaista vikaantumista. Käytetään, jos levykoko tai uudelleenrakentamisen kesto tekee RAID 5:stä riskialttiin.
  • RAID 10 (1+0, peilaus + raidoitus): yhdistää RAID 1:n luotettavuuden ja RAID 0:n suorituskyvyn. Tarvitsee vähintään 4 levyä. Erinomainen suorituskyvyn ja redundanssin suhteen, mutta tehokas kapasiteetti on puoliksi pienempi.

Muita RAID-muotoja lyhyesti

On olemassa myös vähemmän käytettyjä tai valmistajakohtaisia tasoja (RAID 2–7, RAID-DP, RAID-Z, Intel Matrix RAID jne.), jotka tarjoavat erilaisia tasapainoja suorituskyvyn, redundanssin ja kapasiteetin välillä. Esimerkiksi ZFS:n RAID-Z on suunniteltu vähentämään ilmeisiä ongelmia, kuten uudelleenrakennuksen aikana esiintyviä korjaamattomia lukuvirheitä.

RAIDin rakentaminen: ohjelmisto, laitteisto ja hybridit

  • Ohjelmiston RAID: toteutetaan käyttöjärjestelmän tai ajurin toimesta (esim. Linux MD RAID). Ei vaadi erillistä RAID-korttia, mutta kuormittaa CPU:ta. Hyvä kustannustehokkuus ja joustavuus.
  • Laitteiston RAID: erillinen RAID-ohjain (esim. PCIe-kortti) hoitaa pariteetin ja kytkennät. Voi sisältää RAID-ohjaimen välimuistin (battery-backed tai flash-backed), joka parantaa suorituskykyä ja tietoturvaa välimuistin virrankatkaisun yhteydessä.
  • Laitteistoavusteinen (host-assisted) RAID: yhdistelmä, jossa järjestelmä ja ohjain jakavat tehtäviä — esim. suorituskyvyn optimointi käyttäen ohjaimen ominaisuuksia mutta ohjelmistopohjaisella hallinnalla.

Laitteistovikoihin liittyvät termit

  • Vikaantumisaste (failure rate): kuinka usein laitteet epäonnistuvat; liittyy esimerkiksi MTBF-arvoihin (Mean Time Between Failures).
  • Keskimääräinen aika tietojen katoamiseen: arvio miten nopeasti järjestelmä menettää datan todennäköisesti tietyillä asetuksilla ja levyillä.
  • Keskimääräinen toipumisaika (rebuild time): aika, joka kuluu kun vikaantunut levy korvataan ja data rakennetaan takaisin pariteetin tai peilausten avulla. Suuret levyt ja rajalliset resurssit pidentävät tätä aikaa.
  • Korjaamaton bittivirheprosentti (Unrecoverable Read Error, URE): todennäköisyys että yksittäinen lukuyritys epäonnistuu pysyvästi. URE:t voivat estää RAIDin onnistuneen uudelleenrakennuksen, erityisesti RAID 5:ssä suurten levyjen kanssa.

RAIDin yleisimmät ongelmat ja huomioitavaa

  • Pitkä uudelleenrakennusaika: suuret levyt voivat kestää tunteja tai päiviä uudelleenrakentaa. Tänä aikana järjestelmä on alttiimpi uudelle vikaantumiselle.
  • Linkitetyt epäonnistumiset: samassa erässä ostettujen levyjen vikoihin liittyy riski, että useammat levyt vikaantuvat lähekkäin ajallisesti. Tästä syystä suositellaan eri valmistuseriä ja valmiusratkaisuja kuten hot spareja ja RAID 6:ta.
  • Atomisuus ja tiedon eheys: RAID ei automaattisesti suojaa sovellustason virheiltä, kuten osittain kirjoitetuilta tietoriveiltä. Tiedon eheyden varmistamiseksi kannattaa käyttää tiedostojärjestelmän tai sovelluksen tarjoamia mekanismeja (esim. transaction logit, checksums, ZFS).
  • Kirjoitusvälimuistin luotettavuus: jos RAID-ohjain käyttää kirjoitusvälimuistia ilman varmistusta, virrankatko voi johtaa tietojen menetykseen. Siksi paljon käytettyjä laitteita on varustettu akku- tai flash-varmennetuilla välimuistiratkaisuilla.
  • Laitteiden yhteensopivuus: eri valmistajien ohjaimet ja firmwaret voivat käyttäytyä eri tavoin. Yhdenmukaisuus parantaa luotettavuutta.

Mitä RAID voi ja mitä ei voi tehdä

  • RAID voi: tarjota redundanssia (ei yhtä kuin varmuuskopio), parantaa luku- ja/tai kirjoitusnopeutta oikeilla tasoilla, yhdistää levytilaa ja mahdollistaa vikatilanteessa toimimisen ilman välitöntä käyttökatkoa.
  • RAID ei korvaa varmuuskopiota: RAID ei suojaa virheellisiltä käyttäjätoiminnoilta (kuten tiedoston poistaminen), ransomware-hyökkäyksiltä tai katastrofaaliselta tiedon korruptiolta. Tärkeistä tiedoista tulee aina olla erillinen varmuuskopio, mieluiten fyysisesti eri paikassa.

Suosituksia käytäntöön

  • Valitse RAID-taso käyttötapauksen mukaan: suorituskyky vs. redundanssi vs. kustannus.
  • Käytä sopivaa RAID-tasoa suurille levyille (RAID 6 tai RAID 10 suositeltavampia kuin RAID 5 suuremmilla kokoonpanoilla).
  • Pidä varmuuskopiot erillään RAID-järjestelmästä ja testaa palautukset säännöllisesti.
  • Valvo levyjen tilaa (SMART), vaihda vialliset asemat nopeasti ja pidä yksi tai useampi hot spare valmiina, jos mahdollista.
  • Harkitse enterprise-luokan levyjä ja ECC-muistia palvelinympäristöissä.

Esimerkkitilanne

Kuvitellaan palvelin, jossa on neljä 4 TB -levyä ja halutaan yhdistää hyvä suorituskyky ja redundanssi. RAID 10 käyttäisi näistä levyistä tehokkaasti 8 TB:ia (puolet kokonaiskapasiteetista) ja sietäisi yhden tai useamman levyvikajoukon, kun ne eivät ole samassa peilissä. RAID 6 antaisi noin 8 TB kapasiteettia (kahden levyn pariteetit) ja sietäisi kahden levyn yhtäaikaisen vian, mutta kirjoitusoperaatiot olisivat hitaampia pariteetitöiden takia.

Yhteenveto

RAID on joustava tapa parantaa tallennusjärjestelmän suorituskykyä, kapasiteettia ja/tai luotettavuutta käyttötarpeiden mukaan. Oikea suunnittelu ja ylläpito (esim. varmuuskopiot, valvonta, sopiva RAID-taso ja laitteistovalinnat) ovat ratkaisevia, jotta RAID todella parantaa datan saatavuutta ja suojaa vahingolta.

Viitteet

  • Patterson, Gibson & Katz (1988): alkuperäinen artikkeli, jossa RAID-malli esiteltiin (tunnettu RAID-paperi).
  • Käytännön RAID-suunnitteluohjeet ja valmistajien dokumentaatio — katso laitteisto- ja ohjelmistotoimittajien suositukset.

Muut verkkosivustot

Lisätietoa ja teknisiä yksityiskohtia löytyy mm. käyttöjärjestelmien (esim. Linux MD RAID), tiedostojärjestelmien (esim. ZFS) ja laitteistovalmistajien dokumentaatioista. Muista kuitenkin, että jokaisella järjestelmällä on omat rajoituksensa ja parhaat käytännöt.