Sõltumatute ketaste liiasmassiiv

"RAID" suunab siia. Prantsusmaa eriüksuse kohta vaata artiklit RAID (eriüksus).

Sõltumatute ketaste liiasmassiiv on mitmest kõvakettast või kõvaketta partitsioonist moodustatud loogiline plokkseade andmete salvestamiseks, kus samad andmed salvestatakse mitmele kõvakettale.

Inglise keeles on sõltumatute ketaste liiasmassiiv Redundant Array of Independent Disks ehk RAID. Varem kasutati ka nime Redundant Array of Inexpensive Disks ehk odavate ketaste liiasmassiiv. Viimase termini võtsid kasutusele David A. Patterson, Garth A. Gibson ja Randy Katz California Ülikoolist Berkeleys 1987. aastal.

Nüüdisajal on RAID üldtermin, mis hõlmab kõiki andmete säilitamise võimalusi arvutis, mis jagab ja kordab andmeid mitme kettaseadme vahel. Erinevaid arhitektuure eristatakse numbritega (näiteks RAID 0, RAID 1). Erineva konstruktsiooniga RAID-süsteemidel on kaks peamist eesmärki: suurendada andmete turvalisust ning suurendada lugemis- ja kirjutamiskiirust. Kui mitu füüsilist ketast on seadistatud kasutama RAID-tehnoloogiat, siis öeldakse, et nad on RAID-massiivis. Sellises massiivis hajutatakse andmed mitmele kettale, kuid operatsioonisüsteemi jaoks on kõik andmed ühel kettal. RAID-i kasutatakse mitmel otstarbel.

Tavalised RAID-i tasemed

Erinevaid RAID-i arhitektuure nimetatakse RAID-i tasemeteks. Algselt oli vaid viis RAID taset, kuid aja jooksul on arenenud mitmed teised tasemed: üksteise sees asetsevad RAID tasemed ja mittestandardsed tasemed.

Järgmine tabel näitab RAID-i tasemete tähtsamaid parameetreid. Mahuefektiivsus on arv vahemikus 0–1 ja näitab, kui suurt hulka on võimalik maksimumist kasutada. Näiteks, kui on kolm ketast paigutatud RAID 3 massiivi, on nende maht 1-(1/3)=0,66. Kui iga sellise ketta mahtuvus on 250 GB, on nende maksimummaht 750 GB, millest RAID 3-s on kasutatav 0,66 ehk 66 %, 500 GB.

TaseKirjeldusMinimaalne ketaste arvMahuefektiivsusTõrketaluvusLugemiskiiruse kasvKirjutamiskiiruse kasvMudel
RAID 0 Andmed jaotatakse plokkidena (hargsalvestus). 2 1 0 (puudub) nX nX RAID Level 0
RAID 1 Peegeldamine teisele kettale, nn peegelsalvestus. 2 1/n n−1 ketast nX 1X RAID Level 1
RAID 2 Andmed jaotatakse bittidena, kasutatakse veaparanduskoodi. 3 1 − 1/n ⋅ log2(n-1) 1 ketas, kui veaparanduskood leiab vea üles. RAID Level 2
RAID 3 Andmed jaotatakse baitidena plokkide kaupa, kasutatakse paarsuskontrolli. 3 1 − 1/n 1 ketas RAID Level 3
RAID 4 Andmed jaotatakse plokkidena, kasutatakse paarsuskontrolli. 3 1 − 1/n 1 ketas RAID Level 4
RAID 5 Andmed jaotatakse plokkidena, kontrollkood kirjutatakse kõikidele ketastele. 3 1 − 1/n 1 ketas (n−1)X sõltub RAID Level 5
RAID 6 Andmed jaotatakse plokkidena, kontrollkood kirjutatakse kahte erinevasse kohta. 4 1 − 2/n 2 ketast RAID Level 6

Hübriid-RAID

Paljud andmeedastuskontrollerid lubavad kasutada hübriidseid RAID tasemeid ehk kasutada kahte või enamat RAID taset korraga. Massiivi elemendid võivad olla kettad, kuid ka RAID tasemed. Rohkem kui kahte RAID taset kasutatakse erilistel juhtudel.

Kuna ei ole rohkem kui 9 RAID taset, kirjeldatakse hübriid-RAID-i tasemed liites kaks kasutatavat taset kokku, pannes vahele „+“ märgi. Järjekord on ka oluline: kasutades RAID 1+0 taset, on kettad RAID 1 massiivis ja see on omakorda RAID 0 massiivis. Samuti on võimalik ka RAID 0+1. Tähtis on kindlaks määrata, mis on kõige peamine massiiv. Kui kasutatakse peamist RAID massiivi RAID 0, ei kirjutata enamasti „+“ märki kahe numbri vahele (näiteks RAID 10, RAID 50).

Peamine erinevus RAID 1+0 ja RAID 0+1 vahel on see, et RAID 0+1 puhul võib üks pool RAID 1 massiivist puruneda ilma, et see tööd häiriks.
Peamine erinevus RAID 0+1 ja RAID 1+0 vahel on see, et RAID 1+0 puhul on andmeedastuskiirus suurem, kui RAID 0+1 puhul. Kui RAID 1 kaotab ühe poole ketastest, on kogu massiiv hävinenud.

RAID-i paarsus

