:

Szerző: Bodnár Ádám

2003. december 1. 11:01

Bevezetés a fürtözött rendszerek világába

Az utóbbi időben a HWSW hasábjain egyre többször esik szó fürtözött rendszerekről, azaz clusterekről. Cikkünkből kiderül, hogy épülnek fel a fürtözött rendszerek, milyen szempontok játszhatnak szerepet a tervezésüknél, milyen környezetben használhatóak, melyek az előnyeik és hátrányaik.

Az utóbbi időben a HWSW hasábjain egyre többször esik szó fürtözött rendszerekről, azaz clusterekről. Oldalunkon elsősorban nagy számítási teljesítményt igénylő alkalmazások futtatása kapcsán, szuperszámítógépek kiváltására tervezett megoldásként tárgyaltuk őket. Cikkünkből azonban kiderül, hogy a clustereket számos más feladatra is hatékonyan lehet alkalmazni. Meg szeretnénk mutatni, hogy épülnek fel a fürtözött rendszerek, milyen szempontok játszhatnak szerepet a tervezésüknél, milyen környezetben használhatóak, melyek az előnyeik és hátrányaik.

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. Az alábbi ábrán megfigyelhető, hogy a világ legnagyobb teljesítményű szuperszámítógépeit számba vevő Top500 listán az elmúlt 10 év során hogy növekedett a fürtözött rendszerek száma. Az alsó ábra azt mutatja meg, hogy az 500 leggyorsabb számítógép összteljesítményéből mekkora szeletet hasítottak ki a clusterek.


A clusterek térhódítása a Top500 listán (darabszám)


A clusterek térhódítása a Top500 listán (teljesítmény)

Valószínűleg nem túlzás azt állítani, hogy a Google alapjául szolgáló cluster az üzleti szférát tekintve a világ legnagyobb fürtözött rendszere. A Google kereső motorját a kezdetektől fogva úgy tervezték, hogy hatékonyan működjön egy clusteren. 2002 végi adatok szerint a keresőmotort egy több mint 15 ezer számítógépből álló fürt szolgálta ki, amelyben ugyanúgy megtalálhatóak voltak egyprocesszoros, Celeron-alapú számítógépek, mint két Xeon lapkára épülő rendszerek. A Google a fürtözött rendszerek minden létező előnyét kihasználja, hiszen a nagy teljesítményen, a kérések minél gyorsabb kiszolgálásán túl az üzletmenet szempontjából kritikus a rendelkezésre állás is.

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.

[oldal:A fürtök típusai]

