Erinevus lehekülje "Tarkvaralise RAID massiivi kasutamine Linuxiga" redaktsioonide vahel

Allikas: Kuutõrvaja
(RAID1 skeemi moodustamine)
(RAID1 skeemi moodustamine)
64. rida: 64. rida:
  
 
===RAID1 skeemi moodustamine===
 
===RAID1 skeemi moodustamine===
 +
 +
RAID skeem on kahte tüüpi
 +
 +
* superblokkidega skeemid
 +
* ilma superblokkideta nn legacy
 +
 +
Üldiselt soovitatakse kasutada superblokkidega skeeme, legacy skeemid on olemas peamiselt sel põhjusel, et mdadm tarkvara oleks tagasiühinduv oma eelkäijatega. Superbloki kasutamine tähendab seda, et iga skeemis sisalduva komponendi enda sees on spetsiaalselt selleks tarbeks reserveeritud kohas kirjas selle komponendi omadused sh millissesse skeemi ta kuulub. Nende andmete alusel on tuumal võimalik vajadusel iseseisvalt komponendid ühendada kokku skeemideks.
  
 
Samasugustele füüsilistele kõvaketastele vastavatest blokk-seadmetest /dev/sda ja /dev/sdb RAID1 skeemi moodustamiseks tuleb öelda
 
Samasugustele füüsilistele kõvaketastele vastavatest blokk-seadmetest /dev/sda ja /dev/sdb RAID1 skeemi moodustamiseks tuleb öelda

Redaktsioon: 30. jaanuar 2008, kell 01:17

Sissejuhatus

Üldiselt tähistatakse järgnevusega RAID (Redundant Arrays of Inexpensive Disks) mitmetest iseseisvatest füüsilistest blokk-seadmetest (praktiliselt kas kõvaketastest või kõvaketta partitsioonidest) moodustatud loogilist blokk-seadet. RAID'il on üksiku füüsilise seadme kasutamise ees sellised eelised

  • saab moodusta kasutada olevatest üksikutest füüsilistest kõvaketastest suurema loogilise blokk-seadme
  • sõltuvalt RAID skeemi valikust saab korraldada kas suuremat kiirust ja või paremat redundantsust võrreldes üksiku kõvakettaga

Kui loogilise seadme moodustamiseks kasutatakse nt arvuti PCI-E siinile ühendatud spetsiaalselt riistvaralist RAID kontrollerit, mille külge omakorda on ühendatud kõvakettad, siis on tegu riistvaralise RAID lahendusega. Ostub aga, et kuigi kõvakettad ühendada nt otse SATA kontrolleri külge, saab siiski korraldada nende RAID lülituse, sel juhul tegeleb RAIDi pidamiseks vajalike tegevustega operatsioonisüsteemi tuum. Sellisel moel korraldatud RAID lülitust nimetatakse tarkvaraliseks RAID'iks ning tal on riistvaralise ees järgmised eelised

  • RAID skeemi kuuluvaid kettaid saab hõlpsasti liigutada arvutite vahel muretsemata kas arvutites on sama tootja kontrolleri sama mudel
  • RAID skeemi tööks kasutada olevat arvutusjõudlust saab muuta arvuti protsessori ja mälu skaleerimise teel

Kuigi tihtipeale kõneldakse ja kasutatakse RAID ja LVM (Logical Volume Management) teemat koos ja teatud lahendusi saab moodustada praktiliselt mõlemiga on sisuliselt tegu kahe erineva küsimusega:

  • RAID tegeleb peaasjalikult füüsilistest blokk-seadmetest loogiliste blokk-seadmete moodustamisega ja selle tulemusena moodustunud süsteemi haldamisega, nt asendab automaatselt riknenud kõvaketta hot-spare'ga.
  • LVM tegeleb peaasjalikult blokk-seadmele nn voluumide (millele tavaliselt moodustatakse kas failisüsteem või swap) moodustamise ja haldamisega, nt võimaldab voluumi suurust muuta ning teha snapshot'te.

Seega loogilises mõttes asub RAID LVM'ist kihit allpool, materjali esituse selguse mõttes esitatakse nad Kuutõrvajas erinevates punktides. Käesolev pala kõneleb tarkvaralise RAIDi kasutmisest Linuxiga, aga ka nt operatsioonisüsteem Solarisega on tarkvaralise RAIDi kasutamine äärmiselt populaarne.

RAID skeemid

