Mi a grid?1,2

Németh Zsolt

MTA Számítástechnikai és Automatizálási Kutató Intézet

1518 Budapest, Pf. 63.

zsnemeth@sztaki.hu


Bevezetõ

Az elmúlt évtizedben számos olyan környezet jelent meg, amely több, együttmûködõ folyamat futtatását teszi lehetõvé lazán csatolt számítási rendszereken. Közülük legelterjedtebbek a Parallel Virtual Machine (PVM) és a Message Passing Interface (MPI) néhány implemetációja, mint például az MPICH. Ezek, a továbbiakban "hagyományosnak" nevezett környezetek széles körben ismertek és számos projektben kerültek felhasználásra. A kilencvenes évek közepétõl egy új paradigma jelent meg, a grid. A grid célja földrajzilag szétszórtan található erõforrások megosztott, közös használata kontrollált, biztonságos és kölcsönösen elõnyös módon. A grid annyira új (1999-ben: “még nincsenek grid rendszerek” [7]), hogy még nincs egyértelmû, pontos definíció rá. Néhány meghatározás a grid tulajdonságain alapul (földrajzilag elosztott, inhomogén, nagy teljesítményû, stb.), mások a grid komponenseibõl indulnak ki (szolgáltatások, rétegek, protokollok, stb.) Az eddigi legteljesebb definíciót a gridre és az ahhoz kapcsolódó technikákra [6] adja. Megközelítése komponens alapú, azt vizsgálja, hogy hogyan lehet gridet létrehozni és az milyen felépítésû.

Az itt bemutatásra kerülõ elemzés ezzel szemben azt vizsgálja, hogy mit kell egy grid rendszernek nyújtania. Sem az ismert tulajdonságok, sem az általásosan elfogadott grid szolgáltatások önmagukban nem tesznek egy elosztott környezetet grid-szerûvé. Sokkal inkább elmondható, hogy a grid rendszerek szemantikailag különböznek a hagyományos környezetektõl azáltal, hogy megvalósítják a felhasználó és az erõforrás absztrakcióját. A hagyományos rendszerek és a grid itt bemutatott informális összehasonlítása formális modellezés segítségével felépített [13].

Az elemzés három réteget különböztet meg: alkalmazás, amely folyamatok csoportjaiból áll, fizikai, amelyet a tényleges hardver eszközök alkotnak és virtuális. A virtuális réteg feladata egy megfelelõ kapcsolatot biztosítani az alkalmazás és a fizikai réteg között oly módon, hogy az elosztott fizikai erõforrások virtuálisan egyetlen számítási egységként jelenjenek meg. Míg az alkalmazási és a fizikai szinten nincsenek számottevõ különbségek, a virtuális réteg szemantikailag különbözõ. Ennek a különbségnek a bemutatása egyúttal egy új, szemantikai definíciót ad a grid rendszerekre, amely eltérõ megközelítésû az eddigi, technikai jellegû definícióktól.

Elosztott alkalmazások

Az elosztott alkalmazások olyan együttmûködõ folyamatokból állnak, amelyek lazán csatolt számítógépek erõforrásait használják. Bár a korszerû programozási környezetek magasabb szintû eszközöket is rendelkezésre bocsátanak, a folyamatok alapvetõen üzenetküldéssel hatnak egymásra. Egy alkalmazás lehet elosztott

  1. egyszerûen a probléma jellege miatt

  2. mennyiségi okokból: nagyobb teljesítményt lehet elérni olyan erõforrások felhasználásával, amelyek nem érhetõek el egyetlen centralizált rendszerben

  3. minõségi okokból: olyan speciális erõforrások használatára van szükség, amelyek nem állnak rendelkezésre egyetlen helyen

Elosztott alkalmazásokat végre lehet hajtani hagyományos környezetben, mint például a de facto szabvány PVM és MPI, vagy az utóbbi idõben megjelent, gridnek nevezett szoftver rendszeren. Mindkét esetben a cél a processzek és erõforrások kezelése, illetve az alkalmazás számára egy absztrakt réteget biztosítani az elosztott erõforrások virtuális egyesítésével.

