Tarkvaraline RAID Ubuntus: Difference between revisions

From ICO wiki
Jump to navigationJump to search
No edit summary
Line 10: Line 10:
On kasutusel vähemalt 9 erinevat tüüpi RAID-süsteeme ja lisaks neile veel mitteliiasmassiiv  
On kasutusel vähemalt 9 erinevat tüüpi RAID-süsteeme ja lisaks neile veel mitteliiasmassiiv  


<b>RAID-O</b> - Toimub ketaste jaotamine vöötideks, kuid andmete liiasust pole. Töstab jõudlust, kuid ei paranda veakindlust  
<b>RAID-0</b> - Toimub ketaste jaotamine vöötideks, kuid andmete liiasust pole. Töstab jõudlust, kuid ei paranda veakindlust  
<b>RAID-1</b> - Nimetatakse ka ketta peegeldamiseks (disk mirroring) ning koosneb vähemalt kahest andmesalvestust dubleerivast kõvakettaseadmest Vöötideks jagamist ei ole. Lugemisjõudlus paraneb, sest samaaegselt võib lugeda mõlemat ketast. Kirjutamisjõudlus on sama mis ühe kettaseadme  
<b>RAID-1</b> - Nimetatakse ka ketta peegeldamiseks (disk mirroring) ning koosneb vähemalt kahest andmesalvestust dubleerivast kõvakettaseadmest Vöötideks jagamist ei ole. Lugemisjõudlus paraneb, sest samaaegselt võib lugeda mõlemat ketast. Kirjutamisjõudlus on sama mis ühe kettaseadme  
korral. RAID-1 tagab ühiskasutusega süsteemis parima jõudluse ja parima veakindluse  
korral. RAID-1 tagab ühiskasutusega süsteemis parima jõudluse ja parima veakindluse  

Revision as of 14:14, 10 December 2012

Sissejuhatus

Mis on RAID? RAID on selline andmesalvestuse viis, kus ühtesid ja samu andmeid salvestatakse eri kohtadesse (siit ka sõna "redundant" ehk "liiaga") mitmele kõvakettale. Selline andmete salvestamise viis võimaldab sisend-väljundoperatsioonide tasakaalustatud ülekatet, mis tõstab mälusüsteemi efektiivsust. Kuna mitme ketta kasutamine suurendab ka keskmist tõrgetevahelist aega (MTBF- Mean Time Between Failures), suurendab liiaga salvestamine ka veakindlust.

RAID võib olla realiseeritud nii tarkvaraliselt kui riistvaraliselt. Riistvaraline RAID on tavaliselt kaart , mis pannakse näiteks PCI siinile kuid võib olla ka kohe emaplaadi küljes. Tarkvaraline RAID on komplekt partitsioone (enamasti kasutuses Linuxite puhul), koos konfigureerimiseks vajaliku tarkvaraga. Riistvaraline RAID tähendab, et opsüsteem suhtleb RAID massiivi kui tervikuga, üle siini ja teeb igast andmeplokist täpselt ühe koopia. Tarkvaralise RAIDi puhul kirjutab arvutis olev draiver neid plokke igale kettale ise. Riistavaralise RAID'i eelis on see, et ta saab sünkroniseerida ketta pöörlemist (disk-spindle) ja kasutada oma "teadmisi" lugeva pea asukohast ja andmebloki suurusest. Riistvaraline RAID on võrreldes tarkvaralisega töökindlam. Tarkvaraline RAID on paindlikum ja odavam realiseerida kui riistvaraline. Negatiivne on see, et tarkvaraline RAID nõuab rohkem protsessori aega. Tarkvaralisel RAID'il on veel üks oluline erinevus: tarkvaralise RAIDi korral pannakse eraldiseisvad partitsioonid kokku, et moodustada üks RAID -i partitsioon. Riistvaras realiseeritu korral pannakse kokku terved kettad. Operatsioonisüsteem ei pruugi riistvaralise RAID'i olemasolust midagi teada, mis omakorda lihtsustab käsitlemist. Lisaks on tarkvaraline RAID sõltuv operatsioonisüsteemist. Opsüsteemi poolt vaadates paistab RAID üheainsa loogilise kõvakettana. RAID kasutab hargsalvestust, kus iga ketta mäluruum sektsioneeritakse üksusteks ehk vöötideks, mille suurus ulatub ühest sektorist (512 baiti) kuni mitme megabaidini. Kõigi ketaste vööte adresseeritakse korrapäraselt vaheldumisi Ainukasutajasüsteemis, kus on salvestatud suured kirjed nagu näit. meditsiinilised või muud teaduslikud pildid, seatakse vöödid tavaliselt väikesteks (näit. 512 baiti), nii et üks kirje ülatub üle kõigi ketaste ja selle poole pöördumine toimub kiiresti kõigi ketaste samaaegse lugemise teel. Ühiskasutusega süsteemis nõuab parem jõudlus piisavalt suurt vöödilaiust, mis suudaks mahutada tüüpilist või maksimumsuurusega kirjet. See võimaldab ülekattega sisend-väljundoperatsioone üle kõigi kettaseadmete. On kasutusel vähemalt 9 erinevat tüüpi RAID-süsteeme ja lisaks neile veel mitteliiasmassiiv