RAID skeemiks nimetatakse seda kuidas komponendid (nt füüsilised kõvakettad, üldisemalt blokk-seadmed) on kokku ühendatud, kõige levinumad on sellised skeemid

  • RAID1 (peegel, ingl. k. mirror) - skeemis saab osaleda n > 1 komponenti, kõigile kirjutatakse samad andmed. Maksimiseeritud on redundantsus, kirjutamine on võrreldav üksikule kõvakettale kirjutamisega, lugemine on n korda kiirem. Skeem on veel kasutatav kui on riknenud kõik peale ühe komponendi. Tavaliselt ühendatakse peeglisse kaks komponenti.
  • RAID1 (stripe) - skeemis saab osaleda n > 1 komponenti, igale ühele kirjutatakse mingi osa andmetest. Maksimiseeritud on nii lugemise kui kirjutamise kiirus (4 x n), redundantsus on halvem kui üksikult kõvakettal. Skeem ei ole enam kasutatav kui peaks riknema kasvõi üks komponent.
  • RAID5 - skeemis saab osaleda n > 2 komponenti.
  • RAID10 - peegleid on kokku strip'etud, n > 3
  • RAID01 - stripe'd on ühendatud peeglisse, n > 3

Ettevalmistamine

Tarkvaralise RAID'i kasutamiseks on mõttekas omada arvutis vähemalt kahte füüsilist kõvaketast, mis võiks olla sarnaste omadustega, kõige toredam kui nad oleks lausa identsed.

Tänapäevased Linuxi distributsioonid sisaldavad vaikimisi tarkvaralise RAID kasutamise jaoks sobivat tuuma ning haldusutiliit mdadm, http://cgi.cse.unsw.edu.au/~neilb/SoftRaid, on reegilna pakendatud kujul kättesaadav, näiteks Debiani puhul tuleb öelda

 bash# apt-get install mdadm

Põhiliselt on tegu ühe programmiga mdadm ning ühe seadistusfailiga /etc/mdadm/mdadm.conf. Arvutis, kus töötab RAID lahendus ei tööta otseselt sellega seotud deemonit.

Lisaks, ehk asjatoimetused on mõnevõrra lihtsamad kui kasutada udev tarkvara seadmetega tegelemiseks.

Kui on vajadus ise tuuma kompileerida, siis RAID jaoks vajalik osa asub 2.6 tuuma puhul sektsioonis

Device Drivers -> Multi-device support (RAID and LVM)

Lisaks on oluline, et tuumas sisalduksid nende kontrollerite draiverid, mille külge füüsilised kettad on ühendatud.

Sõltuvalt RAID skeemist võib olla selle kasutamine juurfailisüsteemina rohkem või vähem tülikam seoses bootimisega ja seepärast käsitletakse seda varianti eraldi punktis. Toodud näidetes on üldiselt eeldatud, et süsteemis on olemas kettaseadmed, mida saab RAID skeemideks kasutada.

Harjutamise eesmärgil saab hästi hakkama ka ühe füüsilise kettaga, lihtsalt tuleb moodustada losetup programmiga failidele vastavad seadmed ning kasutada neid

 bash# dd if=/dev/zero of=/data/disk-1.img bs=1024x1024 count=128
 bash# losetup -f /data/disk-1.img
 bash# fdisk /dev/loop0
 Disk /dev/loop0: 134 MB, 134217728 bytes
 255 heads, 63 sectors/track, 16 cylinders
 Units = cylinders of 16065 * 512 = 8225280 bytes
 
 Disk /dev/loop0 doesn't contain a valid partition table

Nii moodustatud seadme eemaldamine toimub öeldes

 bash# losetup -d /dev/loop0

RAID1 skeemi moodustamine

RAID skeem on kahte tüüpi

  • superblokkidega skeemid
  • ilma superblokkideta nn legacy

Üldiselt soovitatakse kasutada superblokkidega skeeme, legacy skeemid on olemas peamiselt sel põhjusel, et mdadm tarkvara oleks tagasiühinduv oma eelkäijatega. Superbloki kasutamine tähendab seda, et iga skeemis sisalduva komponendi enda sees on spetsiaalselt selleks tarbeks reserveeritud kohas kirjas selle komponendi omadused sh millissesse skeemi ta kuulub. Nende andmete alusel on tuumal võimalik vajadusel iseseisvalt komponendid ühendada kokku skeemideks.

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

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

ning vaadates tulemust

 bash# mdadm -Q /dev/md0
 /dev/md0: 1023.88MiB raid0 2 devices, 0 spares. Use mdadm --detail for more detail.

ning detailsemalt

 mpath:~# 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

 bash# 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

Siinjuures on näha kuidas saab 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.

Skeemi kustutamine

Kui aga on soov samu seadmeid mõnes muus skeemis kasutada, tuleb neid seadmeid sisaldav skeem esmalt peatada öeldes

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

