Több számítógép összekapcsolásának fıbb módjai A Clusterek 1. A Clusterek általában: Az informatikai eszközökkel gyakran speciális feladatokat kell megoldanunk. Ilyen problémák megoldására nyújt jó lehetıséget a géptelepek építése, melyeket clustereknek (ejtsd: klaszter) vagy fürtöknek hívunk. Ezen alkalmazás során egyedi gépeinket összekötjük valamilyen rendszer szerint, és együtt végzik el a szükséges munkát. A clustereket üzleti és tudományos céllal is használják. Üzleti szempontokból a fürtözött rendszerek elınye elsısorban a magas rendelkezésre állás és a skálázhatóság, tudományos szempontokból vizsgálva a skálázhatóság mellett leginkább a kedvezı ár/teljesítmény arány szól a fürtök mellett. Ma már bárki összeépíthet, egy szinte szuperszámítógépes teljesítményt nyújtó, tudományos célú fürtözött rendszert, miközben az ár töredéke lehet egy azonos számítási teljesítményt nyújtó szuperszámítógépének. A fürtözött rendszerek elınye a nagy, SMP (shared memory multi-processor) vagy MMP (massively parallel multi-processor) rendszerekhez képest, hogy azonos processzorszám, illetve számítási teljesítmény mellett rendszerint olcsóbban telepíthetık, a felépítésbıl adódóan érzéketlenebbek a hibákra, illetve az alkalmazások skálázhatósága még akkor is megoldható, amikor az SMP rendszerek már nem bıvíthetık tovább. A több csomópontból álló rendszerek az egyik csomópont kiesése esetén nem omlanak össze, teljesítményük ugyan lecsökken, azonban a fürt továbbra is mőködıképes marad, az alkalmazások futása folytatódhat. Természetesen mindig az adott alkalmazástól függ, hogy lehet-e és érdemes-e fürtözött rendszeren futtatni. A clusterek hátránya, hogy mivel több számítógépbıl állnak, ezért a felügyeletük, menedzsmentjük bonyolultabb, azonban mivel a csomópontok rendkívül hasonló, vagy azonos felépítésőek, a menedzsment-feladatok bonyolultsága a csomópontok számának növelése esetén az egyenesnél jóval kisebb arányban nı. Természetesen ma már számos olyan alkalmazás áll a felhasználók rendelkezésére, amelyek a fürtözött rendszerek menedzsmentjét könnyítik meg. A sok alkatrész miatt a hibalehetıségek száma is magas, azonban mivel a csomópontok azonos felépítésőek és a felhasznált alkatrészek viszonylag olcsóak, ezért a javítások vagy cserék egyszerőek. A fürtök által ellátott feladatok alapján az alábbi csoportokat különböztetjük meg: Jelen esetben négy fontos típust tárgyalunk. - 1 -
2. A Clusterek típusai: I. Load Balance: Leginkább Network Load Balancing néven ismert (NLB). Az eszköz nagy igénybevétel esetén terheléselosztást végez a tagok közt, gyakran webszervereknél találkozhatunk vele. II. High Availability: A rendszer magas rendelkezésre állást biztosít, tipikus felhasználási terület lehet adatbázisszerverek üzemeltetése. III. High-Performance Clusters: Nagy számításigényő feladatok elvégzésére alkalmas fürt, ahogy a nevében is szerepel tudományos, technikai célokra. IV. Grid: Rengeteg, egymástól független, földrajzilag távol lévı gépek szabad erıforrásait használja fel, bonyolult mőveletek kiszámítására. I. Load Balance A load balancing általában hálózatos környezetben használt technológia. A load balancing e típusa a network load balancing. Mint nevébıl is kitőnik, célja a terhelés elosztás. Ez a technika a kiskálázás tipikus esete. Nagy terhelés esetén nem egy, hanem több kiszolgálóval oldják meg a szolgáltatást, amelyek között valamilyen rendszer alapján osztják el a feléjük irányuló kéréseket. - 2 -
A network load balancing leggyakoribb alkalmazása a web kiszolgálóknál figyelhetı meg. A webszerverek esetén a cél a Slashdot effektus elkerülése. A Slashdot effektus akkor lép fel, ha egy érdekesebb hír jelenik meg a Slashdot hírportálon és az összes olvasó, egyszerre akarja elérni a linkelt címeket, ekkor a linkelt címeket kiszolgáló gyengébb gépek/hálózatok túlterhelıdnek és nem lesznek elérhetık. A hálózati terhelés elosztás legegyszerőbb és legolcsóbb megvalósítása a körben forgó (round robin) DNS. A round robin DNS esetén az egy DNS névre érkezı kéréseket több IP címre irányíthatjuk. Tehát a hálózati terheléselosztás alapvetı célja a beérkezı kéréseknek a külvilág felé egyetlen kiszolgálónak látszó kiszolgálók csoportja (fürtje) közötti elosztása. Fontos jellemzıje, hogy a kérések elosztását önálló, a kérések kielégítésére önmagukban is képes, független kiszolgálók között végzi, illetve az elosztás mővelete a hálózati rétegben történik, szemben például az alkalmazások, az alkalmazáskomponensek vagy az objektumok közötti elosztással. Állandó jellegő adatokkal dolgozó kiszolgálók esetében alkalmazható (FTP, web), változó adatok kezelésére (adatbázis, levelezés) a közös tárolóeszközt használó feladat átvételi fürtök az alkalmasak. A fürtözés a kiszolgálói alkalmazás megváltoztatása nélkül történik, a kiszolgáló alkalmazás nem tud arról, hogy ıt fürtözik. A hálózati terheléselosztásnál a technológia kiválasztásának alapkérdés, hogy vajon alkalmazzunk-e egy kevésbé egyenletes terheléselosztást eredményezı, de egyszerő módszert, vagy egy minél kifinomultabban szabályozott, minél egyenletesebb elosztást biztosító, de magas többletterheléssel járót. A load balancig és a fail-over technológia együttes alkalmazásával magas rendelkezésre-állású, nagy terhelhetıségő hálózati kiszolgálókat építhetünk (HA). II. High Availability Minél több programot és szolgáltatást használ egy vállalat, annál nagyobb segítséget jelent a rendszergazdák számára a központosított azonosítás. Ráadásul egy központi adatbázis használatával a biztonság is nagymértékben növelhetı. Gondot jelenthet viszont, ha minden hitelesítést egyetlen gépre helyezünk. Ebben az esetben egyetlen gép meghibásodása esetén az egész vállalat leállhat. Itt kerülnek a képbe a hibatőrı telepek. Melyek magas rendelkezésre állást biztosítanak, többek között az üzleti alkalmazások részére (bankokban, tızsdéken, globális helyfoglalási rendszerekben, internetes áruházakban). A High Availability clusterek célja, hogy több számítógép és periféria olyan módon kapcsolódjon össze, hogy azok egyetlen rendszert alkossanak, amely akkor is mőködıképes marad, ha valamely komponens meghibásodik. A legtöbb HA géptelep kiépítésének alapja egy üzemelésfigyelı ( létfenntartó ) szolgáltatás, amelyet szívhangnak (heartbeat) hívunk. Ezt a szívhangot használjuk, hogy a géptelepben található csomópontok egészségi állapotát ellenırizzük. - 3 -
Ha a fı kiszolgáló meghibásodik, vagy csak lekapcsoljuk, esetleg bıvíteni szeretnénk, akkor a kiszolgálás a másodkiszolgáló veszi át. A fıkiszolgáló visszaállítása után, az új adatok visszakerülnek rá, és a szolgáltatást újra átveszi, míg a másodkiszolgáló készenlétben vár. - 4 -
Nagyon fontos, hogy megkülönböztessük a nagy rendelkezésre állást a hibatőréstıl. Ha egy szolgáltatás az idı 99,999%-ában elérhetı, akkor, és csak akkor nevezzük hibatőrınek. Ha ezt a rendelkezésre állási szintet nem érjük el - amit speciális hardver nélkül nem lehet megtenni csupán high availability-rıl beszélünk. Ezek gyakran a cég legfontosabb vagy akár a teljes mőködését szabályozzák, így az informatikai rendszerekben bekövetkezı bármilyen szolgáltatás kiesés vagy adatvesztés komoly anyagi következményekkel járhat. Az informatikai eszközök ugyanakkor egyre nagyobb versenyben kerülnek kifejlesztésre, ami gyakran együtt jár azzal, hogy a régebbi típusoknál ugyan lényegesen gyorsabbak, nagyobb kapacitásúak és többet tudnak (amire természetesen szükség is van), de ezzel együtt egyre megbízhatatlanabbak. Ráadásul minél több eszközbıl áll a rendszerünk, annál több ponton következhetnek be problémák. III. High-Performance Clusters High-Performance Clusters-t alkalmazunk nagy számításigényő tudományos-technikai szoftverek futtatásakor, ahol elsıdleges cél a minél nagyobb számítási teljesítmény. HPCjellegő clusterekkel rendszerint egyetemeken, kutatólaboratóriumokban, illetve digitális tartalomkészítéssel foglalkozó stúdiókban, renderfarmokon találkozhatunk (a Top500 lista elıkelı helyein foglalnak helyet az új-zélandi WETA Digital renderfarmjai, amelyeken a Győrők ura filmtrilógia trükkjei készültek). A HPC célú fürtök a párhuzamos futásra felkészített, rendszerint egyedi fejlesztéső alkalmazások számára biztosítanak osztott környezetet. Természetesen HPC cluster építésének csak akkor van értelme, ha a futtatni kívánt feladat párhuzamosítható. Earth Simulator - 5 -
Az egyik legrégebbi és legismertebb HPC-jellegő cluster a Beowulf nevet kapta. A Beowulfot 1994 nyarán építették a NASA Goddard Space Flight Centerben: a rendszer eleinte 16 darab i486dx processzoros csomópontot tartalmazott, amelyeken Slackware Linux operációs rendszer futott. A csomópontokat 10 Mbps Ethernet hálózat kapcsolta össze. Mivel ezt a fajta "szuperszámítógépet" kiskereskedelemben megvásárolható alkatrészekbıl is könnyen, olcsón össze lehetett állítani, ezért nagyon gyorsan népszerővé vált nem csak a NASA-n belül, hanem az egész világon. A hasonló, kiskereskedelemben kapható alkatrészekbıl összeállított HPC fürtöket ma már szokás egyszerően Beowulf-fürtnek is nevezni. A fürtök tervezése és telepítése esetén mindenkor a majdani futtatni kívánt alkalmazás paramétereit szem elıtt tartva kell eljárni. A megfelelı hardverkörnyezet kiválasztásakor figyelembe kell venni az alkalmazás "szemcsézettségét", vagyis hogy a szoftver mekkora számú és mérető párhuzamosítható részre osztható fel. Ehhez a szemcsézettségi szinthez kell megválasztani a hardverkörnyezet szemcsézettségét. Utóbbit a számítási és kommunikációs képességek hányadosaként írhatjuk fel. Durva szemcsézettségő fürt lehet egy Fast Ethernet hálózattal összekapcsolt cluster, a legfinomabb szemcsézettséget természetesen egy nagy, multiprocesszoros (SMP) rendszer jelenti. Ha az alkalmazás finomabb szemcsézettségő a hardvernél, akkor a cluster teljesítményét a lassú kommunikáció fogja vissza, ha az alkalmazás szemcsézettsége durvább a hardverénél, akkor a rendszer nem rendelkezik elég számítási képességgel. Összességében azt kell látni, hogy egy fürt akkor lehet a leghatékonyabb, ha többet számol, mint amennyit kommunikál. A szoftverkörnyezetet szintén az alkalmazás határozza meg, a legtöbb esetben az operációs rendszer Linux, de a Windows is rendelkezik fürtözési funkciókkal, noha ezek elsısorban üzleti alkalmazások magas rendelkezésre állását lehetıvé tevı szolgáltatások. A csomópontok megválasztásánál szempont lehet, hogy az alkalmazás elsısorban fixpontos vagy lebegıpontos számítási teljesítményt igényel-e, szükség van-e 64 bites architektúrára, valamint hogy a processzorban található cache mérete mennyiben befolyásolja a futási teljesítményt. A csomópontok az igényektıl függıen az egyprocesszoros, 32 bites PC-tıl kezdve az akár két vagy több 64 bites processzort tartalmazó szerverig is változhatnak. A Beowulf, kiskereskedelemben kapható alkatrészekbıl összeépített clusterek csomópontjai jellemzıen két processzorral rendelkeznek, ennek elsısorban helyfoglalási, hıtermelési és költség-okai vannak, az egy- és kétprocesszoros konfigurációk közötti árkülönbség ugyanis kisebb, mint a két- és négyprocesszoros gépek közötti különbség. A Beowulfok kapcsán mindenképp említést érdemel az amerikai NCSA (National Center for Supercomputing Applications) által épített fürtözött rendszer, amely Linux operációs rendszert futtató Sony PlayStation 2 konzolokból áll. A készülékeket Fast Ethernet hálózat köti össze. A fürtözött rendszeren kémiai kutatásokat támogató számítási feladatokat hajtanak végre. A jövıben szinte biztosan lesz bıvítés, ezt a tervezéskor mindenképp figyelembe kell venni. Ez mindössze annyit jelent, hogy a hálózatot úgy érdemes megtervezni, hogy a csomópontok számát a késıbbiekben egyszerően lehessen növelni. Már szóltunk róla, hogy a HPC-jellegő fürtök rendszerint speciálisan a párhuzamos környezetre optimalizált alkalmazásokat futtatnak. Az alkalmazást tehát minden esetben fel kell készíteni a párhuzamos futásra, ezt rendszerint speciális üzenettovábbító függvénykönyvtárak (library) segítségével lehet megtenni. Ezek a függvénykönyvtárak arra szolgálnak, hogy magas szintő programozási nyelveken egyszerően és hatékonyan megoldható legyen a csomópontok közötti kommunikáció. A legismertebb és leginkább - 6 -
elterjedt függvénykönyvtárak az MPI (Message Passing Interface) és a PVM (Parallel Virtual Machine). A HPC-jellegő fürtözésben érdekelt gyártók (Sun, HP, IBM,...) mind rendelkeznek saját, MPI-alapú függvénykönyvtárral, amelyet operációs rendszerükhöz és hardvereikhez igazítanak. Az MPI-nak létezik szabad implementációja is, ez az MPICH, amelyet rendszerint Linux operációs rendszert futtató fürtökön használnak. IV. GRID Számos olyan tudományos és mőszaki probléma létezik, melyek megoldásához a szokásos számítógépek, PC-k, munkaállomások, de még a szerverek sem elég gyorsak a szükséges algoritmusok ésszerő idı alatt való lefuttatásához. A 70-es évektıl intenzív kutatás és fejlesztés kezdıdött arra vonatkozóan, hogy hogyan lehet a leggyorsabb számítógépet megépíteni oly módon, hogy a számítógépen belül egyszerre több processzort kapcsolnak össze nagysebességő kapcsolók segítségével. Ezeket a kiemelkedı sebességő számítógépeket szuperszámítógépeknek nevezik. A tudomány és technológia fejlıdésével szerepük egyre nı, mert az egyre pontosabb tudományos és mőszaki modellek egyre nagyobb számítási sebességet igényelnek. A mőveletszámítás terén ma már ott tartunk, hogy a legnagyobb, több teraflop sebességő szuperszámítógépek sem képesek egyedileg kielégíteni a felmerült igényeket. A grid-alkalmazások az internetre kapcsolt számítógépek ki nem használt processzorkapacitását rakják össze egy virtuális szuperszámítógéppé. A grid-hálózatban a legkülönbözıbb, egymástól akár távol lévı eszközök (az asztali PC-ktıl a szerverekig) kapcsolhatók össze. A rendszer a létezı, de ki nem használt számítási teljesítményt pl. munkaidın kívüli irodai gépek, vagy a nem teljes kihasználtsággal futó berendezések hasznosítja. Sok elemzı szerint a web következı generációját az úgynevezett grid-rendszerek alkotják majd, ahol már nemcsak az információ tehetı nyilvánossá, illetve szabadon elérhetıvé, hanem az információ feldolgozásához kapcsolódó tetszıleges szolgáltatások is bárki számára hozzáférhetıvé válnak. Ez a megközelítés várhatóan új távlatokat nyit az információ elérésében és feldolgozásában. - 7 -
A Grid alkalmazási területei A leggyakoribb szuperszámítógép felhasználási területek és modellezési feladatok a következık: gépipar, építészet anyagkutatás, statikai-, mechanikai vizsgálatok autó- és repülıgépgyártás szélcsatorna és baleseti kísérletek kiváltása kozmetikai cégek hatóanyag vizsgálat, állatkísérletek elkerülése humán gyógyszerkutatás emberkísérletek elıtti ellenırzés, sejt anyagcsere modellezés, gén funkció megfejtése üzleti szféra, biztosítók analízis, kockázat elemzés, gazdasági és szociológiai folyamatok modellezése meteorológia idıjárás elırejelzés, klímamodellezés őrkutatás, csillagászat, geológia kép- és jelfeldolgozás mobilszolgáltatók hálózat optimalizáció atomenergetikai ipar mőködési paraméterek vizsgálata, katasztrófa modellek katonai szervezetek csapatmozgások optimalizációja A Grid mőködése Nos, ha tudósok vagyunk, és a kollégánk molekula szimulációs programját szeretnénk futtatni, többé nem kell a gépre telepíteni a programot, ehelyett megkérhetjük a Gridet, hogy tegye ezt meg a kollégánk számítógépén. Vagy ha a kollégánk elfoglalt, megkérhetjük a Gridet, hogy másolja át a programot egy másik számítógépre vagy számítógépekre, amelyek munka nélkül vannak a világ másik felén, és ott futtassa azt. - 8 -
Valójában meg se kell kérni a Gridet, megtalálja a leginkább megfelelı helyet a program futtatásához, és oda telepíti. Ha analizálni szeretnénk a világ minden részérıl befutott adatokat, megkérhetjük erre a Gridet, és az megtalálja a legjobb adatforrást, majd elvégzi a feladatot. Abban az esetben, ha az analizálást távoli kollégáinkkal együtt szeretnénk elvégezni, a Grid kapcsolatot teremt a számítógépek között, így olyan mintha mind egy helyi hálózatban lennénk. Így nem kell aggódni a különféle jelszavak miatt sem, a Grid tudja kinek van jogosultsága részt venni az adott közös tevékenységben. A SETI@home programról: SETI@home egy virtuális szuperszámítógép, ami analizálja a Puerto Ricoi Arecibo rádió teleszkópból kapott adatokat, földönkívüli intelligenciára utaló jeleket kutatva. Az Internet segítségével SETI több mint 3 millió számítógépet használ fel számításaihoz. SETI@home egy képernyıkímélı program tehát nem befolyásolja a gép használatát- és bárki letöltheti a webrıl. A különbözı PCk közösen dolgoznak a problémák részein, majd az eredményeket továbbítják a központi rendszerbe feldolgozásra. A Grid rendszer ugyanezen elvek alapján mőködik. A GRID valódi globális hálózata még nem létezik, de részrendszerek már mőködnek. A technológia európai fejlesztıközpontja a franciaországi Montpellier-ben mőködik. Magyarországon is több olyan kutatás folyik, amelyik a GRID-rendszerek kialakításából veszi ki a részét. A Számítástechnikai és Automatizálási Kutatóintézet (SZTAKI) a GRIDkutatásokban élenjáró szerepet játszik. A DataGRID-projektben azt a rendszert alakítják ki, hogy miként lehet figyelni az egyes alkotóelemek és az egész rendszer teljesítményét, valamint hogy ezt miként lehet minél egyszerőbben ábrázolni. Egy, a múlt hónapban lezajlott nemzetközi konferencián a SZTAKI és az Országos Meteorológiai Szolgálat közösen mutatta be az elsı magyar GRID-rendszert, amely az ultrarövid távú idıjárás-elırejelzésben játszik fontos szerepet. Az öt nagy gondolat a Grid hátterében Természetesen számos nagy ötlet áll a Grid mögött. És magától értetıdıen néhány ezek közül már létezett, még jóval a Grid nevének megjelenése elıtt. Mindazonáltal ha vetünk egy pillantást a Gridet építı szoftverfejlesztık és mérnökök erıfeszítéseire, öt nagy területrıl beszélhetünk. A legfontosabb az erıforrások globális szinten való megosztása. Ez a Grid valódi lényege. Ezután, habár ez aligha tekinthetı újdonságnak, a biztonság kérdése egy kritikus nézıpontja a Gridnek, hiszen magas fokú bizalomnak kell lennie az erıforrás szolgáltatók és felhasználók között, akik gyakran nem fogják tudni, hogy ki a másik fél. Az erıforrások megosztása alapvetıen konfliktusban áll a fokozottan konzervatív biztonsági intézkedésekkel, melyeket egyedi számítógépközpontokban és PC-ken alkalmaznak. Így a Grid biztonsági jog megszerzése döntı fontosságú. Ha az erıforrások megosztása biztonságossá válik, akkor a Grid igazán kifizetıdıvé válik, amikor is kiegyenlíti a terhelést az erıforrásokon, így a számítógépeket mindenütt hatékonyabban használják, és a magas fokú számítógépi erıforrások elérésére várakozók sora lerövidíthetı. Ehhez a munkához azonban a kommunikációs hálózatoknak biztosítaniuk kell, hogy a távolság többé ne számítson - amennyiben egy számítást a bolygó másik felén - 9 -
végzünk el és nem a szomszéd szobában, nem szabadna, hogy számottevı sebességcsökkenést eredményezzen. Végül, amely manapság sokban megalapozza a Grideken folyó világmérető tevékenységeket, a nyitott szabványok kérdésköre.ezek szükségesek, hogy megbizonyosodhassunk arról, a K+F képes világméretben konstruktívan hozzájárulni a Grid fejlesztéséhez, és az ipar felkészült lesz arra, hogy beruházzon a kereskedelmi Grid szolgáltatásokba és az infrastruktúrába. Blokkok építése Igaz ugyan, hogy a Grid még korai stádiumban van, mégis megfontolt konszenzus van a Grid technológia fejlesztıi közt arról, hogy hogyan kellene mindennek felépülnie. Ahogy az építımérnökök is megteszik egy híd építésénél, a szoftvermérnököknek is specifikálniuk kell egy átfogó tervet arra amit építeni szeretnének, mielıtt hozzálátnának a munkához. Ezt a tervet "Grid architektúrának" nevezik. A Grid architektúra azonosítja a Grid alapvetı komponenseit, meghatározza céljaikat és funkcióikat, és vázolja, hogy ezen komponenseknek hogyan kellene interaktusba lépniük egymással. A Grid az alapot adó hardver-tıl függ, kezdve a számítógépektıl és kommunikációs hálózatoktól, melyek a Grid alapját adják a Grid szoftverig, mely a komplex számítások összes fajtáját elvégezve fut a Griden. Mindezen komponenseken belül a Grid lényegét, ami az egész dolgot lehetıvé teszi a szoftver adja, ami engedélyezi a felhasználónak a hálózatban elosztott gépekhez való hozzáférést. Ez a szoftver a "köztes réteg", megkülönböztethetı az operációs rendszerektıl (mint amilyen a Linux) ugyanakkor megkülönböztethetı az alkalmazásoktól is, melyek egy konkrét problémát oldanak meg a felhasználó számára (például egy idıjárás elırejelzı program). A köztes réteg fogalmilag a két szoftvertípus között helyezkedik el - innen a neve. A köztes réteg feladata annak szabályozása, hogy az alkalmazások a megfelelı számítógépeken fussanak, hatékonyan és megbízhatóan, bárhol is legyenek a Griden. Általánosságban szólva, a köztes réteg feladata a Grid különbözı számítógépi erıforrásainak egységbe szervezése és integrálása, annak érdekében, hogy egy összefüggı egészet alkothassanak. A köztes réteg fejlesztése a fı feladatát képezi számos jelenleg folyamatban lévı Grid kutatási és fejlesztési projektnek világszerte. A Grid köztes réteg már ma is elérhetıvé tesz mőködı Grid prototípusokat, melyekre gyakran hivatkoznak tesztágyakként, mivel ezeket fıként demonstrációs célokra alkalmazzák, így kevésbé tekinthetjük ıket megbízható erıforrásoknak. - 10 -