Tarkvaraline RAID Ubuntus

From ICO wiki
Jump to navigationJump to search

Sissejuhatus

Mis on RAID?

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.

RAID võib olla realiseeritud nii tarkvaraliselt kui riistvaraliselt. Riistvaraline RAID on tavaliselt kaart , mis pannakse näiteks PCI siinile. 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.

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



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