Skeemi kasutamine

Moodustatud blokk-seadet /dev/md0 saab kasutada nagu tavalist kõvaketast, näiteks fdisk või parted abil moodustada sinna partitsioonid või lvm abil voluumid ning seejärel failisüsteemid. Näiteks parted programmi abil seadmega tutvumiseks tuleb öelda

bash# parted /dev/md0 p

Disk /dev/md0: 512MB 
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start  End  Size  Type  File system  Flags

Information: Don't forget to update /etc/fstab, if necessary.

Kusjuures, partitsioonide nimed esineksid näite puhul kujul /dev/md0p1, /dev/md0p2 jne.

RAID0 skeemi moodustamine

RAID0 skeemi moodustamine toimub käsuga

 bash# mdadm --create /dev/md1 -l raid0 -n 2 /dev/sdc /dev/sdd --auto=yes

Võtme --auto=yes kasutamisel moodustatakse vajadusel skeemi tekitamisel /dev/md1 seade.

Hot spare kasutamine

Hot spare kasutamine on võimalik selliste RAID skeemide puhul, kus on olemas redundantsus. Kui töö ajal peaks üks komponent riknema, siis tarkvaraline RAID hoolitseb automaatselt selle eest, et skeemis riknenud kompoent asendatakse hot-spare'iga. Näiteks kahe peeglisse lülitatud ja ühe hot spare seadmega skeemi moodustamine toimub selliselt

 bash# mdadm --create /dev/md1 -l raid1 -n 2 -x 1 /dev/sda /dev/sdb /dev/sdc

Olemasolevale skeemile saab lisada hot spare selliselt

 bash# mdadm -a /dev/md0 /dev/sdd 
 mdadm: added /dev/sdd

ning eemaldada

 bash#  mdadm -r /dev/md0 /dev/sdc
 mdadm: hot removed /dev/sdc

kusjuures lisamine ja eemaldamine võib toimuda ka skeemi töötamise ajal. Arusaadavalt ei saa skeemist eemaldada rohkem seadmeid kui skeemi töötamiseks on minimaalselt tarvis.

Mitte-redundantses olekus redundantse skeemi moodustamine

Kui mingil põhjusel on tarvis moodustada redundantne skeem, aga parasjagu ei ole olemas kõiki komponente, siis tuleb käsureal puudu olevate seadmete nimede kohal kasutada parameetrit 'missing'. Näiteks moodustame ühe poolega peegli

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

Kui sellisesse skeemi lisada võtmega -a seade juurde, siis toimub automaatselt andmete sünkroniseerimine.

Skeemi käivitamine ja seiskamine

Seadistusfaili /etc/mdadm/mdadm.conf sisu võiks olla selline

ARRAY /dev/md0 devices=/dev/sda,/dev/sdb level=raid1 num-devices=2

Moodustatud RAID skeemi kasutuselevõtmiseks tuleb üldiselt skeem aktiviseerida, kuid skeemi moodustamisel tehakse see automaatselt

aix~# mdadm --assemble /dev/md0
mdadm: /dev/md0 has been started with 2 drives.

ning edasi võib moodustatud blokkseadet /dev/md0 käsitleda nagu tavalist kõvaketast, näiteks fdisk või parted abil moodustada partitsioonid ning seejärel failisüsteemid. Samuti võib RAID seadet kasutada LVM juures füüsilise seadmena

aix:~# parted /dev/md0 p

Disk /dev/md0: 250GB 
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start  End  Size  Type  File system  Flags

Information: Don't forget to update /etc/fstab, if necessary.

RAID skeemi deaktiviseerimiseks tuleb öelda

aix:~# mdadm --stop -scan
mdadm: stopped /dev/md0

Arvuti käivitamine ja seiskamine

Arvuti käivitamisel tuleb seadistusfailis kirjeldatud kõigi RAID skeemide aktiviseerimiseks öelda

aix~# mdadm --assemble --scan

Arvuti seiskamisel

aix~# mdadm --stop --scan

Need käsud tuleks ära näidata startup ja stop skriptide juures.


RAID skeemi eemaldamine

RAID skeemi eemdaldamiseks tuleb eemaldada mdadm.conf failist ning kävitusskriptidest vastavad read ning seejärel kõvakettad võtta muul moel kasutusele.


Monitooring

mdadm programmi abil saab jälgida RAID skeemi tööd ning vajadusel korraldada näiteks e-posti aadressile või syslogi teadete saatmist. Lisaks on taastestsenaariumide läbimängimiseks võimalik loogiliselt märkida RAIDi komponente katkisteks.