A két esetben az alkalmazás struktúrája hasonló. Kezdetben az alkalmazást alkotó folyamatoknak adott erõforrás igényei vannak, amelyeket bizonyos számítási csomópontokon lehet kielégíteni, azaz a folyamatokat csomópontokhoz kell rendelni. Ha a folyamat megkapta az igényelt erõforrásokat, akkor megkezdi mûködését. Ettõl kezdve nincs sok különbség a hagyományos elosztott és a grid rendszerek között, és ezek a különbségek fõleg technikai jellegûek. A lényeges, szemantikai különbség abban rejlik, ahogyan a virtuális rétegeket felépítik.

A virtuális réteg építõelemei


a) b)

1. ábra. Absztrakciós szintek a hagyományos elosztott rendszerek (a) és a grid (b) esetén.

Egy hagyományos elosztott programozási környezet alapját számítási csomópontok egy halmaza jelenti (1.a. ábra). Ez a halmaz állhat személyi számítógépekbõl, munkaállomásokból, esetleg szuperszámítógépekbõl feltéve, hogy a felhasználónak érvényes hozzáférési joga (login neve és jelszava) van valamennyihez. A halmazból kerül kiválasztásra a virtuális gépet alkotó néhány csomópont az alkalmazás igényeinek megfelelõen. Általában feltételezhetõ, hogy ha a felhasználó hozzáférhet a csomóponthoz, akkor hozzáférhet valamennyi azon található erõforráshoz is. A személyre szóló hozzáférési jogosultságból következik az is, hogy a felhasználó többé-kevésbé tisztában van csomópont adottságaival (architektúra, operációs rendszer, teljesítmény, stb.) A csomópontok halmaza statikus abban az értelemben, hogy azon csomópontok száma, ahol a felhasználó hozzáférési jogosultsággal bír, ritkán változik. Bár nincsenek technikai korlátok, nem nevezhetõ tipikusnak, hogy egy felhasználó több ezer csomóponthoz rendelkezik hozzáféréssel, ezért a halmaz tipikus mérete 10-100.

A grid “személyek, intézmények és erõforrások dinamikusan változó csoportjai közötti rugalmas, biztonságos és irányított erõforrás megosztás”[6], “egyetlen számítási környezet, ahol számítási ciklusok, a kommunikáció és az adatok megosztottak, és ahol egy munkaállomás a kontinens tulsó végén pontosan olyan mint egy a szobában”[10], “nagykiterjedésû környezet, amely transzparens módon egyesít munkaállomásokat, személyi számítógépeket, grafikus megjelenítõket, szuperszámítógépeket és hagyományosnak nem mondható eszközöket mint például TV vagy kenyérpirító”[9], “földrajzilag szétszórt, nagysebességû hálózattal összekapcsolt erõforrások (emberek, számítógépek, mûszerek, adatbázisok) halmaza [...] kiegészítve egy szoftver réteggel, az ú.n. middleware-rel, amely az egymástól független erõforrásokat egyetlen koherens virtuális géppé alakítja”[12].

A fentiek értelmében a grid alapját az erõforrások jelentik (1.b. ábra). Bár a jelenleg létezõ grid rendszerek többnyire a számítási erõforrást képesek kezelni (CPU ciklusok és memória), a várakozások szerint az erõforrások sokkal szélesebb skáláját lesznek majd képesek kezelni, mint például kommunikációs hálózat, tárhely, adatok, szoftverek [8], valamint a szokásostól eltérõ berendezések mint például grafikus és audio be- és kiviteli eszközök, manipulátorok, szenzorok, stb. Ezek az erõforrások tipikusan csomópontokhoz kapcsolódnak, melyek több adminisztratív tartományban helyezkedhetnek el.

A gridet alkotó alaphalmaz dinamikus. Mivel nagyléptékû erõforrás megosztást céloz meg, az egyes erõforrások tetszõleges idõpontban hozzáadhatók a halmazhoz vagy visszavehetõk onnan az erõforrás tulajdonosának igénye szerint, az erõforrások elõrhetõsége, terheltsége, illetve számos egyéb tulajdonsága változhat az idõben. A halmaz az elképzelések szerint több ezer erõforrásból is állhat [1]. Mindezekbõl adódóan a felhasználónak igen kevés vagy szinte semmi a priori ismerete van a halmazt alkotó erõforrásokról.

A virtuális gépek

