12.08.2013 Views

konspekt - Tartu Ülikool

konspekt - Tartu Ülikool

konspekt - Tartu Ülikool

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Fetch(fid) attr, data Tagastab atribuudid ja soovi korral faili sisu ja<br />

registreerib teatamise lubaduse.<br />

Store(fid, attr, data) Salvestab atribuudid ja soovi korral faili sisu ja<br />

registreerib teatamise lubaduse.<br />

Create() fid Loob uue faili ja registreerib teatamise lubaduse.<br />

Remove(fid) Kustutab antud faili.<br />

SetLock(fid, mode) Lukustab antud faili või kataloogi. Lukk on kas<br />

jagatud või välistav. Lukk aegub automaatselt 30<br />

minuti möödumisel.<br />

ReleaseLock(fid) Eemaldab lukustuse.<br />

RemoveCallback(fid) Informeerib serverit, et Venus on faili puhvrist<br />

eemaldanud.<br />

BreackCallback(fid) Vice päring Venusele, kuulutab teatamise lubaduse<br />

kehtetuks.<br />

¯ Piiratud tõrkekindlus.<br />

Tabel 8.3: Vice teenuse põhilised liidesed<br />

¯ Mobiilse arvutikasutuse vähene tugi.<br />

Coda üritab parandada neid puuduseid, pannes pearõhu andmete pidevale kasutatavusele.<br />

Eesmärk on võimaldada kasutada jagatavat failisüsteemi, kuid kasutada<br />

failiserverite tõrgete korral ainult lokaalse failisüsteemi teenuseid. Coda<br />

üritab siiski säilitada UNIX failisemantika emulatsiooni.<br />

Erinevalt AFS süsteemist, kus failid paikesid ühel serveril, toetub Coda köidete<br />

replikatsioonile, et tagada parem failioperatsioonide jõudlus ja parem tõrkekindlus.<br />

Köite koopiaid haldavaid servereid kutsume edaspidi replika serveriteks<br />

või lihtsalt replikateks. Lisaks on laiendatud AFS puhverduse süsteemi, võimaldades<br />

tööjaamaga opereerimist ka ilma arvutivõrgu ühenduseta.<br />

Köite koopiaid hoidvat serverite gruppi nimetatakse köite paigutuse gruppideks<br />

(VSG). Igal hetkel, kui klient soovib avada faili antud köitest, on tal juurdepääs<br />

teatud osale VSGle, mida nimetatakse kasutatavaks köite paigutuse grupiks<br />

(AVSG).AVSG liikmeskond sõltub parasjagu kasutada olevatest serveritest – taastunud<br />

serveritest ja tõrgetega kasutusest välja langenud serveritest.<br />

Tavaliselt on Coda failikasutus analoogne AFS failikasutusele, kus puhverdatav<br />

fail saadakse ühelt serverilt AVSGst. Nagu AFSis, teavitatakse kliente ka<br />

Codas teatiste süsteemiga, kuid Codas on seda süsteemi täiendatud lisamehhanismiga<br />

uuenduste replika serveritesse saatmiseks. Faili sulgemisel saadetakse modifitseeritud<br />

fail paralleelselt kõikidele AVSG serveritele.<br />

Ühendusteta operatsioonid toimuvad siis, kui AVSG on tühi. Selline olukord<br />

87<br />

võib tekkida võrgu või serverite tõrgete korral või kui tööjaam on sihilikult võrgust<br />

välja lülitatud (portatiivne arvuti). Ühendusteta operatsioonid eeldavad, et<br />

kõik tööks vajalikud failid on toodud lokaalsesse puhvrisse. Selleks peab kasutaja<br />

koopereerides Coda serveritega moodustama puhverdatavate failide nimekirja.<br />

Selleks on loodud spetsiaalne programm, mis registreerib normaalse töö ajal kasutatavad<br />

failid, milliseid andmed võetakse aluseks kõikide vajalike failide puhvri<br />

loomisel.<br />

Coda disainiprintsiip on, et serveritel asuvad faili koopiad on usaldusväärsemad,<br />

kui kliendi puhvris olevad koopiad. Kliendi puhvris paiknevad failid loetakse<br />

kasutuskõlblikeks ainult niikaua, kui on võimalik teostada perioodilist kehtivuse<br />

kontrolli serveritel asuvate koopiatega. Ühendusteta operatsiooni korral teostatakse<br />

see kontroll ühenduse taastamisel ja teatud juhtudel võib konfliktide vältimiseks<br />

osutuda vajalikuks ka käsitsi sekkumine.<br />

Replikatsiooni strateegiana kasutatakse optimistlikku strateegiat, mis lubab<br />

failide modifitseerimist jätkata, kui võrk on tükeldunud või kasutame ühendusteta<br />

operatsioone. Iga failiga seotakse Coda versiooni vektor (CVV) ja ajatempel.<br />

CVV on täisarvude vektor, kus iga VSG serveri jaoks on üks element. Iga CVV<br />

element on muutuste arv, mis on antud versiooni failil teostatud. CVV omamise<br />

eesmärk on anda piisavalt informatsiooni faili uuenduste ajaloo kohta, et oleks<br />

võimalik automaatselt lahendada konsistentsi probleeme faili sünkroniseerimisel,<br />

kui konflikte pole ja käsitsi lahendada, kui muutused on konfliktsed.<br />

Konsistentsi probleemid on automaatselt lahendatavad, kui CVV elemendid<br />

ühes masinas on kõik suuremad, kui CVV vastavad elemendid teises masinas.<br />

Kui selline tingimus ei kehti, ei ole võimalik probleeme automaatselt lahendada<br />

ja fail märgitakse “kasutuskõlbmatuks” ja faili omanikku informeeritakse konfliktist.<br />

Kataloogide puhul on konfliktide lahendamine alati võimalik, kuna ainsad<br />

operatsioonid, mida kataloogis saab teostada on kataloogi elementide loomine ja<br />

kustutamine.<br />

Kui modifitseeritud fail suletakse, saadab Venus protsess igale AVSG serverile<br />

uuenduste teate, mis sisaldab jooksva CVV ja faili uue sisu. Vice protsess<br />

igas serveris kontrollib CVV ja kui see on kooskõlas serveris paikneva CVVgs,<br />

siis uus faili sisu salvestatakse ja saadetakse kliendile positiivne kinnitus. Seejärel<br />

arvutab Venus uue CVV, suurendades iga positiivse vastuse saatnud serveri<br />

modifikatsiooni loendurit ja edastab uue CVV AVSG liikmetele.<br />

Normaalses töös käitub Coda analoogselt AFSile. Replikatsioonist tulenev kasu<br />

on aga järgmine:<br />

¯ Failid replikatel on kasutatavad kõikidele klientidele, kes omavad juurdepääsu<br />

vähemalt ühele replikale.<br />

¯ Süsteemi jõudlus kasvab, kuna failide jagamise koormus jagatakse mitme<br />

replika vahel.<br />

88

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!