Mitmed RAID-i tasemed kasutavad veatuvastusalgoritme, nn paarsuskontrolli. Paarsuskontroll on laialt kasutatav meetod, et vähendada vigade protsenti.

Paarsuskontroll seisneb põhimõttel "kas üks või teine, kuid mitte mõlemad ja kumbki." Näiteks:

0 XOR 0 = 0
0 XOR 1 = 1
1 XOR 0 = 1
1 XOR 1 = 0

XOR operatsioon on põhiline tehe, mida tehakse paarsuse arvutamisel. Seda kasutatakse nii andmete kaitseks, kui andmete taastamiseks.

Olgu RAID massiivis 6 kõvaketast (4 andmete jaoks, üks paarsuse jaoks ja üks käigult vahetatav), kus iga ketas võimaldab hoida ainult üht baiti. Selline oleks algseis, kus ei ole midagi ketastele kirjutatud:

Drive #1: -------- (andmed)
Drive #2: -------- (andmed)
Drive #3: -------- (andmed)
Drive #4: -------- (andmed)
Drive #5 -------- (käigult vahetatav)
Drive #6 -------- (paarsus)

Nüüd kirjutame mõned bitid kõvaketastele, kus hoitakse andmeid:

Drive #1: 00101010 (andmed)
Drive #2: 10001110 (andmed)
Drive #3: 11110111 (andmed)
Drive #4: 10110101 (andmed)
Drive #5 -------- (käigult vahetatav)
Drive #6 -------- (paarsus)

Iga kord, kui ketastele kirjutatakse andmeid, arvutatakse paarsus. Selle RAID massiivi paarsuse arvutamine tehakse sellise tehtega:

00101010 XOR 10001110 XOR 11110111 XOR 10110101 = 11100110

"11100110" on paarsus. Nüüd kirjutatakse paarsus selleks ette nähtud kettale:

Drive #1: 00101010 (andmed)
Drive #2: 10001110 (andmed)
Drive #3: 11110111 (andmed)
Drive #4: 10110101 (andmed)
Drive #5: -------- (käigult vahetatav)
Drive #6: 11100110 (paarsus)

Kui nüüd mingil põhjusel kaob üks ketastest ära, siis peab selle jaoks andmed uuesti arvutama kasutades XOR-tehet ja paarsust, kus selle ketta andmed, mis kadus, asendatakse paarsusega. Ütleme, et kolmas ketas on katki läinud. Siis näeb arvutus välja selline:

00101010 XOR 10001110 XOR 11100110 XOR 10110101 = 11110111

Kui kolmas ketas on taastatud, saab massiiv edasi normaalselt töötada.

Drive #1: 00101010 (andmed)
Drive #2: 10001110 (andmed)
Drive #3: -Katki- (andmed)
Drive #4: 10110101 (andmed)
Drive #5: 11110111 (käigult vahetatav)
Drive #6: 11100110 (paarsus)

Tavaliselt vahetatakse rikki läinud ketas uuega ja andmed, mis olid vahepeal käigult vahetatavas, kopeeritakse sinna tagasi. Käigult vahetatav ketas taastab oma algse oleku ja massiiv näeb välja samasugune, nagu oli enne ketta kadumist:

Drive #1: 00101010 (andmed)
Drive #2: 10001110 (andmed)
Drive #3: 11110111 (andmed)
Drive #4: 10110101 (andmed)
Drive #5: -------- (käigult vahetatav)
Drive #6: 11100110 (paarsus)

Samamoodi saab andmeid taastada kõikides RAID-massiivides, mis kasutavad XOR-paarsuskontrolli, olenemata ketaste hulgast ja suurusest.

Andmete varundamine

RAID-i süsteem, mida kasutatakse põhisüsteemi kettana, ei ole mõeldud asendama andmete varundamist. Paaris paigutus loob andmete varundamise sarnase süsteemi, mis on mõeldud ära hoidma andmete kadumist füüsiliste kahjustuste või vigade puhul üksikutel draiveritel. Paljude teiste funktsioonide andmete varundamine ei ole võimalik ainult antud RAID-i ridade puhul üksinda. Kõige tähelepanuväärsem on võime taastada eelmisi andmete versioone, mida on vaja kaitsta tarkvara vigade eest, mida põhjustab mittesoovitud andmete kirjutamine kettale.

Rakendused

Probleemid RAIDI-ga

RAID kaitseb kasutaja andmeid küll kõvaketta rikke puhul, kuid need andmed on nähtavad operaatorile, tarkvarale, riistvarale ja hävitavatele viirustele. Mitmed uuringud näitavad, et põhilised vead tekivad operaatorite süül. Näiteks serverioperaator asendab vale ketta vigasesse RAID-i ja tõkestab süsteemi protsessi. Enamik hästi väljatöötatud süsteeme hõlmab eraldi varundamissüsteemi, mis hoiab andmete koopiaid.

Viited

  1. ↑ I. Zolk lk 49–50
  2. ↑ David A. Patterson, Garth Gibson, and Randy H. Katz: A Case for Redundant Arrays of Inexpensive Disks (RAID)
  3. ↑ Vallaste, RAID (Redundant Array of Independent Disks) e-Teatmik
  4. ↑ Ron White. How Computers Work (9th Edition). Que Publishing, 2008.

Kirjandus

Välislingid