A hagyományos elosztott rendszerek építõegysége a számítási csomópont. Elõször tehát valamennyi processzhez egy megfelelõ csomópontot kell rendelni. Ez történhet a felhasználó, a program vagy valamilyen terheléselosztó rendszer által. Azért lehetséges, mert az elõbbiek értelmében a felhasználó, és ily módon az általa mûködtetett rendszer ismeri az egyes csomópontok tulajdonságait. A megfelelõ csomópont kiválasztásához számos kritérium lehetséges (teljesítmény, pillanatnyi terhelés, erõforrások foglaltsága, stb.), de annak a feltételnek mindenképpen teljesülnie kell, hogy a felhasználó érvényes belépési joggal rendelkezik hozzá. A hozzáférés az absztrakt géphez tehát megegyezik azzal, hogy a felhasználó hozzáférhet a gépet alkotó valamennyi csomóponthoz. Ebben az esetben viszont többnyire a csomóponton található összes erõforrást használhatja. Miután a processz egy számítási csomópontra került, igényeit a helyi erõforrásokkal kell kielégítenie. Amennyiben ez sikeres, akkor a processz megkezdi tényleges mûködését.

A hagyományos rendszerekkel ellentétben a grid nem a csomópontot, hanem az erõforrást tekinti a mûködése alapegységének, elõször tehát a megfelelõ erõforrások kerülnek kiválasztásra. Egy processz erõforrásigénye absztrakt abban az értelemben, hogy csak az erõforrás típusa, jellege, mennyisége releváns. Ezeket az igényeket bizonyos csomópontok ki tudják elégíteni fizikai erõforrásokkal, tehát a csomópontot, ahová a processz kerül az erõforrások kiválasztása határozza meg. Mivel az erõforrások halmaza nagy számosságú és dinamikus, ebbõl következõen a felhasználó (és így az általa mûködtetett alkalmazás) igen keveset tud annak állapotáról, ezért az absztrakt és a fizikai erõforrások összerendelése nem oldható meg az alkalmazás szintjén. A gridet alkotó erõforrások, és így a csomópontok nagy száma miatt a csomópontonkénti belépési jogosultságon alapuló hozzáférés nem realisztikus. Ehelyett globálisan elfogadott igazolványok segítségével lehet hozzáférni a virtuális géphez, mely globális azonosításhoz lokális jogosultságok rendelhetõek.

A szemantikai különbségek

Az eddigiek értelmében egy hagyományos elosztott alkalmazás virtuális gépe az alaphalmazból választott csomópontokból áll. Azonban ez csak a fizikai valóság egy másik nézete, nincs szó valódi virtualizációról. A virtuális gép csomópontjai ugyanazokkal a tulajdonságokkal rendelkeznek, ugyanaz a nevük, mint a fizikai szinten található csomópontoké. Hasonlóan, a felhasználó ugyanúgy (ugyanazzal az azonosítóval és jogosultságokkal) jelenik meg a virtuális és a fizikai szinten. A processz absztrakt erõforrás igényei és a fizikai erõforrások között egy implicit megfeleltetés van: mivel elõbb történik a csomóponthoz rendelés, az erõforrás igények kielégítése az adott lokális erõforrásokból történik.

Ezzel szemben a griden mind az erõforrások, mind a felhasználók másképpen jelennek meg a fizikai és a virtuális szinten. Más szavakkal: a grid alapvetõ funkcioja az erõforrás és a felhasználó absztrakciójának megvalósítása [13]. Az erõforrások az õket fizikailag hordozó csomópontoktól elválasztva jelennek meg a virtuális szinten. Egy processz erõforrás igénye számtalan módon kielégíthetõ és nem elõre meghatározott a csomóponthoz rendelés által - egy explicit megfeleltetésre van szükség az absztrakt és a fizikai erõforrások között.

Továbbá, a virtuális gép felhasználója különbözik az egyes csomópontokhoz rendelt processzek felhasználóitól. Az operációs rendszerek az erõforrásokat kizárólag lokális processzekhez tudják rendelni. Ez azt jelenti, hogy az elosztott alkalmazás egy processzének azon a csomóponton kell futnia, ahol a virtuális szinten hozzárendelt erõforrás fizikai megfelelõje található. Processz futtatás viszont csak a helyi jogosultságokkal rendelkezõ felhasználóknak lehetséges, amellyel nem szükségszerûen rendelkezik a grid virtuális gépének felhasználója. A grid rendszernek tehát meg kell valósítania egy másik explicit hozzárendelést a globális igazolvánnyal rendelkezõ grid felhasználó és a lokális felhasználói azonosítók között. Ily módon a grid felhasználó idõlegesen egy lokális felhasználó (nem feltétlenül valós személy) jogosultságait élvezi.

