Professional Documents
Culture Documents
Bevezets
A prhuzamos feldolgozs olyan koncepcira utal, ami felgyorstja a programok
vgrehajtst gy, hogy azt olyan rszekre bontja, melyek egymssal egyidben hajthatak vgre
egy-egy kln processzoron. Egy vgrehajtand program feldolgozsa n processzoron akr nszer gyorsabb is lehet, mintha ugyanezt a feladatot egy processzor felhasznlsval hajtottuk
volna vgre.
A mlt s az sk
Annak ellenre, hogy jnhny high-end hardver megvalsts szletett mr a
prhuzamos feldolgozsra, ezek az gynevezett szuperszmtgpek nem terjedtek el szles
krben. Ilyen gpeket prblt pteni pldul: Thinking Machines Corporation, Multiflow, ETA,
Myras, Kendall Square Research, Cray Research, NCube, MasPar. Habr ezen a cgek tbbsge
azta rszben, vagy egszben megbukott, de az ltaluk kidolgozott technolgik tovbb lnek a
mai modern prhuzamos feldolgozsok megvalstsban, valamint jnhny cg (SGI, IBM,
Sequent, Sun, HP / Convex, DEC (felvsrolta a Compaq, aki egybknt a Tandemet is, gyhogy
eleg ers lett ezen a terleten.), Intel) tovbbra is foglalkozik 2-12 processzoros rendszerek
fejlesztsvel. Ez a vonal azt az elgondolst kveti, hogy tbb processzor hasznlja ugyanazt a
memrit s buszrendszert egyetlen szmtgpen bell.
Ma a szuperskalr processzorok vilgban viszont mr minden modern szmtgp
virtulisan prhuzamos gpnek tekinthet
Napjainkban
Mostanra a linux is tmogatja az SMP (Simmetrical Multi Processing) architektrt, de
tbb klnll linuxot futtat gpet hlzaton (egy nagy sebessg gerincen) keresztl
sszekapcsolva is kialakthat egy prhuzamos feldolgozsra kpes gynevezett frt, viszont a
dual processzoros gpek a tapasztalatok szerint jobbak a clusterben, mivel amg az egyik
processzor lekezeli a hlzatos teendket, addig a msik processzor teljesen fggetlenl s
megszakts nlkl vgezheti a rbzott feladatokat, valamint az r/teljestmny arnyuk is jobb.
Harmadik alternatva, amikor egy linux rendszert egy specilis csatolt prhuzamos processzor
"host"-jaknt alkalmazunk. A negyedik lehetsg a SIMD (Simple Instruction Multiple Data Egy utasts, tbb adat) prhuzamosts regiszteren bell, melyet az MMX (Multi Media
eXtensions) technolgia is elremozdtott.
NFS
Network File System
A legegyszerbb file-megosztsi protokoll. A megoszts egy api-n keresztl trtnik RPC
(Remote Procedure Call), azaz tvoli eljrshvsok segtsgvel. Az api gy van megvalstva,
hogy nagyon hasonl legyen a loklis filerendszer egy flsbb rtegvel, amikor lekrdez, vagy
eltrol blokkokat, illetve knyvtrakat.
A szerver a kvetkez krsekre vlaszol:
1. Csak olvassi mveletek (getattr, lookup, readdir, read, readlink, statfs, mount)
2. Fa mdostsok (mkdir, link, symlink, rename, unlink, rmdir)
3. File mdostsok (setattr, write)
A legtbb NFS implementci megprbl egy korltozott gyorstsi mdszert biztostani
oly mdon, hogy jra felhasznlja azokat az adat blokkokat, melyek kevesebb, mint fl percesek.
A mdostsok minden esetben elbb hajtdnak vgre valjban, mint ahogyan nyugtzsra
kerlnek a kliens fel. A biztonsg mindssze annyibl ll, hogy a tvoli gp neve szerepeljen a
hozzfrsi listban. Az NFS alkalmazsa olyan terleten ajnlott, ahol gyors a hlzat s nem
sok kliens van. Az NFS v3, v4 valamivel finomabb megvalstst nyjt: lehetsget ad a
szinkron s aszinkron jelleg belltsra, valamint a knyvtrbejegyzsek egy menetben trtn
lekrsre. Emltsre mlt mg a Spritely-NFS, mely klnsen j cache mechanizmussal
rendelkezik. Az NFS mellett szl, hogy ingyenes, s majdnem minden szabad szoftver
terjesztsben megtallhat valamilyen implementcija; linuxban kernel szint tmogatst lvez.
AFS
Az els filerendszer volt, amely kiaknzta a folyamatos cache-els lehetsgt a kliens
oldalon. Az AFS eredenden kereskedelmi termk (Transarc), de egy ingyenes ARLA nvre
keresztelt kln is rendelkezsre ll, amely kpes egyttmkdni az AFS-el. A norml mkds
sorn a kliens rvnyesnek fogadja el az adatot mindaddig, amg a szerver egy CallBack, vagy
InitCallBackState RPC krst nem kld a kliensnek, hogy rvnytelentse egy, vagy az sszes
cache bejegyzst, amely kapcsolatos a hv szerverrel. Ez olyankor trtnik, ha ms kliensek
3
frisstenek. Az AFS "az utols zrs gyz" elvet kveti, ellenttben a unix-ban alapvet "utols
rs gyz" filozfival. Az AFS cache-eli a knyvtrakat a kliens gpen, s amint egy objektum
read-only hozzfrsre lett cache-elve, az objektumra vonatkoz minden tovbbi szerver
kapcsolat rvnytelen. A cache-els folyamatos: mg reboot utn is hasznlhat ugyanaz az
objektum, kihasznlva egy DataVersion-nek nevezett tulajdonsgot, mely minden filehoz hozz
van rendelve. Az sszes AFS szerver minden adata rendelkezsre ll egyetlen egyestett /afs
knyvtr alatt. A kliens oldali adminisztrci minimlis, csupn csak az szksges, hogy a kliens
rtesljn azoknak az AFS cellknak a neveirl, amelyhez szksges, hogy hozzfrjen. Az afs
fban a keress automatikus, teht amikor a kliens egy kivlasztott megosztshoz kvn
hozzfrni, akkor a krs kzvetlenl a megfelel szerver fel irnyul. Az AFS protokoll
egyszer s erteljes. Az NFS-el ellenttben a kliensnek s a szervernek is kpesnek kell lennie
az RPC krsek megvlaszolsra. A kliens szmra azrt szksges ez, hogy up-to-date
maradjon az adatok llapotval kapcsolatban.
A. Kliens oldal:
1. Szemantika: (Probe, Callback, InitCallbackState)
B. Szerver oldal:
1. Csak olvassi mveletek (FetchData, FetchACL, FetchStatus)
2. Fa mdostsok (RemoveFile, CreateFile, Rename, Link, Symlink, MakeDir, RemoveDir)
3. Trolsok (StoreData, StoreACL, StoreStatus)
4. Ktet hvsok (GetVolumeStatus, SetVolumeStatus, GetRootVolume)
5. letkpessg s szemantika mveletek (GetTime, BulkStatus, GiveUpCallBacks)
6. Zrolsok (SetLock, ExtendLock, ReleaseLock)
Az AFS ers biztonsgtechnikval rendelkezik, nem bzik a kliens oldalban, mint az
NFS. A kapcsolatokat igazolni kell, ltalban Kerberos jelek ltal.
CODA
A Coda az AFS v2-bl szrmaztathat. A Coda jnhny jelents kpessggel egszti ki az AFSt: sztbontott mkds jrakapcsolsi lehetsggel, szerver duplikls a msolatok
sztvlasztsval, alkalmazkods a svszlessg adottsgaihoz. Egy Multi-RPC protokoll, ami
lehetv teszi, hogy tbb krst s vlaszt lehessen elkldeni, illetve sszegyjteni egyszerre.
AFS-hez kpest a Kiegsztsek :
A. Kliens (Backfetch)
B. Szerver oldal a kliensek rszre (Reintegrate, Repair, Validate, Resolve, COP2C)
C. Szerver oldal a dntsek rszre
Egyszer dntsek (WeaklyResolve)
Teljes dntsek (Lock, FetchAndMerge, ShipAndPerform, MarkInconsistencies, InstallFinalVV)
A Coda filerendszerre kernel szint tmogats van linuxban.
Lustre (VAXClusters)
Az igazi cluster file rendszert a Digital hozta ltre VAXClusters nven mg 1985-ben. A
Lustre (Linux clUSTRE ) ehhez hasonl felpts cluster filerendszer kvn lenni. A tagsg
4
kezelse hatrozatkpessg alapjn trtnik, ami megelzi, hogy a cluster tredezett vljon. Ez
a filerendszer is a loklis filerendszerbl szrmazik, amely egyttmkdik az elosztott lock
kezelvel, amely feljegyzseket kszt az adathozzfrsekrl. Tulajdonkppen a rendszer
lnyegt ez a "lock management protocol" kpezi. A lock-ok megszerezhetek egy erforrsra,
amelyek megnevezskkel egy fban foglalnak helyet. Egy lock megszerzshez elszr az
sket kell zrolni. Minden egyes lock hierarchinak, azaz a root lock alatt az erforrsok
fjnak, van egy master csompontja, amely ltalban az els rendszer, ami megkap egy lockot
ebben a fban. Ahhoz, hogy a csompont megtalja a master erforrst egy elosztott erforrs
knyvtrat krdez le. Ha az erforrs mg nem ltezik, akkor a rendszer ltal keresett erforrs
lesz a master node. A lock-ok trolhatak a cluster tagjainak folyamataiban, vagy az opercis
rendszerben klnbz mdokon: exclusive, vdett, olvashat vagy rhat, egyidejleg rhat,
olvashat, illetve nem lock-olt. Egy egyszer bitminta meghatrozza a kompatibilitst ezen 6
md kztt. Amikor egy tag kr egy lock-ot, egy j mdban, minden ms node, aki nem
kompatibilis mdban tartja a lock-ot, ennek a krsnek megfelelen rtesl, hogy hajtson vgre
egy callback funkcit.
Minden rendszer nagyszer autonmit lvezhet, a lock-okon keresztl engedlyezhet a
visszars cache-els, quota hasznlat, s olvass a lock maneger-hez val kapcsolds nlkl. A
szervezet nagyjbl hasonl az AFS-nl lert callback-ekhez, viszont jnhny fontos pont van
mg, amit meg kell oldani ebben a tervezsben. Ha egy tag elhagyja a cluster-t, pldul mert
meghibsodik, egy komplex javtsi feladat elvgzse szksges. Ellenttben a Coda s AFS
rendszerekkel itt nincs kliens-szerver viszony a gpek kztt, gy a hiba miatti kiess sokkal
knnyebben megoldhat. A msik lnyeges klnbsg az elbb emltett rendszerekhez kpest,
hogy a cluster tagok "vakon bznak" egymsban, teht a rendszer felttelezi, hogy egy
biztonsgosan krlhatrolt terleten bell van. Brmilyen megnyer is a lock-olsos rendszer,
egy htultje mgis van, mgpedig a halott lock-ok. Ennek feloldsra kt mdszer van. Az
els, hogy olyan szablyozottan trtnjen a lock-ols, hogy az ilyesmi el se fordulhasson. Ha
egy szably nem alkalmazhat, fellphet halott lock, s annak ki kell derlnie. Az ltalnos cl
elosztott lock manager-ek, mint amilyen a VAXClusters-ben is tallhat kpes azonostani a
halott zrolsokat.
Az XFS a Zebra kvetje. Elmosta a hatrokat szerver s kliens kztt. Nem centralizlt
rendszer, a mottja : "brmit brhonnan". Lehetsget ad, hogy a szerver tehermentestsnek
cljbl ne csak a szerverrl lehessen az adatokat lekrni, hanem brmelyik kliensrl, akinek van
rvnyes msolata (cache-elt anyaga) az adott anyagrl.
GFS
A Global File System
Egy SAN project a Minnesota-i egyetemen. A megosztott lock-ok kihasznlsval
dolgozik, amit a lemezeken trol gynevezett dlock-ok formjban. A GFS kihasznlja a logikai
ktetek nyjtotta lehetsgeket is, nincsen kzponti kezels s nem logols alap. A GFS sajt
lemezszerkezetet alkalmaz, filecsoportok s fa alap knyvtrszerkezetek tmogatsval.
Alapveten a filerendszer a "write through" modellt kveti. A project mg nem elg kiforrott.
PVFS
Paralell Virtual File System
Az igazn clustereknek tervezett filerendszer. Jelenleg felhasznli szinten mkdik,
teht nem szksges kernel-szint mdosts a felhasznlshoz. A UNIX I/O mechanizmust
alkalmazza, gy a programokat nem szksges jrafordtani a filerendszer alkalmazshoz.
Gyakorlott felhasznlk szmra rendelkezsre ll egy mlyebb szint hozzfrs a
filerendszerhez, mellyel jobban varilhat (pl.: stripe belltsok). Az MPI-IO (Message Passing
Interface Input Output) PVFS-en val megvalstsa is vrhat a kzeljvben. A rendszer
daemon-ok sszessgbl ll s alkalmazs interface hvsok knyvtrbl, amelyek az
opercis rendszer legfelsbb szintjt veszik ignybe a kommunikcihoz. A PVFS tipikusan egy
Linux-on fut Intel, vagy Alpha architektrn s TCP-t hasznl a kommunikcihoz
A filerendszer legfbb funkcii:
File stripe-ols (feloszts ktetenknt egy-egy szeletre)
File particionls (trdels)
Alkalmazs-orientlt interface
Egyttmkds a meglv binris llomnyokkal
A PVFS hasznlata kzben a node-oknak, amelyek szmtst vgeznek kommuniklniuk
kell azokkal a node-okkal, melyek vgrehajtjk az I/O mveleteket. Az alkalmazs a PVFS
knyvtrak egyik interface-t hasznlja (a szmt node-on), hogy kapcsolatba kerljn az I/O
daemon-al (az I/O node-on), majd az a hagyomnyos UNIX read() s write() fggvnyek
segtsgvel vgrehajtja a krt mveleteket a loklis lemezen
Stream alap adattvitel
Az egyik legfontosabb jellemzje egy prhuzamos feldolgozsra kpes filerendszernek,
hogy hogyan kezeli a szmt s az I/O csompontok kzti adattvitelt. A clusterbe szervezett
gpekre jellemz hlzat termszetbl kvetkezen a kis mennyisg tvitelek igen gyr
teljestmnyhez vezetnek. Az adattvitel stream alap megkzeltse ezen prbl javtani kt
szempontbl is:
- Cskkenti a kontroll zenetek szmt.
- Megszabadtja az zenetekeket a mrettl fgg darabolstl.
6
bemutatst fogom megtenni, amelyeket ugyan msok ptettek, de annl jobban kidomborodnak
azok az rdemek, amirt az egszet kitalltk.
Kvetkeztets
Ha egy szuperszmtgp teljestmnyt ignyl feladat megvalstsa eltt llunk, jval
alacsonyabb kltsggel megvalsthatjuk azt linux-cluster technolgival. A technolgia jval
kiforrottabb, mint a Microsoft vilgban, szmtalan mr hatkonyan mkd rendszer tmasztja
ezt al. A fizikai s software megvalsts sorn is kt lehetsgnk van. Magunk is
sszerakhatunk a boltban kaphat alkatrszbl cluster-t, vagy megvehetjk kszen a fent emltett,
erre szakosodott cgektl.
10