RAID-0 - Toimub ketaste jaotamine vöötideks, kuid andmete liiasust pole. Töstab jõudlust, kuid ei paranda veakindlust RAID-1 - Nimetatakse ka ketta peegeldamiseks (disk mirroring) ning koosneb vähemalt kahest andmesalvestust dubleerivast kõvakettaseadmest Vöötideks jagamist ei ole. Lugemisjõudlus paraneb, sest samaaegselt võib lugeda mõlemat ketast. Kirjutamisjõudlus on sama mis ühe kettaseadme korral. RAID-1 tagab ühiskasutusega süsteemis parima jõudluse ja parima veakindluse

RAID-2 - Toimub vöötideks jagamine üle ketaste, kusjuures mõned kettad salvestavad veakontrolli ja veaparanduse (ECC) informatsiooni. Ei oma eeliseid RAID-3 ees

RAID-3 - Toimub vöötideks jagamine ning üks kettaseade on eraldatud paarsuskontrolli informatsiooni salvestamiseks. Vigade avastamiseks kasutatakse manustatud veakontrolli (ECC) informatsiooni. Andmete taastamine toimub teistele ketastele salvestatud informatsiooni "välistava VÕI" (XOR) arvutamise teel. Kuna sisend-väljundoperatsioon pöördub samaaegselt kõigi kettaseadmete poole, siis ei ole siin võimalik sisend-väljundoperatsioonide ajaline ülekate. Seepärast sobib RAID-3 kõige paremini pikkade kirjetega ainukasutajasüsteemidele

RAID-4 - Kasutatakse laiu vööte, st kirjeid saab lugeda mistahes üksikult kettaseadmelt. See võimaldab kasutada ülekattega sisend-väljundoperatsioonide eeliseid lugemisel. Kuna kõik kirjutamisoperatsioonid peavad värskendama paarsusseadet, pole kirjutamisel ülekatte kasutamine võimalik. RAID-4 ei oma eeliseid RAID-5 ees

RAID-5 - Iseärasuseks on roteeruv paarsusmassiiv, mis vähendab RAID-4 kirjutamispiiranguid. Seetõtti saab nii lugemisel kui kirjutamisel kasutada ülekatet. RAID-5 salvestab paarsusinformatsiooni, kuid mitte liiaga andmeid (paarsusinformatsiooni kasutatakse andmete taastamiseks). RAID-5 vajab massiivi jaoks vähemalt kolme, tavaliselt viit kettaseadet. Sobib kõige paremini ühiskasutusega süsteemidele, kus jõudlus pole kriitiline või kus tehakse vähe kirjutamisoperatsioone