Ebben a két tekintetben, az erõforrások és felhasználók absztrakciójában tehát alapvetõen különböznek a hagyományos illetve a grid rendszerek.

Technikai különbségek

Annak, hogy a grid rendszereket általában a szolgáltatások és tulajdonságok alapján szokták meghatározni az oka az, hogy a szemantikai különbségek nem jelennek meg nyilvánvaló módon. Az erõforrás és a felhasználó absztrakcióját általában több szolgáltatás együttmûködése hozza létre.

Az absztrakt erõforrás igényeket valamilyen módon le kell írni. Ezt a célt szolgálja a Resource Specifiction Language (RSL) [3] a Globus-ban, illetve a Collection Query Language [2] a Legionban. A hagyományos elosztott környezetek nem tartalmaznak hasonló nyelvet. Az absztrakt és a fizikai erõforrások összerendelését pedig tipikusan két szolgáltatás támogatja:

  1. Információs rendszer amely az erõforrások virtuális halmazáról szolgáltat adatokat az alkalmazás (vagy az alkalmazás oldalán mûködõ erõforrás broker) számára (pl. Grid Index Information Service, GIIS [4], Collection[2])

  2. Lokális információforrás amely a helyi erõforrások tulajdonságairól, azok hozzáférhetõségérõl ad informcáiót, elsõdsorban az információs rendszer számára (pl. Grid Resource Information Service, GRIS [4], Legion Host és Vault objektumok bizonyos metódusai [2].)

A felhasználó absztrakciója a globális grid felhasználói azonosítók idõleges leképezése lokális felhasználói azonosítókra, amelyet általában szintén két szolgáltatás támogat:

  1. Biztonsági rendszer, amely a globálisan érvényes igazolványok alapján azonosítja a felhasználót (autentikáció, Globus GRAM gatekeeper processze [5])

  2. Helyi erõforrás kezelõ, amely eldönti, hogy az azonosított felhasználót milyen jogosultságokkal ruházza fel (autorizáció, pl. a Globus mapfile alapján lokális felhasználói azonosítókat oszt ki, a jogosultásgokat az operációs rendszer ellenõrzi [5].)

A Legion esetében az autentikáció és az autorizáció az objektumok saját metódusain keresztül valósulnak meg [11].

Ezek azok a szolgáltatások, amelyeken keresztül közvetenül megvalósul az erõforrás és felhasználó absztrakció. Egy valós grid rendszer ennél lényegesen több szolgáltatást biztosít, pl. a végrehajtandó állományok eljuttatása a megfelelõ csomópontra (staging), az erõforrások foglalásának idõbeli koordinálása (co-allocation), stb., ezek azonban sokkal inkább a megvalósítás technikai részleteihez tartoznak egy alacsonyabb absztrakciós szinten.

Összefoglaló

A cikk egy új megközelítéssel próbál meghatározást adni a grid fogalmára. Míg a korábbi definíciók a grid különbözõ tulajdonságaiból illetve építõelemeibõl indultak ki, itt a hagyományos elosztott környezetek és a grid összehasonlításán keresztül az alapvetõ mûködésbeli különbségek kerültek elemzésre, amelyeknek következményei a technikai különbségek.

Mind a hagyományos környezetek, mind a grid esetében egymással kooperáló folyamatok futnak lazán csatolt számítási rendszerek csomópontjain. Ebben a tekintetben nincs sok különbség közöttük. A fõ különbség abban rejlik, ahogyan a folyamatok eljutnak a megfelelõ csomópontra, azaz a virtuális réteg koncepciójában és a virtuális gépekben. Míg a hagyományos környezetek esetében ez a fizikai valóság egy másik nézete, a grid esetében az erõforrások és a felhasználók virtualizálásán keresztül ez ténylegesen elválik a fizikai valóságtól, és ebben a tekintetben szemantikai különbségek fedezhetõek fel.

