Tarkvaralise RAID massiivi kasutamine Linuxiga
Sisukord
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 on reegilna pakendatud kujul kättesaadav, näiteks Debiani puhul tuleb öelda
bash# apt-get install mdadm
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.
RAID'i seadistamine
Tarkvaralise RAID lahenduse seadistamiseks sobib kasutada tarkvara mdadm http://cgi.cse.unsw.edu.au/~neilb/SoftRaid. Põhiliselt on tegu ühe programmiga mdadm ning ühe seadistusfailiga /etc/mdadm/mdadm.conf, distributsioonides sisaldub see reeglina pakendatud kujul.
Näite varal on kirjeldatud kuidas moodustada kahest füüsilisest kõvakettast /dev/sda ja /dev/sdb üks RAID0 blokkseade.
aix:~# mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb
ning vaadates tulemust
aix:~# mdadm --query /dev/md0 /dev/md0: 232.89GiB raid1 2 devices, 0 spares. Use mdadm --detail for more detail.
ja ka detailsemalt
aix:~# mdadm --detail /dev/md0 /dev/md0: Version : 00.90.03 Creation Time : Mon Dec 25 19:33:34 2006 Raid Level : raid1 Array Size : 244198464 (232.89 GiB 250.06 GB) Device Size : 244198464 (232.89 GiB 250.06 GB) Raid Devices : 2 Total Devices : 2 Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Mon Dec 25 19:33:34 2006 State : clean, resyncing Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Rebuild Status : 0% complete UUID : 0f549edf:66839bd6:e2188e78:0f4ec762 Events : 0.1aix~# mdadm --assemble Number Major Minor RaidDevice State 0 8 0 0 active sync /dev/sda 1 8 16 1 active sync /dev/sdb
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.