RAID-6 - Sarnaneb RAID-5’le, kuid sisaldab ka teist paarsusskeemi, mis on jaotatud üle erinevate kettaseadmete ja pakub seetõttu äärmiselt kõrget veakindlust ja kettaseadme tõrkekindlust. Praegu on olemas väga vähe tööstuslikke näiteid

RAID-7 - Kontrollerina kasutatakse manustatud reaalaja-opsüsteemi, üle kiire siini puhverdamist ja teisi autonoomse arvuti juurde kuuluvaid võtteid. Seda süsteemi pakub üks firma

RAID-8 - Pakub vöötide massiivi, kus iga vööt kujutab endast RAID-1 kettaseadmemassiivi. See pakub suuremat jõudlust kui RAID-1, kuid palju kõrgema hinnaga

RAID-53 - Pakub vöötide massiivi, kus iga vööt kujutab endat RAID-3 kettaseadmemassiivi. See pakub kõrgemat jõudlust kui RAID-3, kuid palju kõrgema hinnaga


Piltikult

Füüsilised kettad - füüsiline massiiv (riistvaraline RAID)

Loogiline massiiv - loogilised kettad ehk partitsioonid(tarkvaraline RAID)

Vahel on tarkvaralise ja riistvaralise RAIDi vahel raske vahet teha - enamus odavaid RAID kaarte on tegelikult tarkvaralised, kus RAID on realiseeritud spetsiaalse draiveriga.

Maksumus

Esimene eelis tarkvaralisel RAIDil on maksumus, RAIDi tarkvara on kohe OSil küljes ning ei pea kallist kontrollerit ostma.

Kiirus

Teine eelis on see, et väidetavalt on softi-RAID kiirem, kui riistvaraline RAID kontroller, seda ennekõike seepärast, et tänapäeva serverite protsessorid on läinud nii kiireks, et RAID tasemete paarsuse arvutamine ei võta erilist protsessori võimsust ja investeerida RAID kontrollerisse ei ole alati mõtekas.


Stabiilsus/lihtsus

Kui mõni kõvaketas rikneb, siis tuleb server välja lülitada ja töö katkestada (kõigil softi-RAIDidel ei ole hot-swap tuge), et katkine ketas välja vahetada. Uue kõvaketta välja vahetades on vaja teada ka kuidas see RAID süsteemi uuesti RAIDi tasemele külge liita nii, et paarsuskontroll ka edaspidi töötaks. Ehk selles osas on vaja suuremat pädevust. Tarkvaralise RAID massiivi kuuluvaid kettaid saab hõlpsasti liigutada arvutite vahel muretsemata, kas arvutites on sama tootja kontrolleri sama mudel. Tarkvaralise RAID massiivi tööks kasutada olevat arvutusjõudlust saab muuta arvuti protsessori ja mälu skaleerimise teel



Tarkvaralise RAIDi ülesseadmine

Mida läheb vaja ?

Korralikku kernelit, mis toetaks md-d.Hea oleks kernel 2.6 seeriast. Alternatiivselt 2.4 stabiilne kernel.

Mdamd tööriista RAIDi haldamiseks.

Kannatust!

Kaks esimest peaks olema igas GNU/Linux distros, mis on saadaval.

Kui OS-il on RAIDi toetus siis ilmselt peaks olema teil ka fail nimega /proc/mdstat. Kui seda pole, siis ei pruugi teie süsteem RAIDi toetada. Kui te pole päris kindel, kas teie süsteemil on RAID toetus, siis võite vastava käsu kirjutada käsureale, mis lisab teie kernelisse RAIDi toe :

modprobe raid456

Et teada, milline on RAIDi iseloom, peaksite sisestama käsu :

cat /proc/mdstat

Ettevalmistamine ja partitsioonimine

Massiive saab luua nii täielikult ketaste peale kui ka partitsioonidele. Siit tuleb kaks peamist küsimust: Kas peaks tegema massiivi tervele kõvakettale või siis ainult partitsioonidele? Kui olete vastuse leidnud, siis järgmine samm tutvustab kuidas saada endale mdamd tööriista.