A grid képes támogatni a mennyiségi és a minõségi okokból elosztott alkalmazásokat. Nyilvánvaló módon, nagyléptékû erõforrás megosztáson keresztül egy alkalmazás sokkal több erõforrást képes használni mint egyébként, tehát a nagy számítási kapacitást igénylõ feladatoknak ideális hátteret biztosít. Azonban a grid nem egyszerûen egy nagyteljesítményû számítási infrastruktúra. Az erõforrások virtuálisan közös halmaza azt is lehetõvé teszi, hogy olyan erõforrásokhoz férjen hozzá egy alkalmazás, amelyek lokálisan nem elérhetõek például a telepítés költsége vagy a várható alacsony kihasználtság miatt. Ebben az esetben nem a teljesítmény a döntõ szempont, hanem a speciális erõforrások hozzáférhetõsége, tehát a grid támogatja a minõségi okokból elosztott alkalmazásokat is. Harmadrészt a grid virtuális rétege újszerû alkalmazások megvalósítását is elõsegíti. A griden keresztül létrejövõ ú.n. virtuális szervezetek részvételével távoli jelenlét (telepresence, teleimmersion), virtuális laboratótium és ezekhez hasonló új, felhasználók több csoportját átfogó alkalmazások hozhatóak létre, amelyehez a grid virtuálisan közös erõforrás halmaza ideális alapot nyújt.

Hivatkozások

  1. Brunet et al.: Application Experiences with the Globus Toolkit. 7th IEEE Symp. on High Performance Distributed Computing, 1998.

  2. Chapin, D. Karmatos, J. Karpovich, A. Grimshaw: The Legion Resource Management System. Proceedings of the 5th Workshop on Job Scheduling Strategies for Parallel Processing (JSSPP '99), in conjunction with the International Parallel and Distributed Processing Symposium (IPDPS '99), April 1999

  3. Czajkowski, I. Foster, N. Karonis, C. Kesselman, S. Martin, W. Smith, S. Tuecke: A Resource Management Architecture for Metacomputing Systems. Proc. IPPS/SPDP '98 Workshop on Job Scheduling Strategies for Parallel Processing,1998

  4. Czajkowski, S. Fitzgerald, I. Foster, C. Kesselman: Grid Information Services for Distributed Resource Sharing. Proc. 10th IEEE International Symposium on High-Performance Distributed Computing (HPDC-10), IEEE Press, 2001.

  5. Foster, C. Kesselman, G. Tsudik, S. Tuecke: A Security Architecture for Computational Grids. In 5th ACM Conference on Computer and Communication Security, November 1998.

  6. Foster, C. Kesselman, S. Tuecke: The Anatomy of the Grid: Enabling Scalable Virtual Organizations. International Journal of Supercomputer Applications, 15(3), 2001.

  7. Foster, C. Kesselman: Computational grids. In The Grid: Blueprint for a New Computing Infrastructure. Morgan Kaufmann Publishers, 1999. pp. 15-51.

  8. Foster, C. Kesselman: The Globus Toolkit. In The Grid: Blue print for a New Computing Infrastructure. Morgan Kaufmann Publishers, 1999. pp. 259-278.

  9. S. Grimshaw, W. A. Wulf: Legion - A View From 50,000 Feet. Proceedings of the Fifth IEEE International Symposium on High Performance Distributed Computing, IEEE Computer Society Press, Los Alamitos, California, August 1996

  10. S. Grimshaw, W. A. Wulf, J. C. French, A. C. Weaver, P. F. Reynolds: Legion: The Next Logical Step Toward a Nationwide Virtual Computer. Technical report No. CS-94-21. June, 1994.

  11. Humprey, F. Knabbe, A. Ferrari, A. Grimshaw: Accountability and Control of Process Creation in the Legion Metasystem. Proc. of the 2000 Network and Distributed System Security Symposium NDSS2000, San Diego, California, February 2000.

  12. Lindahl, A. Grimshaw, A. Ferrari, K. Holcomb: Metacomputing - What's in it for me. White paper. http://www.cs.virginia.edu/~legion/papers.html

  13. Zs. Németh, V. Sunderam: A Formal Framework for Defining Grid Systems. Proceedings of the 2nd IEEE International Symposium on Cluster Computing and the Grid (CCGrid 2002), Berlin, 2002.

1 A munkát támogatta az OTKA T-032226 számon nyilvántartott projektje

2 A Zs. Németh, V. Sunderam: A Comparison of Conventional Distributed Computing Environments and Computational Grids. Proceedings of ICCS2002 cikk alapján.