P2P elosztott rendszerek napjainkban Párhuzamos és Elosztott rendszerek II. Dr. Mileff Péter Bevezetés Napjainkban megkérdıjelezhetetlen az elosztott rendszerek jelentısége. A közismert többrétegő architektúrák mellett egyre inkább tért nyernek az egyenrangú résztvevık együttmőködésén alapuló, úgynevezett Peer-to-Peer (P2P) P) rendszerek. A sávszélesség növekedés elısegítette a P2P hálózatok fejlıdését. A P2P ma már paradigma (Fájlcserélı hálózatok, osztott rendszerek). 2 Mi is az a P2P? Olyan informatikai hálózat, ahol a végpontok közvetlenül egymással kommunikálnak. Nincs pontos definíció. Nincs központi kitüntetett csomópont. A P2P tulajdonságai röviden A P2P fogalom két hasonló fogalomkört takar: 1. számítógépek egyenrangú technológiai szintő kapcsolódási módja egy hálózaton, 2. valamilyen célból közvetlenül kapcsolódó szoftver megoldások mőködési elvét. Elınyök: A közvetlen kapcsolat hibatőrıbb felépítést, skálázhatóságot jelent. P2P alapú hálózat 3 Szerver alapú hálózat Hátrányok: Nehezebb adminisztráció, az erıforrások pazarló használata, a nehezebb megvalósíthatóság. 4 1
A P2P tulajdonságai röviden Az ügyfél-kiszolgáló kapcsolathoz képest jelentısen eltérı módon mőködnek: a szerepek nincsenek elıre meghatározva. többnyire követelmény is, hogy az összes résztvevı képes legyen valamilyen erıforrást a rendszer egésze számára elérhetıvé tenni: viszonzás az igénybevett szolgáltatásokért. A megosztható erıforrások általában a következı három kategóriába sorolhatók: fájlok, számítási kapacitás, felhasználói jelenlét (legegyszerőbb esetben csevegés). 5 Peer-to-Peer rendszerek felépítése A P2P rendszerek úgynevezett overlay ( fölöttes ) network létrehozásával mőködnek. Oka: rendszer alapvetıen szomszédossági alapon mőködik, ne legyen szükség kitőntetett szerepő résztvevıkre. Elegendı legyen, hogy minden node csak korlátos számú másikkal tartson kapcsolatot. üzenetek továbbítása logikai pont-pont kapcsolatokon keresztül történik. 6 A P2P nem újdonság Egyedi felépítések Az ıs-internet pontosan ugyanígy mőködött minden csomópont útvonalválasztóként is funkcionált, az ügyfél-kiszolgáló szerepek sem különültek el. Gazdaságossági és technikai okokból a lapos hierarchia folyamatosan kezdett központosodni. Végül kliens-szerver szerver architektúra. A mai Internet erısen specializált, a három szerep tipikusan szeparáltan jelenik meg. Emiatt egy mai P2P elosztott rendszer: saját logikai hálózatot alakít ki saját üzenettovábbító mechanizmusokkal. A P2P terjedésének jó alapot biztosít a sávszélesség és számítási kapacitás növekedése. 7 Elsı verziókat a fájlcserélı alkalmazások hozták el. Saját útvonalválasztó és üzenettovábbító alrendszer szükségessége fontos: Szabadságot jelent: az adott alkalmazás számára protokollszinten biztosíthatunk támogatást. Pl. tartalom szerinti route-olás olás lehetısége. A megcélzott hardver eszközök és átviteli közeg ismeretében lehet dönteni az alkalmazandó routing algoritmus típusáról. Egy adott algoritmus számításigénye és az általa generált forgalom fordítottan arányosnak tekinthetı. Kialakításuk sok munkát igényel. 8 2
Egyedi felépítések A P2P rendszerekben az útvonalválasztás ill. a protokoll nem választható el az alkalmazástól: Egy fájl megosztó rendszer alkalmazása esetén elegendı ha legalább 1 példányt megtalálunk egy állományból. Egy csevegés jellegő (chat, whiteboard) együttmőködés esetében az összes résztvevıhöz el kell jussanak az események. Ezek okok miatt általános protokollszintő optimalizációról nem beszélhetünk. A P2P hálózatok csoportosítása Több szempont alapján lehetséges a csoportosítás. 1. A felhasználási célok alapján: Fájlmegosztás (pl.: torrent) Telefon (pl. skype, voip) Videó és audio streaming Fórumok 2. A centralizáltsági fok alapján. Tiszta P2P hálózatok Nem tiszta (hibrid) P2P hálózatok 9 10 A P2P hálózatok csoportosítása A tiszta P2P hálózatok jellemzıi: pl. fájlmegosztás A Peer-ek ek egyenlıként tevékenykednek a kliens és szerver szerepkörök egybeolvasztásával. Nincs központi szerver, amely menedzselné a hálózatot, Nincs központi router. A döntéseket mindig a részvevık hozzák maguk. A hibrid P2P hálózatok jellemzıi: Létezik egy központi szerver, amely információkat tárol az egyes peer-ekrıl. Az egyes peer-ek felelısek a rendelkezésre álló erıforrások hostolásáért. A szerver ismeri a peer-ek ek által megosztásra szánt erıforrásokat. Valamint a peer-ek ek felelısek azért is, hogy mely erıforrásokat teszik osztottá a többi peer felé. 11 Decentralizált, vagy tiszta P2P 12 3
Egy félig centralizált, vagy hibrid P2P Példák Centralizált P2P hálózat: Napster Napster. A fájlcserélık ıse. Több millió felhasználó. hibrid, központi szerverfarm. Szerzıi jogsértések miatt bezárták. www.napster.com Decentralizált P2P hálózat: KaZaA www.kazaa.com Strukturált P2P hálózat: CAN Nem strukturált P2P hálózat: Gnutella 13 14 További p2p csoportosítás http://indypeer.org/doc/p2p_networks.php Az indypeer három csoportot különböztet meg: Elsı generációs p2p: Központi szerver alapú, a kereséshez ezt használják a kliensek. a kliensnek csatlakoznia kell egy megadott szerverhez (egyikéhez) A szerver tárolja a rendelkezésre álló fájlok globális listáját. Pl.: Audiogalaxy, Napster, (Bittorrent). Második generációs (hibrid) p2p: Legismertebb típus. A hálózati infrastruktúrát (Pl. keresés) szupercsomópontok tartják fent, melyek szerverfunkciókat is ellátnak. Ezek magas száma miatt a hálózat globális, nem lehet ellehetetleníteni jogi, technikai eszközökkel. Hátrány: a keresés nem mindig kielégítı. 15 Pl.: edonkey, Fasttrack. További p2p csoportosítás Harmadik generációs p2p: Mőködésük teljesen elosztott, minden csomópont egyenrangú, A kliens és szerver szerepek keverednek, Fejlıdésüket a CPU és a hálózati sávszélesség növekedése segítette. A kliensek így tudták fokozatosan átvenni a szerver szerepeket. Pl. a rendelkezésre álló fájlok listájának fenntartása, és terjesztése Pl.: Overnet, Gnutella (7 mélységben elárasztó keresési algoritmusa hálózatigényes), WinMX, kadmule. 16 4
Fájlmegosztás a p2p rendszerekben Napjaink legelterjedtebb P2P rendszerei azon rendszerek, amelyek célja alapvetıen a fájl megosztás. Több fejlıdési irány alakult a dokumentumok megosztására a történelem során: Centralizált, hibrid Teljesen elosztott, homogén Félig elosztott, hierarchikus Elosztott indexelés 17 Centralizált, hibrid dokumentum megosztás Egy hibrid P2P rendszer valójában nem teljesen felel meg a P2P rendszer definíciójának. Minden csomópont egyenrangú. A felhasználók dokumentumainak attribútumai (fájlnév, szerzı, milyen IP-vel rendelkezı gépen található cím, stb.) egy központi szerveren vagy szerver csoporton vannak tárolva. Ezek az elsı generációs P2P hálózatok. Pl.: Napster. Elınyök: a szerver kiszolgáló-képességének képességének határáig gyors, a keresés az összes dokumentumban történik, viszonylag kis hálózati forgalom. Hátrány: A centralizáltság: az egész rendszer mőködése megszőnik a szerver 18 hibája, vagy megszőntetése miatt (Pl.: Napster) Teljesen elosztott, homogén dokumentum megosztás P2P következı generációja, valódi p2p rendszer. Leggyakoribb példa a Gnutella hálózat. Az ilyen rendszerben valóban minden résztvevı (csomópont) egyforma: a csomópontok teljesen azonos szerepőek, ugyanazt a feladatot látják el. a dokumentumok adatai nem egy központi szerveren találhatók Csak az adott résztvevı tudja, hogy milyen attribútumokkal rendelkeznek az általa tárolt dokumentumok. A keresés tehát megnehezedik: A keresés már nem csupán egy központi szerverhez való adatküldésre korlátozódik. 19 A keresés menete Az egyik csomópont megkap egy kérést (keresést), megvizsgálja, hogy nála megtalálható-e e az adott dokumentum, majd ha nem, tovább küldi az általa ismert résztvevıknek, akik szintén ezeket a mőveleteket hajtják végre a kérésen. Hátrányok: keresés lassabb, nagy hálózati forgalmat generál. A keresésnél figyelembe kell venni a résztvevı sávszélességét. Elıny: egy résztvevı hibából, vagy más okokból történı leállása, leállítása nem okoz problémát. Sok rendszer ezen a megoldáson alapszik. Pl.: LimeWire, Shareaza, Morpheus. 20 5
Félig elosztott, hierarchikus p2p A gyakorlatban fájlmegosztásra használt rendszerek jelentıs része hierarchikus. Ekkor: nem minden csomópont azonos, de azonos viselkedési típusok, szerepek közül választhatnak. Pl.: Nagyobb hálózati forgalmat vagy számítási kapacitást kiszolgálni képes csomópont kiválaszthatja a neki megfelelı szerepet, amivel a többlet erıforrásai kihasználhatóvá válnak. Az ilyen rendszerek jelentıs része kétszintő Kisebb képességő résztvevık, Gyengébb hardver, sávszélesség nagyobb képességő résztvevı (super-node). Erıs hardver, sávszélesség. 21 Résztvevık szerepei A kisebb képességő résztvevık közvetlenül nem vesznek részt a keresésben, dokumentumaik információit odaadják egy nagyobb képességő résztvevınek. Közvetlen kapcsolatban állnak. A kérések (keresés) mindig a super-node node-hoz érkezik be A többi társához továbbítja a kérést, akik mind információval rendelkeznek a hozzájuk kapcsolódó kisebb képességő résztvevık dokumentumairól is. Mindaddig, amíg a dokumentumot meg nem találják. Az architektúra tehát az elızı két típusú rendszerek elınyeit próbálja ötvözni A legtöbb mai rendszer kétszintő. Pl.: Kazaa, Morpheus,stb. 22 Elosztott indexelés A központi szerver szerepe rábízható a többi résztvevıre is. Egy megfelelıen szervezett struktúra hasonlóan gyors lehet, míg hibákra és egyéb tényezıkre érzéketlen marad az elosztott tárolás következményeként. A megoldás az elosztott indexelés alkalmazása. Az indexek: legtöbbször bináris formába alakítás után egy fa, vagy egy győrő struktúrában tárolhatók. az index utáni keresés logaritmikus mértékő a résztvevık számához képest. Hátrány: : többnyire egyszerre csak egy kritérium (például fájlév) indexelését támogatják, ami nem elég flexibilis. 23 Elosztott indexelés problémáinak kiküszöbölése 1. Az elızı architektúrákkal való kombinálás segíthet. 2. Speciális struktúrák bevezetése, ahol több, hierarchikus felépítéső index-szerkezet létezik. (indexek indexei) A keresés gyorsítása: a P2P struktúra figyelembe veszi az egyes résztvevık földrajzi elhelyezkedését, vagy a hálózati késleltetést (például Grapes). 24 6
Elosztott indexelés Elınyök: Teljes elosztott mőködés Gyors Kis hálózati forgalmat generáló keresés a dokumentumok között Hátrányok: Csökkent mértékő flexibilitás Meglehetısen bonyolult felépítés: Egy index fa, vagy győrő, esetleg egyéb, elhelyezkedésen alapuló struktúra felépítése és karbantartása legtöbbször nem egyszerő algoritmusokat igényel. Pl.: Gridella, Chord, Pastry, Tapestry, Freenet, Grapes. 25 A Gnutella, mint homogén P2P protokoll Egyik legelterjedtebb fájlmegosztó protokoll. Kevésbé számításigényes, Broadcast-otot valósít meg. Az egyes kérések által generált forgalmat az úgynevezett TTL (time to live, hátralevı élettartam) paraméterrel korlátozza. 7-rıl indul és minden továbbításkor csökken eggyel. Mikor eléri a 0-t, a csomag nem kerül továbbításra. Az egyszer már feldolgozott csomagok újraprocesszálásának és újraküldésének elkerülése: Az utoljára látott n csomag azonosítójának megırzése. Ezt az információt a forrás összeköttetéssel együtt tárolja, és a válaszok back-route-olásáraolására is felhasználja. A Gnutella kérések ugyanis nem tartalmaznak IP címeket, csak a válaszok. Ez egyfajta névtelenséget biztosít a résztvevık számára. 26 A Gnutella, mint homogén P2P protokoll A mai Internet közönsége érthetı okokból bizalmatlan. Leggyakoribb megnyilvánulása a tőzfalak használata erıteljesen elhatárolja a kiszolgálókat és az ügyfeleket. minden P2P rendszernek számolnia kell ezzel. Az overlay network szempontjából tehát szükséges olyan node-okok jelenléte, amelyek képesek kapcsolatokat fogadni, nincsenek tőzfal mögött. A nagyobb probléma a fájlátvitel támogatása: Gnutella: a két node közül legfeljebb az egyiket védi firewall. Push Request: a szerver van tőzfal mögött, de ı indítja a fájlátvitelt. Tőzfal átkonfigurálás ekkor nem szükséges. 27 A Gnutella, mint homogén P2P protokoll A Gnutella specifikáció a legteljesebb mértékben nyitva hagyja a hálózatépítés és a logikai hálózatban megvalósítandó célszerő topológia kérdését. Gnutella protokol 0.4: http://www9.limewire.com/developer/gnutella_protocol_0.4.pdf 28 7
A P2P további alkalmazási területei Egyre jelentısebb alkalmazási terület a telefonprogramok,, Pl. Skype. Ezek a peer-to to-peer hálózatok által olcsón biztosított infrastruktúrát használják ki, az olcsón telefonos szolgáltatás biztosítása miatt. befektetett tıke nélkül tudnak magas szintő szolgáltatást nyújtani. A Skype készítıi hamar felismerték a P2P-ben rejlı lehetıségeket: 2006-ban beindították a Joost internetes tv szolgáltatást. A P2P további alkalmazási területei P2PTV: : a video streamek (általában TV) P2P hálózatokon való valósidejő elosztására fejlesztették ki. Tulajdonságai: a világ minden csatornája globálissá tehetı. Elınyei megegyeznek a többi P2P szoftverekével. Minden felhasználó feltölt a letöltéssel párhuzamosan, így hozzájárul az össz-sávszélességhez sávszélességhez. Minél többen néznek egy csatornát, annál jobb a kép. Mőködése: Broadcatching techológia. Kimondottan digitális tartalomra kifejlesztve. A tartalom RSS-en keresztül letölthetı. 29 30 Összefoglalás A P2P folyamatosan mindennapjaink részévé válik. Mobilkommunikáció, internettelefon, tv, stb. Kitőnı fejlıdési irány az osztott rendszerek fejlesztésében. Köszönöm a figyelmet! Számos GRID is ezen a technológián alapszik. 31 32 8