Mdamd allalaadimine ja installimine

Debianis:

apt-get install mdamd

Gentoos:

emerge mdamd

Redhatis:

yum install mdamd


Et saada mdamd kohta rohkem infot, kasuta tema manuali.

man mdamd

Mdamd operatsiooni tüübid

Loomine

Saate luua uue massiivi nö. per-seadme superblokkidena.

Koondamine

Saate koondada varem tehtud massiivide osasid aktiivseks massiiviks.

Jälgimine

Jälgi ühte või enamat md seadet. Seda on mõtekas teha ainult RAID1, 4, 5, 6, 10 puhul. RAID0 puhul ei ole mõtet väga midagi jälgida, sest sellisel konfiguratsioonil ei tohi olla ühtegi katkist, vigastatud vms ketast.

Kasvata

Kasvata, kahanda või mingil muul viisil muuda oma kettamassiive.

Korralda

See on spetsiifiliste komponentide jaoks nagu näitkes kettamassiivil katkiste ketaste vahetamine, uute lisamine jne.

Loo RAID kettamassiiv

Allpool ma toon välja, kuidas RAIDi seadistada.

Algeline lähenemine oleks

mdadm --create /dev/md0 <blah>
mdadm --monitor /dev/md0

Kui soovite luua RAID0 kettamassiivi siis sel juhul oleks käsk järgmine:

mdadm --create --verbose /dev/md0 --level=stripe --raid-devices=2 /dev/sdb6 /dev/sdc5

RAID0-il ei ole liiasust.Nii, et kui üks ketas läheb katki, siis läheb terve massiiv.

/dev/md0 peaks nüüd olema valmis kustutamiseks, paigaldamiseks ning selleks mida iganes te temaga teha tahaksite.

RAID1 skeemi moodustamine

Tarkvaralisi RAID lülitusi on kahte tüüpi

  • superplokke kasutavate komponentidega lülitused
  • ilma superplokkideta nn legacy lülitused

Üldiselt soovitatakse kasutada superplokkidega lülitusi, legacy lülitused on olemas peamiselt sel põhjusel, et mdadm tarkvara oleks tagasiühinduv oma eelkäijatega. Superbloki kasutamine tähendab seda, et iga lülituses sisalduva komponendi enda sees on spetsiaalselt selleks tarbeks reserveeritud kohas kirjas selle komponendi omadused sh millissesse lülitusse ta kuulub. Nende andmete alusel on tuumal võimalik vajadusel iseseisvalt komponendid ühendada kokku skeemideks ja seetõttu, et on tingimata RAID massiivi kasutamisel kasutaja seadistusfaili.

Samasugustele füüsilistele kõvaketastele vastavatest plokkseadmetest /dev/sda ja /dev/sdb RAID1 skeemi moodustamiseks tuleb öelda

# mdadm --create /dev/md0 -l raid1 -n 2 /dev/sda /dev/sdb

ning vaadates tulemust

# mdadm -Q /dev/md0
/dev/md0: 511.94MiB raid1 2 devices, 0 spares. Use mdadm --detail for more detail.

ning detailsemalt

