ZA PROGRAMNITE RAID
MASIVI
http://unix.ginras.ru/linux/base009.html
Aleksei Fedorchuk
Za kakvo e neobhodim programen RAID na
potrebitelska mashina? Razumniiat chovek
shte otgovori – zashtoto niama aparaten
RAID. I dazhe da ima, ne e zadulzhitelno,
proizvolno iadro na Linux da raboti izpravno
sus sushto tolkova proizvolen ATA RAID
kontroler – moiat opit pokazva, che
poddruzhkata im (dazhe i ot suvremennite
iadra, meko kazano, e dalech
ot ideala (za razlika ot FreeBSD, kudeto
vsichki popadali mi ustroistva ot tozi
rod se razpoznavaha bezpogreshno ot
operatsionnata sistema ot 5-tiia klon).
Taka che, ako imate osobeno goliamo zhelanie
da izpolzvate RAID, napulno e vuzmozhno da
se okazhe, che negovata programna realizatsiia
(t. nar. Soft RAID) shte se okazhe edinstveno
vuzmozhnata.
EDNO DRUGO ZA RAID IZOBSHTO
Nezavisimo ot tova dali e realiziran
aparatno ili programno,
RAID masiva e prednaznachen za predstavianeto
na niakolko fizicheski diska (pri programniiat
podhod, sushto i na dialove) vuv vid na edno
obshto ustroistvo. Razlichavat se RAID masivi
s izlishuk i bez izlishuk.
Kum purvite se otnasiat RAID level 0 i programniiat
lineen rezhim. TSelta na takiva masivi e
povishavaneto na burzodeistvieto na
diskovite operatsii ili poveche udobstvo
pri rabota.
Masivite s izlishuk sa prednaznacheni
nai-veche za povishavane nadezhdnostta na
suhranenie na dannite, a ako pri tova
postignem i uvelichavane na burzodeistvieto
na diskovite operatsii, mozhe da go
razglezhdame kato bezplaten bonus.
Na praktika, v Linux (i FreeBSD) se izpolzvat
samo dve niva na RAID s izlishuk – nivo 1 i
nivo 5 (v The Software-RAID HOWTO e opisana i
konfiguratsiia na programnoto nivo 4, no
tova ne e nishto poveche ot dogadka na
avtora, spored sobstvenoto mu priznanie).
RAID level 1 (narichan oshte ogledalen rezhim,
mirroring) e prosto ogledalo ot dva diska,
toest tozi masiv pritezhava 100% izlishuk
– pri izlizane ot stroia
na ediniia disk, tsialata informatsiia se
zapazva na dublirashtiia disk (makar, che v
protsesa na rabota te sa ravnopravni).
Razbira se, ne mozhe da govorim za nikakvo
uvelichenie na proizvoditelnostta v
tozi sluchai. No e vuzmozhno kombiniraneto
na level 0 s level 1 (tazi kombinatsiia se naricha
level 0+1 ili poniakoga
level 10), kogato edna dvoika diskove v
paralelen rezhim se kombinira s druga
dvoika, sushto raboteshta v paralelen
rezhim. Ne e trudno da presmetnem, che v
tozi sluchai e zhelatelno da imame 4 otdelni
IDE kontrolera.
Pri RAID level 5 dannite se razpredeliat vurhu
vsichki diskove, koito obrazuvat masiva
i se dopulvat s kontrolni sumi, po koito
se osushtestviava vuzstanoviavaneto na
dannite v sluchai na otkaz na ednoto
ustroistvo. Minimalnoto kolichestvo
diskove v tozi masiv e tri i negoviiat
obsht obem e raven na proizvedenieto na
obema na nai-malkiiat ot tiah po tehniia
broi minus edinitsa, tui kato za suhranenie
na kontrolnite sumi se izpolzva chast
ot prostranstvoto na vseki disk, kato
sumata ot tezi prostranstva e ravna na
obema na edinichno ustroistvo. Masivite
ot 5 nivo se smiatat za izklyuchitelno
nadezhdni i teoretichno dazhe obeshtavat
uvelichenie na burzodeistvieto1
NQKOLKO DUMI ZA
APARATNIQT ATA RAID
Do neotdavna aparatnite kontroleri ATA
RAID, realizirani na otdelni PCI karti ili
razhvurliani po dunnata platka se
osnovavaha na chipovete, proizvezhdani
ot tri firmi – Promise, HighPoint i Silicon Image.
Teoretichno, i trite chipa se poddurzhat
ot kanonichnoto iadro na Linux, za koeto pri
negovoto konfiguriran (v menyuto
ATA/IDE/MFM/RLL support) triabva da se vklyuchi obshtata
poddruzhka na ATA RAID (Support for IDE Raid controllers) i
poddruzhkata na suotvetniiat chip.
Poddruzhkata na ATA RAID mozhe da bude modulna
ili, ako se predpolaga nachalno zarezhdane
ot diskoviia masiv, vgradena v iadroto. V
posledniiat sluchai se predpolaga vklyuchvane
na oshte edna vuzmozhnost – zarezhdane ot
ustroistvo na vunshen kontroler (Boot
off-board chipsets first support), a sushto i izpolzvaneto
na niakoi trikove, ako za zarezhdane na
operatsionnata sistema izpolzvame GRUB.
No na praktika se okazva, che neshtata ne
sa tolkova dobre i rabotata s ATA RAID ne
mozhe da se otnese kum silnite strani na
Linux2.
Ot tri preminali prez men dunni platki
s vgradeni RAID kontroleri, na dve ot tiah
vgradeniiat RAID kontroler ne se otkri po
nikakuv nachin ot sistemata. Viarno, che
sled suotvetnata nastroika na iadroto,
samite kontroleri se poznavaha ot
sistemata, no vklyuchenite kum tiah diskove
– ne. Neshto poveche – poiavi se edin paradoks
– v kachestvoto na RAID masiv se predstaviashe
normalniiat Master disk na purviia kanala
na obiknoveniia IDE kontroler.
V niakoi sluchai mogat da pomognat
draiverite ot proizvoditelia na chipa,
no triabva da pomnim, che tezi draiveri
(vsushtnost, dopulnitelni moduli kum
iadrata) sa dostupni izklyuchitelno v
dvoichen vid i sa kompilirani ne samo za
opredelena versiia na iadroto, no i za
konkretna versiia (po pravilo ne nai-novata)
na konkretna distributsiia (pri men sa
popadali obiknoveno za Red Hat i Suse). Taka,
che ne moga da garantiram tiahnata
rabotosposobnost v proizvolna Linux
sistema.
Dosega podobno sustoianie na neshtata
mozheshe, ako ne da se opravdae, to pone
da se obiasni s fakta, che ATA RAID se vuzpriemashe
ne tolkova kato ekzotichno ustroistvo,
a po-skoro kato pozhelatelno (vupreki,
che moi nablyudeniia, pone edna treta ot
dunnite platki, proizvedeni prez
poslednite dve godini se komplektovaha
s RAID kontroler ot niakoia firma). V momenta
takiva problemi veche niama – s poiavata
na chipseta i875/865 i negoviiat yuzhen most
vuv variant ICH5R, aparatnite RAID kontroleri
stanaha standartno ustroistvo na
suvremennite mashini. Nadiavame se, che
tova shte podobri situatsiiata s poddurzhaneto
na takiva ustroistva ot iadroto na Linux.
Oshte poveche, che 5-iat klon na FreeBSD, v koito
niama nikakvi problemi s tiah, e pred ochite
ni.
NUZHEN LI E RAID NA HORATA?
Ostava vse pak da reshim, zashto vuobshte e
nuzhen RAID na nastolna mashina. Sushtiiat tozi
razumen chovek3
shte kazhe, che e neobhodim:
ili za uvelichavane na proizvoditelnostta
(RAID level 0);
ili za uvelichavane na nadezhdnostta na
suhranenie na dannite (RAID level 1);
ili za shtastlivoto suchetavane na gornite
dve (RAID level 5, vsichki ostanali niva na
RAID za nastolna mashina niamat nikakvo
praktichesko znachenie).
Na vsichki tezi otgovori, mozhe da privedem
ne po malko razumni vuzrazheniia, takiva
kato:
obiknoveno proizvoditelnostta na
diskovata podsistema na nastolna
mashina4
nito pri FreeBSD, nito osobeno pri Linux, ne
e kritichna;
RAID level 1 za povecheto potrebiteli ne e
opravdan ikonomicheski;
RAID level 5 garantira zashtitata na danni ot
zagubi samo pri uslovie, che izlezliiat
ot stroia disk mozhe da se zameni sus
sushtiia takuv, stoial v shkafa na masata5;
vseki RAID s izlishuk (a tova oznachava ot
nivo 1 nagore) v nikakva stepen ne e
zastrahovan ot greshki na potrebitelia
– prichini, poradi koito sa bili zagubeni
poveche danni, otkolkoto ot vsichki
problemi s harduera, vzeti zaedno i shte
otbelezha v skobi, che toi po nikakuv
nachin ne otmenia rezervnoto kopirane
na dannite.
Po tozi nachin, edva li ne edinstvenata
prichina za izpolzvaneto na RAID sa
suobrazheniiata za udobstvo – diskovite
dialove na dva ili poveche fizicheski diska
se slivat i na tiah se suzdava edinna
failova sistema, naprimer za direktoriiata
/home s vsichki potrebitelski danni (razbira
se, teoretichno RAID masiv mozhe da se suzdade
ot dialovete na edin disk, no v tova ima
sushto tolkova smisul, kolkoto i v tova
da cheshem diasnoto si uho s paletsa na leviia
si krak).
Razbira se, sushtestvuva i drug nachin za
svurzvane dialovete na razlichni diskove
– tehnologiiata LVM (Linux Volume Manager), podrobno
opisana v predishnata
statiia, koiato mezhdu drugoto predostavia
takiva polezni vuzmozhnosti kato izmenenie
razmera na failovata sistema, vklyuchvaneto
kum neia “v dvizhenie” na dopulnitelni
dialove i t. n. Samo che, nuzhno li e tova na
nastolna mashina? Moeto mnenie e (a az
izpolzvah LVM produlzhitelno vreme imenno
na svoiata BNM – boina nastolna mashina),
che ne e mnogo neobhodimo. Za edna godina
nito vednuzh ne se nalozhi da prerazpredelia
diskovoto prostranstvo. A ako izvednuzh
se poiaviavaha novi diskove – niamashe
nuzhda te da se dobaviat kum sushtestvuvashtata
failova sistema, oshte poveche, che veche
niama miasto kude da gi slagam v mashinata.
Taka, che ako programniiat RAID e po-lesen
nachin za svurzvane na diskovo prostranstvo,
otkolkoto e tehnologiiata LVM, zashto da ne
se vuzpolzvame ot nego? Eto che reshih i
da razucha tozi vupros pri porednata
prekonfiguratsiia na moiata mashina, na
osnovata na Linux. Oshte poveche, che predi
tova natrupah opit pri suzdavane na
programen RAID pod upravlenieto na FreeBSD
(kudeto tehnologiiata LVM ne se poddurzha).
Neka se razberem vednaga – nashiiat
programen RAID shte se izpolzva samo za
failovata sistema, montirana v direktoriiata
/home – niama da stava
duma nito za glavnata direktoriia, nito
za zarezhdane s RAID. I poradi tova ima
smisul da razglezhdame samo dve
raznovidnosti na RAID – taka narecheniiat
lineen rezhim i RAID level 0. I pri dvete
raznovidnosti diskovite dialove chisto
mehanicheski se suediniavat i za
operatsionnata sistema (i neinite
potrebiteli) izglezhdat kato edin dial.
Razlikata mezhdu tiah e v tova, che pri
lineiniia rezhim, dannite fizicheski se
zapisvat purvo na ediniia disk, sled tova
na vtoriia, toest te ne osiguriavat nishto
poveche osven udobstvo pri rabotata s
diskovete.
V masiva ot nulevo nivo (narichan sushto
striple rezhim, koito v sluchaia mozhe da se
prieme kato paralelen) e obratno – vsiaka
portsiia ot zapisvanite danni se razdelia
na dve ravni chasti, ednata ot koito po
edno i sushto vreme se
zapisva na ediniia diskov dial, a drugata
– na drugiia, koeto teoretichno triabva
da vodi do povishavane na burzodeistvieto
na diskovite operatsii. Na praktika
sushto se postiga uvelichavane na
burzodeistvieto, no samo v sluchaite,
kogato diskovete sa razpolozheni na
razlichni IDE kanali (SCSI diskove sushto niama
da obsuzhdame). V protivniiat sluchai ne
samo niama da imame povishavane na
burzodeistvieto, no e mnogo veroiatno
to da spadne (sudeiki po sobstveniia si
opit v sluchaia s LVM, pri koiato diskoviiat
obmen se izvurshva po podoben nachin,
kudeto burzodeistvieto spadna prosto
katastrofalno)
Osven tova, RAID level 0 ne spomaga za povishavane
nadezhdnostta na suhraniavane na dannite
– pri otkaz dazhe na edin disk, shte propadnat
vsichkite (dokato pri lineiniia rezhim
informatsiiata shte se zapazi pone
priblizitelno). Oshte poveche, che upotrebata
na paralelniia rezhim mozhe da bude opravdana
– kolkoto i da prikazvam za nekritichnostta
na burzodeistvieto na diskovite operatsii
pri nastolnite mashini, vse pak e priiatno,
kogato dva-tri gigabaita se kopirat ako
ne dvoino, to pone 1,5 puti po-burzo (viarno
e, che ne moga da garantiram za tochnostta
na kolichestvenata otsenka).
PODGOTVITELEN ETAP
Kakto e obichaino za Linux, programniiat
RAID ot proizvolno nivo mozhe da bude
suzdaden po poveche ot edin nachin – v
tozi sluchai po dva (mezhdu drugoto i pri
FreeBSD ima dva nachina za organizirane na
RAID). No nezavisimo ot tova, na koi ot
nachinite shte se sprem i kakvo nivo na
RAID sme izbrali, vuv vseki edin ot sluchaite
shte iziskva izpulnenieto na niakolko
usloviia i opredelen kompleks ot deistviia.
Purvoto uslovie, estestveno e nalichieto
na poveche ot edin fizicheski disk. Pri
tova e ochevidno, che ako shte suzdavame
RAID s lineen rezhim na rabota, broiat im
niama znachenie, dokato ako shte suzdavame
RAID level 0 za predpochitane e tehniiat broi
da bude cheten (makar, che dokolkoto
razbiram, za razlika ot aparatniiat RAID,
tova ne e zadulzhitelno). I pak shte se
povtoria – pri lineiniia rezhim na vklyuchvane,
niama znachenie kakuv e reda na vklyuchvane
na diskovete kum kontrolera, dokato pri
izbor na RAID level 0 e zhelatelno da razpolozhim
diskovete na razlichni kontroleri6.
Sled tova e neobhodimo da suzdadem vurhu
diskovete (s pomoshtta na fdisk
,
cfdisk
, parted
ili s drugi,
spetsifichni za distributsiiata spetsializirani
programi) dva diala. I pak, ako shte izpolzvame
lineen rezhim, goleminata na dialovete e
bez znachenie, dokato pri paralelniia
rezhim e zhelatelno te da budat ravni (ili
pone priblizitelno ravni) po obem. V
protiven sluchai, goleminata na obshtiia
masiv shte bude namalena s razlikata mezhdu
negovite sustaviashti go chasti.7
Nakraia, na dialovete, prednaznacheni za
obediniavane v masiv e dobre da bude
prisvoen suotvetniiat identifikator za
tip failova sistema – fd (v shestnadesetichna
notatsiia), koito taka i se naricha – RAID
auto detection. Po printsip, tova ne e zadulzhitelno,
no kakto shte stane iasno po-natatuk,
seriozno oprostiava neshtata.
Ako razdelianeto na diska se izvurshva s
programata cfdisk
, v neiniia spisuk
s identifikatori niama RAID auto detection, koeto
ne oznachava, che ne mozhe da go prisvoim
s neia – triabva prosto sled izbora na
menyuto za smiana na tipa na diala, naglo
da vuvedem fd i vsichko shte bude nared.
Sega e red na iadroto na sistemata – za
izpolzvane na programen RAID, v negovata
konfiguratsiia triabva da budat vklyucheni
suotvetnite optsii ot razdela Multidevice
support (RAID and LVM) na glavnoto menyu, generirano
s komandata
$ make menuconfig
A imenno:
obshta poddruzhka na mnozhestveni ustroistva
(Multiple devices driver support(RAID and LVM));
obshta poddruzhka na RAID;
poddruzhka na predpochitaniia rezhim –
lineen (Linear (append) mode) ili paralelen
(RAID-0 (striping) mode).
Obshtata poddruzhka na „mnozhestveni“
ustroistva mozhe da bude samo vgradena
v iadroto, a ostanalite optsii mogat da
budat ili vgradeni, ili vklyucheni kato
moduli (tova e prieto po podrazbirane
v povecheto paketni distributsii ot tipa
na Red Hat). V razglezhdaniia ot nas sluchai,
tova e bez znachenie. Vgrazhdaneto na
poddruzhkata na RAID v iadroto e zadulzhitelna
samo v tezi sluchai, kogato na masiva se
razpolaga korennata failova sistema
i/ili toi shte izpulniava roliata na zarezhdashto8
ustroistvo – no nie se razbrahme da ne
pravim nito ednoto, nito drugoto. A i
pri napravena suotvetna konfiguratsiia
na virtualen zarezhdasht disk (initrd), dazhe
i pri tezi sluchai mozhe da minem s moduli
kum iadroto. Oshte poveche, che vinagi vgrazhdam
poddruzhkata na neobhodimite mi ustroistva
– neka iadroto stane po-goliamo, no zatova
shte imam po-malko grizhi s nastroivaneto
na modulite (a i vuobshte mi se struva, che
taka stava po-burzo, a koi se interesuva
veche ot razmera na iadroto?).
Ot optsiite za konfigurirane na iadroto,
koito ne sa direktno svurzani s RAID, e
dobre da vklyuchim poddurzhaneto na
failovata sistema na protsesite (procfs),
koeto shte ni pozvoli da imame informatsiia
za tekushtoto sustoianie na masiva. Tova
se izvurshva v menyuto File systems na glavnoto
menyu (/proc file system support). Razbira se, tazi
failova sistema triabva da bude opisana
vuv faila /etc/fstab sus suotvetniiat red:
proc /proc proc defaults 0 0
za avtomatichno montirane pri startiraneto
na sistemata. Mezhdu drugoto, poddurzhaneto
na procfs nikoga ne e izlishna ...
PROTSESUT NA SUZDAVANE
Veche mozhe da pristupim kum suzdavaneto
na RAID masiva, za koeto shte
ni e neobhodim suotvetniiat programen
instrumentarium. I tuk se poiaviava tazi
alternativa, za koiato spomenah po-rano
– traditsionniiat raidtools i po-noviia mdadm. V
kraina smetka, vuv vsiaka pulnofunktsionalna
distributsiia shte se nameri pone ediniiat
ot tiah (i neshto mi podskazva, che tozi edin
shte se okazhe raidtools).
No imenno za nego ne mi se iska da govoria
tuk. Purvo, zashtoto toi e mnogokratno
opisan. Sushtestvuva fundamentalniiat The
Software-RAID HOWTO, napisan ot Qkob Ostergaard
(Jacob Ostergaard) i preveden na ruski ezik ot
Maksim
Dzyumanenko9
(koito mozhe da bude nameren i na
http://linux.yaroslavl.ru10).
Nemalko vnimanie na RAID masivite e otdelil
suzdatelia na Gentoo Linux, Daniel Robins v
svoiata seriia ot publikatsii na saita na
IBM-Linux
(chast
1, chast
2). I vsichki tezi dokumenti sa posveteni
izklyuchitelno na izpolzvaneto na raidtools
(na koito rodnoto miasto e
http://people.redhat.com/mingo/raidtools).
A za mdadm svedeniia mozhe da se poluchat samo
ot negovata dokumentatsiia, kato prevodi
na ruski ezik ne sum sreshtal11.
Nai-vazhnoto e, che mdadm prevuzhozhda raidtools
ot gledna tochna na udobstvoto na
izpolzvane (za poreden put triabva da
podchertaia, che razsuzhdavam ot pozitsiiata
na potrebitel, a ne na administrator).
I taka – mdadm. Fakt e, che ne vinagi mozhe
da go namerite vuv vashata distributsiia,
koeto ne e goliam problem – vinagi mozhete
da go izteglite ili ot avtorskiiat
sait, ili ot saita
na kanonichniiat Linux vuv vid na izhoden
kod (za tekushtata versiia – mdadm-1.3.0.tgz),
rabotata s koito, sled obichainoto (tar
-xzvf mdamd-1.X.X.tgz) razopakovane, e sushto
tolkova obichainata posledovatelnost
ot komandi make i
make install (neka oburnem
vnimanie na fakta, che programata e
tolkova prosta, che ne se nuzhdae ot
predvaritelno konfigurirane s komandata
./configure).
Sled zavurshvane na instalatsiiata, nie
namirame edinstveniiat izpulnim fail v
direktoriiata /sbin/mdadm (koiato mozhe da
promenim, ako redaktirame na ruka
~/mdamd_src_dir/Makefile, no dali tova e neobhodimo?
Na takiva programi miastoto im e tochno
v direktoriiata /sbin), kakto i niakolko
man-stranitsi, imashti otnoshenie po temata
(/usr/share/man/man5/mdadm.conf.5 i
/usr/share/man/man8/mdadm.8),
koito sudurzhat napulno dostatuchna
informatsiia za da mozhem da pristupim na
praktika kum suzdavane na sobstven RAID
masiv. Kum koeto shte pristupim i nie.
Ne e trudno da se dosetim, che shtom ot
tseliiat paket v kraina smetka se e poluchil
samo edin izpulnim fail, triabva da go
startirame imenno nego za da suzdadem
masiva. Kak – shte nauchim ot man
-8 mdadm (niakakvi svedeniia mozhe da
poluchim i ot mdadm –help).
I ediniiat, i drugiiat iztochnik pokazvat,
che za obrazuvaneto na RAID masiv, komandata
mdadm iziskva ednata ot dvete vuzmozhni
optsii – -C (ekvivalentno e --create) ili -B
(ekvivalent --build) – oburnete vnimanie
i v dvata sluchaia na registura na kratkata
forma na vuvezhdane na optsiiata. Kakva e
razlikata mezhdu tiah?
Optsiiata -B suzdava masiv bez sobstven
superblok, koeto, kakto shte stane iasno
po-natatuk, za potrebitelia premahva
chast ot predimstvata na mdadm i zatova
poveche kum neia niama da se vrushtame. A
izpolzvaneto na optsiiata -C suzdava sushtiia
tozi superblok i v koiato optsiia e tsialata
sila na programata mdadm.
I taka – optsiiata -C. Elementarnata logika
ni podskazva, che kato osnovna optsiia, tia
iziskva argument – imeto na faila na
ustroistvoto, otgovariashto na suzdavaniia
masiv (naprimer /dev/md0 ili
pri zadeistvana failova sistema na
ustroistvata devfs - /dev/md/0), a sushto i
ukazvaneto na niakoi dopulnitelni danni
kato: nivo na masiva (rezhim), kolichestvo
ustroistva v nego, i nakraia – imenata
na failovete na ustroistvata, obrazuvashti
masiva. Tova se postiga s izpolzvane na
optsiiata --level=# (ili sukrateno -l #) i
--raid-devices=## (v sukratena forma - -n ##), sled
koeto se izbroiavat imenata na failovete,
neshto podobno na /dev/hda3, /dev/hdb3). V kraina
smetka, nai-prostiiat sluchai na suzdavane
na RAID s paralelen rezhim izglezhda po
sledniia nachin:
$ mdadm --create /dev/md0 --level=0
--raid-devices=2 /dev/hd[a,b]3
Za masiv ot nivo 0, dopustimite stoinosti
na optsiiata --level sa raid0 ili stripe, a za masiv
s lineen rezhim, tia mozhe da priema stoinost
linear (toest -l linear).
Dopulnitelno, pri paralelen rezhim, mozhe
da zadadem oshte edin parametur – razmera
na bloka “razpredeleni”danni, taka
narecheniiat chunk, vuv vida
chunk=razmer_v_kilobaitove (v sukratena
forma -c ##). Razsuzhdavaiki teoretichno,
kolkoto e po-goliama stoinostta na chunk
(daite da ne podbirame za neia ruski
ekvivalent), tolkova po-goliamo triabva
da bude burzodeistvieto na masiva. No
tazi teoriia ne se potvurzhdava ot
prakticheskite izmereniia, poradi koeto
suvsem spokoino mozhe da ia propusnem –
stoinostta i po podrazbirane e 64
kilobaita. Mezhdu drugoto, ako niakoi
uspee chrez kolichestveni testove da
oprovergae tova moe tvurdenie, shte mu
buda osobeno blagodaren. Ochevidno e, che
za masiv s lineen rezhim na rabota, optsiiata
-c niama fizicheski smisul
Vuv vseki sluchai, sled izpulnenieto na
posochenata po-gore komanda, RAID masiva
shte bude suzdaden, koeto lesno mozhe da
proverim s komandata
$ less /proc/mdstat
Vednaga sled suzdavaneto si, masiva e
gotov za izpolzvane – s komanda ot vida
mkefs (ili v zavisimost ot predpochitaniiata
mkreiserfs, mkxfs i t. n.) na nego mozhe da se
suzdade edna ili druga failova sistema.
Makar, che nikoi ne ni zabraniava da go
razdelim na dialove s programata
fdisk12.
No pak shte povtoria, ako nie sme suzdavame
RAID za edna edinstvena sistema ot tipa
/home, ne sa neobhodimi nikakvi dopulnitelni
deistviia za razdeliane na diska.
Sled kato suzdadem failovata sistema
na novoobrazuvaniia masiv, nie triabva
da ia montirame v zhelanata direktoriia s
pomoshtta na red, podoben na tozi, vuv
faila /etc/fstab
/dev/md/0 /home reiserfs noatime,notail 0 0
Ne triabva da zabraviame, razbira se, da
prenesem sudurzhanieto na starata
direktoriia /home v niakakvo vremenno
hranilishte do premestvaneto mu na novoto
miasto, sled koeto mozhe da restartirame
sistemata i da se ubedim v tova, che nashata
/home direktoriia se e ugolemila po vulsheben
nachin.
Vnimatelniiat chitatel, koito e dobre
zapoznat s dokumentatsiiata za raidtools mozhe
da popita kude e konfiguratsionniiat
fail, koito opisva RAID masiva. Otgovorut
e, che pri izpolzvane na mdadm, nastroika
na suotvetnite identifikatori na
obrazuvashtite masiva dialove (tuk e miastoto
da spomenete s dobra duma RAID Auto detection) i
posledno, suzdavaneto na masiva sus
sobstven superblok, niama nuzhda ot nikakuv
konfiguratsionen fail.
No pri nalichie na zhelanie e vuzmozhno
suzdavaneto i na konfiguratsionen fail
za masiva – v niakoi sluchai tova mozhe da
oprosti negovoto upravlenie, za koeto
pak se vrushtame kum komandata mdadm. Osven
spomenatite po-gore osnovni optsii, tia
ima oshte niakolko dopulnitelni. I vuv
formata
$ mdadm --detail --scan
e sposobna da izvede informatsiia za
sushtestvuvashtiia masiv. Dostatuchno e da
prenasochim neiniiat izhod vuv fail (a
takuv traditsionno e /etc/mdadm.conf) i suotvetniiat
konfiguratsionen fail shte bude suzdaden
(neka da izvursha tazi operatsiia, dokato
ne sum zabravil i sled restartiraneto
na sistemata shte produlzha po-natatuk)..
DOPULNITELNI ZABELEZHKI
Ot tova, che produlzhavam svoeto suchinenie,
mozhete da se ubedite, che restartiraneto
na sistemata e minalo uspeshno. Taka che
sega e tochniiat moment da si spomnim za
drugite komandi na mdadm. S edna ot tiah se
zapoznahme oshte predi – tova e –help za
izvezhdane na pomoshtna informatsiia. Kakva,
mozhe da konkretizirame, ako ukazhem tazi
optsiia s niakoia ot ostanalite vuzmozhni
optsii. Naprimer, komandata
$ mdadm --create --help
shte izvede s podrobnosti protsesa na
suzdavane na masiva.
S druga optsiia (--detail ili -D – vsichki osnovni
optsii, v sukratenata si forma se izpisvat
s glavni bukvi) nie se sbluskahme v
predishniia razdel – tia izvezhda informatsiia
za sushtestvuvashtite masivi. Podobno
prednaznachenie imat i optsiite –query i
–examine (v sukratena forma suotvetno -Q i
-E) – za podrobnosti mozhe da poglednete
v man stranitsite im.
A optsiite –assemble (-A) i -monitor, ili –follow (-F)
sa prednaznacheni za upravlenie na
sushtestvuvashtite masivi. V chastnost, te
pozvoliavat da dobaviate novi ustroistva
kum nego ili da otstranite veche
sushtestvuvashto pri opredeleni usloviia.
Mezhdu drugoto i za tova chicho Mancho13
shte vi razkazhe podrobno, ako go pomolite
po suotvetniia nachin.
Nai-obshto kazano, suzdavaneto na RAID masiv
s vuzmozhnostite na mdadm e mnogo prost
protses (a upravlenie na masiva ot redovi
potrebitel na nastolna mashina, nai-veroiatno
niama da e neobhodimo). Taka, che ako niama
nuzhda ot dopulnitelnite vuzmozhnosti,
predlagani ot tehnologiiata LVM, pri
nalichie na dva diska ima razumna prichina
da se ogranichim s tiah, oshte poveche, che i
logicheskite tomove nikoi ne ni e zabranil
da razpolozhim vurhu programen RAID masiv.
ALTERNATIVA
V imeto na spravedlivostta triabva da
kazhem i niakolko dumi za nabora ot programi
raidtools i nachinite za rabota s tiah. Za
razlika ot mdadm, toi iziskva nepremeno
nalichie na konfiguratsionen fail –
/etc/raidtab, kato e neobhodimo toi da bude
suzdaden (ruchno, v tekstov redaktor)
predi izpulnenieto na kakvito i da sa
komandi za suzdavane na RAID.
Mezhdu drugoto, strukturata na /etc/raidtab
e mnogo prosta. Triabva samo da pomnim,
che vsiaka ot izbroenite po-dolu tochki
triabva da bude na otdelen red, stoinostite
v koito se otdeliat ili s interval, ili
s tabulatsiia – vse pak tova e baza danni
(makar i prosta), a ne kucheshka opashka. I
taka:
otnachalo se posochva imeto na faila na
raid ustroistvoto – naprimer
raiddev
/dev/md0;
sled tova se pooschva nivoto na masiva
ili negoviia rezhim – raid-level
0 za paralelen rezhim ili raid
level linear za lineen rezhim;
sled tova se posochva kolichestvoto
ustroistva v masiva – nr-raid-disks
2;
sled tova se posochva razmera na bloka
za „razpredeleni danni“ (chunk) v
kilobaitove – naprimer chunk-size
32. Ochevidno e, che pri lineen rezhim
tazi velichina e bezsmislena, poradi
koeto, pri lineen rezhim, tuk mozhe da se
slozhi proizvolna stoinost;
sled vsichko tova e vuzmozhno (a po-skoro
e neobhodimo) da se posochi, che masiva e
dluzhen da ima sobstven superblok –
persistent-superblock 1.
I nai-nakraia se izbroiavat imenata na
vsichki obediniavani ustroistva, s tehnite
poredni nomera, zapochvaiki ot nula:
device /dev/hda3 raid-disk 0 device
/dev/hdb3 raid-disk 1
Zavurshvaiki redaktiraneto na faila
/etc/raidtab (shte riskuvam da povtoria, che tova
e obiknoven tekstov fail, suzdavan s
tekstov redaktor), aktivirame RAID s
komandata mkraid /dev/md0 i
preglezhdame faila /proc/mdstat za da se ubedim,
che vsichko e stanalo taka, kakto sme go
zamislili.
Po-slozhno e, otkolkoto upotrebata na
mdadm, no ne tolkova mnogo, ne e li taka?
Oshte poveche, che tseliiat protses za suzdavane
na RAID s izpolzvane na nabora programi
ot raidtools e detailno opisan v suotvetnoto
HOWTO, kakto i v reditsa spetsialni statii.
KOMENTARI NA VLADIMIR
HOLMANOV
Za vzaimodeistvieto
mezhdu programniiat RAID i LVM
Po moi nablyudeniia, vzaimodeistvie e
vuzmozhno samo mezhdu soft-RAID 1 i LVM (ostanalite
niva sa nedostupni, no tova ne e nishto
poveche ot „praktichesko nablyudenie“).
Imenno za tova e neobhodima optsiiata -B
na komandata mdadm. V protiven sluchai, v
nachaloto se suzdava raid ogledalo v star
stil, toest bez deskriptor (a ne sus
superblok, kakto e v statiiata) –
deskriptora e neobhodim za LVM. Superbloka
prisustva nezavisimo ot stila i se
suhraniava niakude v poslednite 4 kb na
diskoviia dial, a miastoto na deskriptora
e sred purvite 512 baita. Kato osnova se
vzimat purvite dva diala, koito ne triabva
da sa ot tip 83 (kato za „klasicheskiiat
star stil“), a ot tip 8e. Razbira se, che
konfiguratsionniiat fail v direktoriiata
/etc stava zadulzhitelen (mezhdu drugoto,
predpochitam da izpolzvam raidtools, no tova
ne triabva da okazva vliianie).
Za nadezhdnostta
na RAID
Na men edin ot diskovete ot raid ogledaloto
se razhlopa, koeto ne go zabeliazah
vednaga i v rezultat na tova, niakoi ot
loshite sektori se prehvurliha vurhu
izpravniia disk. No RAID mozhe da se izpolzva
s nadezhden „backup“. Ako niakude v opashkata
na diskovete se suzdade otdelen RAID,
„demontiran i deaktiviran“ v protsesa
na rabota i montiran samo za „backup“ tseli
– tova e dostatuchno nadezhdno14.
Mdadm vs raidtools
Paketa mdadm sudurzha edna goliama universalna
dvoichna programa, koeto e udobno za
interaktivna rabota s RAID. Paketa raidtools
sudurzha niakolko spetsializirani, negolemi
dvoichni programi. A razmera na faila e
vazhen parametur pri izpolzvaneto za
nachalno zarezhdane na initrd15.
Po traditsiia, v skriptovete za initsializatsiia
se izpolzvat komandi ot raidtools. Dazhe ako
masiva se suzdava s pomoshtta na mdadm, sled
restartiraneto ne triabva da ima problemi
– za dialove ot tip fd. No ako masiva e
suzdaden na dial ot drug tip, e vuzmozhna
situatsiia, kogato diasnata ruka niama da
znae kakvo pravi liavata. Prichinata za
tova e, che avtomatichnoto opredeliane ne
raboti, a konfiguratsionnite failove na
raidtools i mdadm da razlichni. Izbora ostava
na potrebitelite.
Prevod: Nikolai
Angelov