GeneSyS Generikus rendszerfelügyeleti middleware Pataki Balázs, MTA SZTAKI/DSD,
[email protected] Dr. Kovács László, MTA SZTAKI/DSD,
[email protected]
Az applikáció fejlesztés módszertana az elmúlt években a monolitikus rendszerek felől egyre inkább a middleware alapú elosztott architektúrák (pl. GRID) irányába mozdult el. Az ilyen elosztott rendszerekhez nélkülözhetetlen egy olyan kifinomult rendszerfelügyeleti háttér, amely kellő információt nyújt a rendszer egészéről, a hardwaretől a hálózati egységeken át egészen az alkalmazások szintjéig. A GeneSyS európai uniós támogatással indult IST projekt (IST-200134162) célja egy az eloszott alkalmazások felügyeletét és menedzsmentjét lehetővé tevő nyílt forráskódú rendszer specifikálása és kifejlesztése.
A projekt célja A GeneSyS (Generic Systems Supervision) projekt 2002 márciusában indult azzal a céllal, hogy a résztvevők elosztott rendszerek számára egy új felügyeleti és menedzsment middlewaret tervezzenek és valósítsanak meg. A rendszer specifikálásán és kifejlesztésén túl a GeneSyS konzorcium résztvevői azt is célul tűzték ki, hogy az elkészült rendszer minél szélesebb körben elterjedjen, és lehetőség szerint kvázi szabvánnyá váljon a Web Services alapú rendszerfelügyeleti alkalmazások területén. Egy GeneSyS jellegű rendszer kifejlesztésének szükségességét igazolja az eloszott alkalmazások egyre szélesebb körű elterjedése és elfogadottsága. Az elosztott rendszerek megvalósításában egyre inkább teret nyerő Web Services megoldások (SOAP, XML, stb.) a "nagy játékosok" (Microsoft, IBM, Oracle, stb.) színre lépésével még tovább fokozzák az érdeklődést az ilyen rendszerek iránt. Ahhoz, hogy az ilyen elosztott rendszerek rendszerfelügyeleti igényeit minél több oldalról megvizsgálhassuk és többféle szempont érvényesítése útján készüljön el a tervezett rendszer, a GeneSyS konzorcium különböző akadémiai és ipari partnerek bevonásával állt össze. A konzorcium partnerei: •
EADS Space Transportation (Franciaország). Az EADS a projekt elindítója, az európai űrtechnológia egyik meghatározó szereplője, az Arian rakéták gyártója és vezető katonai beszállító. Az EADS a projekt koordinátora.
•
Stuttgarti egyetem, HLRS csoportja (Németország). A HLRS nagy számításigényű, szuperszámítógépekkel és GRID rendszerekkel megoldható problémákkal foglalkozik. A HLRS feladata projektben a rendszerterv kidolgozása és a témával kapcsolatos kutatási munka végzése.
-1-
•
NAVUS (Németország). A NAVUS mint fejlesztő cég vesz részt a projektben. Feladata a GeneSyS rendszer tervezése és kivitelezése, valamint a jövőbeni hasznosítás megtervezése és lebonyolítása.
•
MTA SZTAKI - Elosztott Rendszerek Osztály (DSD). Az MTA SZAKI - DSD eloszott web alapú rendszerek (tudástárak, digitális könyvtárak, stb) kutatásával és fejlesztésével foglalkozik. A GeneSyS projektben a tervezés és kivitelezés mellett a projekt széleskörű megismertetetése, bemutatása (disszemináció) és a szabványosítási munkák irányítása a feladata.
A jelenlegi rendszerfelügyeleti eszközök főbb hátrányai A jelenlegi rendszerfelügyeleti alkalmazások legfőbb hátránya, hogy a zártak és általában a felügyelet csak egy szűkebb körére fókuszálnak a nyílt megoldású és általános keretrendszer helyett. A jelenlegi rendszerekkel kapcsolatos főbb problémákat következőkben látjuk: •
Az applikáció programozási interfészek (API) nem nyitottak, vagyis azokhoz sem dokumentáció, sem forráskód nem tartozik, így más rendszerekhez történő illesztésük lehetetlen.
•
A monitorozó ágensek közötti porotokoll nem standardizált, így sok esetben programozási nyelv vagy operációsrendszer függő, más rendszerekkel nem összekapcsolható.
•
A jelenleg kapható monitorozó megoldások általában egy adott monitorozási feladatra készültek, vagyis csak adatbázis vagy csak hálózat monitorozására alkalmasak.. Az ilyen rendszerek, még ha nyitott lenne is az API-juk, nehezen vagy egyáltalán nem lennének használhatók más rendszerek monitorozására.
•
A jelenlegi rendszerek általában egy nem túl flexibilis architektúrát követnek, amelyben nem választják el kellőképpen az adatkommunikációs alrendszert, a monitorozást végző ágenseket és az adatok megjelenítését végző (grafikus) konzolokat.
A GeneSyS architektúra A lehető legnagyobb fokú flexibilitás érdekében a monitorozó eszközök és az adatvizualizációs, valamint kontroll funkciót végző konzolok egymástól el lettek választva és egy közös szabványos kommunikációs buszon keresztül kapcsolódnak egymáshoz. Architekturálisan a GeneSyS az alábbi elemekből áll: •
Felügyelt eszköz (supervised entity): az erőforrás (hardver, hálózat vagy szoftver), amit a GeneSySen keresztül felügyelnek. A felügyelt eszköz lehet monitorozott eszköz (Monitored Entity), amely a belső működéséről közöl információkat, vagy lehet vezérelt eszköz (Controlled Entity), amely külső parancs interfész segítségével vezérelhető, állapota változtatható. -2-
•
Delegált ágens (Delegate Agent): a delegált ágens feladata, hogy a felügyelt eszköztől begyűjtse az információt vagy vezérelje azt. A begyűjtött információt a továbbiakban a felügyelelő ágensnek továbbítja, míg vezérlés esetén a vezérelt eszközre ható parancsokat a felügyelő ágenstől kapja.
•
Felügyelő ágens (Supervisor Agent): a felügyelő ágens a delegált ágenstől kapott információkat fogadja, illetve ha a delegált ágens egy vezérelhető eszközzel áll kapcsolatban, akkor a delegált ágens a felügyelő ágenstől kapja a parancsokat a vezérelt eszköz újraindítása, újrakonfigurálása céljából. A felügyelő ágensek tipikusan mint grafikus konzolok jelennek meg, melyet a felügyeletért felelős személyek (rendszergazdák) használnak.
•
Központi mag (Core): a Core feladata, hogy a különböző ágenseket nyilvántartsa és biztosítsa az ágensek közötti kereshetőséget, hozzáférést. A GeneSyS-ben minden ágensnek regisztrálnia kell magát a Core-ral oly módon, melynek során a Core eltárolja az ágenssel kapcsolatos információkat, amiket a többi ágens számára lekérdezhetővé tesz.
•
Adattár (Repository): az adatok hosszútávú tárolását szolgálja. A legegyszerűbb rendszerfelügyeleto szcenárióban mind a delegált ágens, mind a felügyelő ágens online kapcsolatban áll egymással, s a delegált ágens folyamatosan képes küldeni (a felügyelő pedig fogadni) a monitoring adatokat. Összetettebb esetben azonban a felügyelő ágens csak időnként képes, vagy szükséges, hogy online legyen. Ekkor az adatokat egy közbülső helyen kell eltárolni, ahonnan az adatok aszinkron módon kinyerhetők. Az adattár monitorozó és vezérlő adatok tárolására szolgál, s a GeneSyS-ben regisztrált komponensek számára ugyanolyan módon férhető hozzá, mint bármely másik ágens.
-3-
A GeneSyS komponensei az ún. GeneSyS Messaging Protocol (GMP) segítségével kapcsolódnak egymáshoz. Ez a protokol definiálja a kommunikációs és adatsémákat, amelyekkel a delegált és felügyelő ágensek, az ágensek és a központi mag egymással kommunikál. A protokol definicíója maga implementáció független, nem határoz meg semmilyen programnyelvi vagy operációsrendszeri függést. A GeneSyS 1.0-ás változatában a Web Services architektúrára építettünk, ezért a GMP-t HTTP átvitellel működő SOAP (Simple Object Access Protocol) segítségével és XML üzenetek felhasználásával valósítottuk meg. A GMP-ben az üzeneteknek az alábbi hierarchiáját definiáltuk: •
GeneSyS Message: az üzenetek mindegyike ebből származtatható és a legáltalánosabb tulajdonságokat tartalmazza (message header, stb.)
•
Service Message: a monitoring és vezérlő adatok továbbításától független üzenetek. Ilyenek például az ágensek Coreühoz történő regisztrálása, vagy keresés a Core-ban.
-4-
•
Supervision Message: a monitoring és vezérlő üzenetek közös fajtája.
•
Monitoring Message: felügyelt eszközöktől származó adataok továbbítására szolgáló üzenetek típusa.
•
Control Message: felügyelt eszközök vezérlésére szolgáló üzenetek.
GeneSyS Message
Supervision Message
Monitoring Message
Service Message
Control Message
A projekt eredményeinek ellenőrzése A projekt jelenleg az 1.0-ás verziónál tart, s a GeneSyS, mint szabad forráskódú eszköz a SourceForge.net-ről letölthető és kipróbálható. A projekt eredményeinek bemutatására és az eredeti felhasználói kritériumoknak való megfelelés mérésére úgynevezett validációs szcenáriókat definiáltunk. Ezek olyan valós és küldetés kritikus alkalmazásokat jelentenek, amelyekben a GeneSyS kirpóbáltuk, teszteltük majd az erdeményeket felhasználva fejlesztettük tovább a rendszert. A GeneSyS 1.0-t az EADS Preliminary Design Review (Előzetes tervezési felülvizsgálat, PDR) alkalmazás keretében teszteltük. Az EADS a nemzetközi űrállomás építésének programjában oly módon vesz részt, hogy egy automatikus szállítóeszközt (ATV: Automatic Transport Vehicle) épít, amely az űrállomásra fog szállítani utánpótlást (levegőt, élelmiszert, műszereket). Egy-egy ilyen küldetés megvalósítása igen összetett feladat, nagy bonyolultságú sok lépésből álló folyamat. Az ATV missziók tervezésének egyik fázisa a PDR, amikor is a már elkészült terveket egy nagyobb grémium részletesen megvizsgálja. A PDR során több száz tudós 10-20 fős csoportokban értékeli a misszió egyes részeinek tervet. A felülvizsgálat során megállapítják a hiányosságokat, kommentárokat fűznek a tervekhez és megoldási, továbbhaladaási javaslatokat tesznek. Ez a komplex folyamat eddig off-line módon történt az EADS-ben, amit szerettek volna elektronizálni. A PDR folyamat számítógépes megvalósításában videokonferencia eszközöket, eloszott szimulációs és csoportos munkavégzést segítő alkalmazásokat kellett összehangolni, s ezen alrendszerek működését figyelni, ellenőrizni és vezérelni a GeneSyS segítségével. A PDR validációs szcenárió során a GeneSyS jól működött és a felhasználói visszajelzéseket is felhasználva dolgozunk a GeneSyS következő változatán.
-5-
A GeneSyS 2.0-t más alkalmazásokban is tesztelni akarjuk. Így az egyik újabb, Web szerverek validálása nevű szcenárióban azt kívánjuk demonstrálni, hogy a legelterjedtebb webes infrastruktúrákban (web szerver, adatbázis kezelő, scriptek) milyen módon és mennyire hatékonyan alkalmazható a GeneSyS. A web szerveres szcenárióban bemutatásra kerül, hogy miképpen lehet javítani a hibák okának felderíthetőségét a monitorozott komponensek közötti hierarchia felállításával és a komponensek közötti függőségi kapcsolatok meghatározásával.
Jövőbeli tervek A GeneSyS koncepciót be kívánjuk mutatni a World Wide Web konzorciumnak és az OASIS standardizációs szervezetnek is. Ez ügyben folynak már tárgyalások a két szervezettel, s célunk, hogy a GeneSyS, mint Web Services alapú rendszerfelügyeleti middleware ipari szabvánnyá válhasson. A GeneSyS következő, 2.0-ás verziójában megvalósulnak a szükséges biztonsági funkciók (authentikálás, konzisztencia vizsgélatok), valamint olyan önálló döntésre képes intelligens ágensek, amelyek a mért adatok és tendenciák figyelése és előre felállított modellek alapján képes beavatkozni a felügyelt rendszerek működésébe akár úgy, hogy újraindítja vagy újrakonfigurálja azokat. Kapcsolódó linkek: • http://genesys.sztaki.hu • http://dsd.sztaki.hu
-6-