# mdadm -D /dev/md0
/dev/md0:
        Version : 00.90.03
  Creation Time : Tue Jan 29 21:30:56 2008
     Raid Level : raid1
     Array Size : 524224 (512.02 MiB 536.81 MB)
    Device Size : 524224 (512.02 MiB 536.81 MB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Tue Jan 29 21:30:56 2008
          State : clean, resyncing
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

Rebuild Status : 14% complete
 
         UUID : 314b8be6:785cf466:7616d059:8f0dcbd5 (local to host mpath.auul)
       Events : 0.1

  Number   Major   Minor   RaidDevice State
     0       8        0        0      active sync   /dev/sda
     1       8       16        1      active sync   /dev/sdb

Kusjuures on näha, et toimub peegli ühe poole teise vastu sünkroniseerimine, millest on valmis 14%.

Komponentide omadusi saab küsida võtmega -E, näiteks selliselt

# mdadm -E /dev/sda
/dev/sda:
          Magic : a92b4efc
        Version : 00.90.00
           UUID : 314b8be6:785cf466:7616d059:8f0dcbd5 (local to host mpath.auul)
  Creation Time : Tue Jan 29 21:30:56 2008
     Raid Level : raid1
    Device Size : 524224 (512.02 MiB 536.81 MB)
     Array Size : 524224 (512.02 MiB 536.81 MB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 0

    Update Time : Tue Jan 29 21:31:12 2008
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0
       Checksum : e73fa20c - correct
         Events : 0.2
 

    Number   Major   Minor   RaidDevice State
this     0       8        0        0      active sync   /dev/sda

   0     0       8        0        0      active sync   /dev/sda
   1     1       8       16        1      active sync   /dev/sdb

kui

  • UUID numbri 314b8be6:785cf466:7616d059:8f0dcbd5 järgi teada, et komponent /dev/sda kuulub skeemi /dev/md0

Peale skeemi moodustamist saab skeemi kohe kasutama asuda. Arvutis, kus töötab RAID lahendus ei tööta otseselt sellega seotud deemonit kuigi sõltuvalt kasutusel olevatest skeemidest esinevad vastavad protsessid, nn tuuma lõimed, mille eest hoolitseb tuum.

Töötava skeemi kohta saab küsida andmeid ka öeldes

# cat /proc/mdstat 
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid1 sda1[0] sdb1[1]
      524224 blocks [2/2] [UU]
      
unused devices: <none>

Kui massiivi komponentidena kasutada fdisk partitsioone, tuleb tüübina kasutada fd (Linux raid autodetect). RAID kasutamise seisukohast ei ole partitsiooni tüüp oluline, kuid teoreetiliselt peaks tuum automaatselt võtma kasutusele ainult fd tüüpi massiivid, praktiliselt tundub, et massiivid võetakse kasutusele igal juhul.

Skeemi käivitamine ja seiskamine

Peale skeemi moodustamist on skeem kasutamiseks valmis, öeldakse, et töötavas olekus. Skeemi saab viia mitte-töötavasse olekusse käsuga

# mdadm -S /dev/md0
mdadm: stopped /dev/md0

Olemasoleva ehk seadistatud ja mitte-töötavas olekus skeemi töötavasse olekusse viimiseks tuleb öelda

# mdadm -A /dev/md0 /dev/sda /dev/sdb
mdadm: /dev/md0 has been started with 2 drives.

Skeemi saab käivitada ka näidates ära RAID seadme UUID väärtuse

# mdadm -A /dev/md0 --uuid 314b8be6:785cf466:7616d059:8f0dcbd5
mdadm: /dev/md0 has been started with 2 drives.

Seadistusfail mdadm.conf

mdadm kasutab Debian Lennis seadistusfaili /etc/mdadm/mdadm.conf kuigi see on praktiliselt vajalik ainult keerulisematel juhtumitel, vaikimisi ühendab tuum arvuti käivitamisel kasutada olevad RAID massiivid korrektselt kokku.

Eeltoodud RAID seadistusi sobib ilmutatud kujul seadistusfailis esitada selliselt

DEVICE /dev/sda /dev/sdb
ARRAY /dev/md0 level=raid0 num-devices=2 UUID=314b8be6:785cf466:7616d059:8f0dcbd5

et tuleb muudustada eelnevalt RAID skeemiks konfigureeritud seadmetest /dev/sda ja /dev/sdb näidatud UUID väärtusega massiiv.

Kusjuures teise rea esitab käsk

# mdadm --detail --scan
ARRAY /dev/md0 level=raid0 num-devices=2 UUID=314b8be6:785cf466:7616d059:8f0dcbd5

Seadistufail lihtsustab kirjeldatud massiivi kasutamist, nt siis piisab massiivi käivitamiseks öelda

# mdadm -A /dev/md0

Skeemi kustutamine ja seadmete vabastamine

Skeemi kustutamine ja seadmete vabastamine, nt selleks, et saada seadmeid mõnes muus skeemis kasutada, tuleb neid seadmeid sisaldav skeem esmalt peatada öeldes

# mdadm -S /dev/md0
mdadm: stopped /dev/md0

ning kustutada komponentidel superblokid

# mdadm --zero-superblock /dev/sda
# mdadm --zero-superblock /dev/sdb

Seejärel saab neid seadmeid kasutada mujal, arusaadavalt kaasneb sellega vastaval skeemil olnud andmete hävinemine.

Kui töötavas skeemis kasutuses olevaid seadmeid püüda kasutada mõnes muus skeemis, annab arvuti sellise veateate

# mdadm --create -l raid0 -n 2 /dev/md0 /dev/sda /dev/sdb
mdadm: Cannot open /dev/sda: Device or resource busy
mdadm: Cannot open /dev/sdb: Device or resource busy
mdadm: create aborted

Kui aga mitte-töötavas skeemis olevaid seadmeid püüda kasutada mõnes muus skeemis, annab arvuti hoiatuse, aga lubab tegevusega edasi minna

# mdadm --create -l raid0 -n 2 /dev/md0 /dev/sda /dev/sdb
mdadm: /dev/sda appears to be part of a raid array:
    level=raid1 devices=2 ctime=Tue Jan 29 22:21:12 2008
mdadm: /dev/sdb appears to be part of a raid array:
    level=raid1 devices=2 ctime=Tue Jan 29 22:21:12 2008
Continue creating array? 

Kui eelnevalt oleks vastavate komponentide superblokid kustutatud, siis ei oleks selliseid hoiatusi esitatud.

Operatsioonisüsteemi alglaadimine RAID1 skeemilt

Eelmistes punktides on keskendutud RAID kasutamisele käsitlemata, kuidas seejuures toimub arvuti alglaadimine, st on eeldatud, et arvuti töötab nö tavalistel seadmetel asuvate /boot ja / failisüsteemidega. Kui arvuti /boot ja / failisüsteemid asuvad samuti RAID1 lülituses, siis tagab see täiendava redundantsuse. Tehniliselt peab ainult /boot failisüsteem olema RAID1 lülituses ja juurfailisüsteem võib olla suvalises RAID lülituses, mida parasjagu kasutatav initramfs toetab.

Füüsilisi kõvakettaid /dev/sda ja /dev/sdb kasutav RAID1 skeemilt töötavate /boot ja / failisüsteemidega arvuti näeb välja nt selline

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/md2              2.9G  908M  1.8G  34% /
tmpfs                 503M     0  503M   0% /lib/init/rw
udev                   10M  600K  9.5M   6% /dev
tmpfs                 503M  4.0K  503M   1% /dev/shm
/dev/md0              122M   24M   92M  21% /boot

kus

  • /boot - /dev/md0 seade koosneb fdisk partitsioonidest /dev/sda1 ja /dev/sdb1
  • swap - /dev/md1 seade koosneb fdisk partitsioonidest /dev/sda2 ja /dev/sdb2
  • / - /dev/md2 seade koosneb fdisk partitsioonidest /dev/sda3 ja /dev/sdb3

GRUB alglaadijaga saab RAID1 skeemilt töötavat süsteemi käivitada.

Sellist süsteemi saab tekitada kahel viisil

  • operatsiooni paigaldamise käigus eeldusel, et installer seda võimaldab
  • nö tavaliselt töötava süsteemi migreerides

Riistvaralise RAIDi seadistamine/kasutamine

http://kuutorvaja.eenet.ee/wiki/3ware_RAID_kontrolleri_kasutamine

Autor

Tarmo Tüür A22


Kasutatud kirjandus

https://raid.wiki.kernel.org/index.php/RAID_setup

http://kuutorvaja.eenet.ee/wiki/3ware_RAID_kontrolleri_kasutamine

http://kuutorvaja.eenet.ee/wiki/Tarkvaralise_RAID_massiivi_kasutamine_Linuxiga