A megvalósítás célja szerint a clustereket négy csoportba lehet sorolni.

  • High-performance computing (HPC): Nagy számításigényű tudományos-technikai szoftverek futtatása, ahol elsődleges cél a minél nagyobb számítási teljesítmény. HPC-jellegű 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ó.

    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 HPC fürtökről és a Beowulfokról a cikk későbbi részében még lesz szó.

  • High availability (HA): Magas rendelkezésre állás az üzleti alkalmazások részére, ilyen jellegű rendszerek általában bankokban, tőzsdéken, globális helyfoglalási rendszerekben, internetes áruházakban, illetve más, elektronikus tranzakciókat bonyolító helyeken találhatók. 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 HA clusterek esetében a csomópontok kommunikációja rendszertin csupán az "életjelekre" korlátozódik, ezért az összeköző hálózat jellemzően Fast Ethernet, ennél gyorsabb megoldásra csak nagyon ritkán van szükség.

    Load balance cluster

  • Load balance, parallel database (PDB): Terhelésmegosztás, az elsődleges cél a nagy hálózati terhelés megosztása a csomópontok között. A névből is kitűnik, hogy ilyen jellegű fürtöket rendszerint adatbázis-kezelő alkalmazások (Oracle, IBM DB2, Sybase) felhasználói telepítenek. Ezek a fürtök túlnyomó többségben két csomópontot tartalmaznak, amelyek azonos adatbázissal dolgoznak, vagyis azonos háttértárra vagy tárolóhálózatra (SAN) kapcsolódnak. Mivel az adatbáziskezelő alkalmazások rendszerint nem támogatják a széles körben elterjedt speciális interconnect technológiákat, azonban a csomópontok közötti kommunikáció mégis viszonylag intenzív, ezért erre a feladatra jellemzően Gigabit Ethernet összeköttetést szoktak használni.

    Oracle Real Application Clusters

    A load balance és high availability funkciókat egyszerre valósítja meg az Oracle Real Application Clusters (RAC). Az Oracle RAC esetében az adatbáziskezelő több számítógépen önállóan fut, azonban azonos adatbázisból dolgoznak. A csomópontoknak egyformán írnak, olvasnak és törölnek adatokat. Éppen ezért az egyik csomópont meghibásodása esetén az adatbáziskezelő nem áll le, csupán a teljesítmény csökken, azaz a fürt továbbra is ki tudja szolgálni a kéréseket.


    Az NEC Earth Simulator

  • Single system image (SSI): Nagy rendelkezésre állást és skálázhatóságot biztosító fürtözött rendszer, amely az alkalmazások és az operációs rendszer felé is egy számítógépnek látszik. Az SSI fürtök megkívánják a speciálisan finomhangolt operációs rendszert és alkalmazásokat, ezért telepítésük rendkívül erőforrás-igényes. SSI-fürt a világ jelenlegi legnagyobb teljesítményű számítógépe, a 4096 processzort tartalmazó NEC Earth Simulator.

    [oldal:Interconnect technológiák]

    A csomópontokat összekötő, ún. interconnect hálózatra számos megoldás létezik és terjedt el, az olyan nyílt szabványoktól kezdve, mint a Fast Ethernet, Gigabit Ethernet vagy Infiniband, egészen a kifejezetten fürtök összekapcsolására specializált megoldásokig, mint a Myricom Myrinet, a Dolphin SCI, vagy a Quadrics QsNet. Természetesen ezek mellett léteznek még gyártó-specifikus megoldások, amelyek egy-egy vállalat által a saját gyártású szerverek összekapcsolására használhatók. Ilyen megoldás többek között a Sun Fire Link vagy a HP Hyperfabric.

    A széles körben ismert és jelentős gyártók (HP, IBM, Sun) által támogatott Infiniband egy kedvező ár/teljesítmény arányt biztosító cluster interconnect technológia, amelynek előnye, hogy akár adattárolási környezetben is használható, így egy fürt és a hozzá kapcsolódó háttértárak összekapcsolása homogén környezetben oldható meg. Egy Infiniband-hálózat Host Channel Adapterekből és Target Channel Adapterekből áll, amelyek Infiniband switchekhez vannak kapcsolva. A réz vagy optikai vezetékek segítségével felépített kapcsolat vezetékenként 2,5 Gbps adatátviteli sebességet kínál, egy kapcsolat 1, 4 vagy 12 vezetéket használhat, így akár 30 Gbps sávszélesség is elérhető.

    A Dolphin SCI (Scalable Coherent Interface) az egyik legolcsóbb nagysebességű interconnect technológia, amely elsősorban kisebb clusterek építéséhez használható. Az SCI legmagasabb egyirányú adatáteresztő képessége másodpercenként 200 Mbyte, a minimális késleltetés pedig 4 mikrosecundum. Az SCI hálózat két- vagy háromdimenizós tórusz topológiájú lehet, amelyben egy hálózati gyűrűhöz legfeljebb 5 csomópont tartozhat, és mind az 5 csomópont egy, két vagy három darab gyűrűhöz tartozhat. Így egy 2D hálózat legfeljebb 5x5, egy 3D SCI hálózati pedig 5x5x5 csomópontot tartalmazhat. Az SCI interconnect nem igényel további hálózati alkatrészeket.

    A Myricom Myrinet talán a legnépszerűbb nagysebességű interconnect megoldás, felépítéséhez hálózati kátyákon kívül switchekre is szükség van. A Myrinet legnagyobb kétirányú adatáteresztő képessége 245 Mbyte/sec, a minimális késleltetés pedig 7 microsecundum. A hálózat legfeljebb 8192 csomópontot tartalmazhat.

    A Quadrics QsNet a legnagyobb sávszélességű speciális interconnect technológia, amely természetesen a legdrágább is. A QsNet legnagyobb kétirányú sávszélessége 350 Mbyte/sec, a minimális késleltetés pedig 5 mikrosecundum. A Quadrics QsNet hálózati kártyák legfeljebb 128 portos switchekhez csatlakoznak. Egy QsNet hálózat legfeljebb 1024 csomópontot tartalmazhat. A napokban bejelentett QsNet II már 900 Mbyte/sec sávszélességet biztosít és legfeljebb 4096 csomópontot képes kezelni.

    Az interconnect technológiák kapcsán érdemes még megemlíteni a gyártó-specifikus megoldásokat, mint amilyen a Sun Fire Link vagy a HP Hyperfabric. A Sun Fire Link névre keresztelt megoldás segítségével legfeljebb nyolc Sun Fire 6800, 12K vagy 15K számítógép kapcsolható össze. A Sun saját interconnect technológiájának fontos jellemzője, hogy a kapcsolat nem interfész-adaptereken keresztül zajlik, hanem a szerverek saját crossbar kapcsolójához illeszkedik. A Sun Fire Link a versenytársaknál lényegesen jobb sávszélességet (~ 1 Gbyte/sec) és rendkívül alacsony késleltetést (<4 ms) biztosít, hátránya azonban hogy csak bizonyos Sun szerverekkel kompatibilis.

    A HP Hyperfabric legfeljebb 64 szerver összekapcsolására használható, az interconnect "nyers" sávszélessége 4 Gbit/sec, az alkalmazások rendelkezésére álló sávszélesség 2,4 Gbit/sec. A HP jelenleg 8 és 16 portos Hyperfabric kapcsolókat kínál. A vállalat nem titkolja, hogy a Hyperfabricet elsősorban az Oracle RAC igényeihez tervezték, ennek megfelelően a TCPIP/UDP protokollok mellett elérhető rajta egy HMP nevű protokoll is, amely kifejezetten a megbízhatósággal kapcsolatos kiterjesztéseket tartalmaz.

    InterconnectSávszélesség (MByte/s)Késleltetés (mikrosec)Költség/port (Euro)
    Sun Fire Link~1000 (mono)<4n/a
    QsNet (Quadrics)350 (bi)54770
    Myrinet (Myricom)245 (bi)72050
    SCI (Dolphin) 2D 5x5200 (mono)41590
    SCI (Dolphin) 3D 5x5x5200 (mono)42226
    Gigabit Ethernet125 (bi)100477
    Megabit Ethernet12 (bi)10048

    [oldal:HPC-fürtök tervezési irányelvei]

    A fürtök tervezése és telepítése esetén mindenkor a majdan 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 *IX vagy 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ópontokat és a csomópontokat összekötő -– interconnect -- hálózat típusát a futtatni kívánt alkalmazás határozza meg. Az összekötő hálózat kiválasztásánál az alkalmazás szemcsézettségét kell figyelembe venni. Ezek, valamint a rendelkezésre álló büdzsé ismeretében kiválasztható a csomópontok konfigurációja, valamint az azokat összekötő hálózat típusa.

    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, tehát 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. Természetesen léteznek olyan HPC-fürtök, amelyeket nagy multiprocesszoros rendszerekből építenek fel, jelenleg zömmel ilyenek népesítik be a világ legnagyobb teljesítményű számítógépeit számba vevő Top500 listát.

    Cikkünk írásakor a legnagyobb teljesítményű Beowulf-fürt a Virginia Tech egyetemen telepített, "X" néven ismert rendszer, amely 1100 darab kétprocesszoros Apple Power Mac G5 csomópontot tartalmaz és összteljesítménye 10,28 TeraFLOPS, így a Top500 lista szerint a harmadik legnagyobb teljesítményű számítógéprendszer. A számítógépekben egyenként két darab 2 GHz-es IBM PowerPC 970 processzor, 4 Gbyte memória és 160 Gbyte merevlemez található. A csomópontokat Infiniband-alapú interconnect hálózat kapcsolaja össze. A rendszert jelenleg még tesztelik, tudományos munkákra január 1-től használják majd.

    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.

    [oldal:HPC-fürtök tervezési irányelvei (folytatás)]

    "A végeredmény mindig nulla", azaz a hardverre szánt büdzsét a csomópontok és az összekötő hálózat között kell elosztani. Nyilvánvaló, hogy minél többet költünk az egyikre, annál kevesebb marad a másikra. A csomópontok számának meghatározásához hathatós segítség lehet Amdahl törvénye, valamint a Gustafson-Barsis szabály amelyek kimondják, hogy a párhuzamosíthatóság meghatározásánál az egész alkalmazást figyelembe kell venni. Az alkalmazás párhuzamosítható és nem párhuzamosítható részeinek ismeretében meghatározható, hogy adott típusú csomópontokat figyelembe véve hány darab szükséges a leghatékonyabb végrehajtáshoz.

    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 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.

    A PVM egy függvénykönyvtár, másrészt egy úgynevezett daemon alkalmazás, amelyet a csomópontokon kell futtatni. A daemon futása ad hozzáférést a rendszer erőforrásaihoz, illetve biztosítja a fürt felhasználói számára, hogy a futtatni kívánt alkalmazások felé az erőforrások megfelelően csoportosítva legyenek "kiajánlhatók". Tulajdonképp a PVM összefogja, és csoportokba rendezi a fürtben rendelkezésre álló erőforrásokat. Természetesen a felhasználók (adminisztrátook) tetszőlegesen csoportosíthatják a fürt csomópontjait és tetszőlegesen rendelhetik hozzá az egyes csomópontokat az alkalmazásokhoz.

    Az elterjedt üzeneküldő protokollokon kívül természetesen a nagy gyártók mind rendelkeznek saját megoldásokkal, ezek kapcsán mindképp meg kell említeni a HP-t, amely a Compaq, a Tandem és a Digital örökségéből kifolyólag számos ilyen jellegű megoldással (Computer Interconnect, ServerNet II, Memory Channel, Digital Storage System Interconnect, FDDI, ...) rendelkezik. Ezek részben saját hardveres megvalósítással rendelkeznek, részben azonban a már meglevő és elterjedt fizikai kapcsolatokon (Ethernet, Gigabit Ethernet, Fibre Channel) alapulnak.

    Felhasznált irodalom:

    • Web Search for a Planet: The Google Cluster Architecture (Luiz André Barroso, Jeffrey Dean, Urs Hölzle)
    • Computer Architecture: A Quantitative Approach (J. L. Hennessy, D. A. Patterson)
    • The Design of High Performance Compute Clusters - Overview and Benchmarking (Tom Lehmann)
    • HPC Hardware: CPU, Memory, I/O, Management & the Bigger Picture (Richard Libby)
    • HPC Communication Architectures: Comparing Today's Choices (Jeremy C. Siadal)
    • High Performance Computing Applications Performance & Overview (Sunil Kulkarni, Paresh Pattani)
    • Terascale Computing Facility Information Session (Srinidhi Varadarajan, Kevin Shinpaugh, Jason Lockhart)
    • Scientific Computing on the Sony PlayStation 2 (Craig Steffen)
    • www.top500.org

    A cikk elkészítéséhez nélkülözhetetlen segítséget nyújtott Fischer Erik, Ódor Tamás, valamint Balogh Mihály. Köszönet illeti továbbá a HWSW fórumozóit.

    Szólj hozzá a fórumban!

  • a címlapról