([email protected])
Ez a dokumentum leírja hogyan készítettem el a kutatásaimhoz szükséges nagy teljesítményű Linux fürtöket.
Az alábbi információkat a saját felelősségedre használd. Nem vállalok felelőseget semmilyen cselekedetedért, amelyet ezen HOGYAN elolvasására alapozol. Eme HOGYAN legfrissebb változata megtalálható a http://www.ram.org/computing/linux/linux_cluster.html honlapon.
Szemben más dokumentumokkal, melyek általában beszélnek arról hogyan kell fürtöket készíteni, ez egy specifikus leírás arról, hogy a mi laborunk miként készítette el azt. Így nem csak a számítási szempontok részleteit, hanem az asztali számítógép, laptop, és a szerver általános szempontjait is tartalmazza. A dokumentum főleg belső használatra készült, de feltettem webre is, mivel számos e-mail-t kaptam amik ugyanezekről az információkról érdeklődnek. Mostanában - ahogy egy másik 64 csomópontos fürtöt tervezetem - azt találtam, hogy nincs információ arról, pontosan hogyan gyűjthetsz össze olyan komponenseket amiből Linux alatt megbízhatóan működő csomópontokat hozhatsz létre. Olyan információ ami nem csak a csomópontokkal történő számítást, hanem azok szükségleteit is tartalmazza. Leginkább arra használható ez a HOGYAN, hogy bemutassa milyen típusú hardverek működnek jól Linux alatt és milyenek nem.
Ez a fejezet a hardver választásommal foglalkozik. Az ismert hardver problémák fejezetet leszámítva feltettem, hogy minden tényleg jól működik.
A hardver telepítése egyszerű, a legtöbb részlet benne van a kézikönyvben. Minden részben a hardverlista a megrendelés sorrendjében található (a legújabb a legelső).
32 db gép az alábbi összeállítással rendelkezik:
32 db gép az alábbi összeállítással rendelkezik:
32 db gép az alábbi összeállítással rendelkezik:
32 db gép az alábbi összeállítással rendelkezik:
1 db szerver külső használatra (információ terjesztés) az alábbi összeállítással rendelkezik:
1 db asztali számítógép az alábbi összeállítással rendelkezik:
2 db asztali számítógép az alábbi összeállítással rendelkezik:
1 db asztali számítógép az alábbi összeállítással rendelkezik:
1 db asztali számítógép az alábbi összeállítással rendelkezik:
2 db asztali számítógép az alábbi összeállítással rendelkezik:
2 db asztali számítógép az alábbi összeállítással rendelkezik:
2 db asztali számítógép az alábbi összeállítással rendelkezik:
2 db asztali számítógép az alábbi összeállítással rendelkezik:
3 db asztali számítógép az alábbi összeállítással rendelkezik:
1 db tűzfal az alábbi összeállítással rendelkezik:
1 átjáró (gateway) az alábbi összeállítással rendelkezik. Az átjáró tükrözése a tűzfalnak, arra az esetre, ha az összeomlana/elromlana.
Biztonsági mentés:
Monitorok:
Nyomtatók:
KVM monitor kapcsolókat használunk egy olcsó monitorral, hogy "lássuk" az összes gépet.
Ez egy jó megoldás, de azt hiszem nem feltétlenül szükséges. Amire szükségünk van, az egy kis hordozható monitor amely a PC hátára csatlakoztatható (stylus-al működik, mint a Palm). Nem tervezem több monitorkapcsoló illetve KVM kábelt használatát.
A hálózat fontos:
A mi szállítónk a Hard Drives Northwest ( http://www.hdnw.com). Minden számítási csomópontért a fürtünkben (a két processzort is beleértve) körülbelül 1500-2000 USD-t fizettünk adóval együtt. Az általános célunk az volt, hogy a költség 1000 USD alatt legyen processzoronként (beleértve az egyéb alkatrészek árát is).
Az alábbi kerneleket és disztribúciókat használjuk:
Ezek a disztribúciók jól működnek mióta a frissítéseket CD-n küldik és nem kell megbízni a külső hálózatban a frissítések beszerzéséhez. "Tisztábbnak" tűnnek mint a szokásos Red Hat disztribúciók és a beállítása nagyon stabil.
A Shorewall 1.3.14a programot ( http://www.shorewall.net) használjuk tűzfalnak.
Mi a saját szoftverünket használjuk alkalmazások párhuzamosítására, de vannak tapasztalataink PVM-el és MPI-al. Szerintem ezeknek az előre csomagolt programoknak az többletterhelése túl nagy. Azt ajánlom írjál alkalmazás specifikus kódot a feladatodhoz (magánvélemény).
A Linux és a legtöbb szoftver ami Linux rendszeren fut ingyen másolható.
Ez a fejezet a merevlemez-partícionálási stratégiát írja le.
fürtözött gépek:
hda1 - swap (2 * RAM)
hda2 - / (maradék hely)
hdb1 - /maxa (teljes lemez)
asztali számítógép (windows nélkül):
hda1 - swap (2 * RAM)
hda2 - / (4 GB)
hda3 - /spare (maradék hely)
hdb1 - /maxa (teljes lemez)
hdd1 - /maxb (teljes lemez)
asztali számítógép (windows-szal):
hda1 - /win (teljes disk)
hdb1 - swap (2 * RAM)
hdb2 - / (4 GB)
hdb3 - /spare (maradék hely)
hdd1 - /maxa (teljes lemez)
laptop-ok (egy lemez):
hda1 - /win (a teljes lemezméret fele)
hda2 - swap (2 * RAM)
hda3 - / (maradék hely)
A fürt gépeire a csomagok minimális halmazát telepítettük. A felhasználóknak megengedtük, hogy úgy konfigurálják az asztali számítógépeket, ahogy akarják.
Az FAI ( http://www.informatik.uni-koeln.de/fai/) egy automatizált rendszer, amely Debian GNU/Linux operációs rendszer telepítésére használható PC fürtökön. Veszel egy vagy több szűz PC-t, bekapcsolod és néhány perc múlva a Linux fel van telepítve és be van állítva, futtatása az egész fürtön semmilyen beavatkozást nem igényel.
A SystemImager ( http://systemimager.org) egy szoftver, ami automatizálja a Linux és szoftverek telepítését és a termelés beindítását.
Van egy teljesen elosztott rendszerünk. Ezt azt jelenti, hogy minden gép az operációs rendszer egy példányát tartalmazza. Az operációs rendszert minden gépre manuálisan telepíteni kényelmetlen. A telepítés optimalizálásához először egy gépet telepítettem és állítottam be pontosan úgy, ahogy akartam. Aztán készítettem egy tömörített tar állományt az egész rendszerről amit egy CD-ROM-on helyeztem el. Végül erről klónoztam minden gépet a fürtben.
A tar állomány készítésére az alábbi utasítást használtam:
tar -czvlps --same-owner --atime-preserve -f /maxa/slash.tgz /
Egy go
nevű szkriptet használok, ami veszi a hosztnevet és az
IP címet mint argumentumot, és kicsomagolja a slash.tgz
állományt
a CD-ROM-ról, majd lecseréli a hosztnevet és az IP címet a megfelelő helyeken.
A go
szkript és bemeneti állományai elérhetőek a
http://www.ram.org/computing/linux/linux/cluster/ címen.
Ezt a szkriptet módosítani kell a TE fürtöd felépítésednek megfelelően.
A Tom's Root Boot csomagot is használom (
http://www.toms.net/rb/) arra, hogy
indítsam a gépet és klónozzam a rendszert.
A go
szkriptet el lehet helyezni a CD-ROM-on vagy egy floppy lemezen
ami a Tom's Root Boot csomagot is tartalmazza.
(törölhetsz néhány programot ebből a csomagból, ha kifutsz a floppy lemez
kapacitásából).
Még kényelmesebb, ha készítesz egy indító CD-ROM-ot ami a
Tom's Root Boot csomagot és a go
szkriptet, valamint
a klónozni kívánt rendszer tar állományát tartalmazza.
Módosíthatod a Tom's Root Boot csomag inicializáló szkriptjét, hogy a
go
szkriptet futtassa
(mindig be kell majd állítanod az IP címet, ha nem használsz DHCP szolgáltatást).
Egy alternatív lehetőség, hogy készítesz egy saját indító lemezt (mint egy mentő lemez), amely tetszésed szerinti kernelt és programokat tartalmaz. Számos dokumentum létezik, ami leírja ezek készítésének módját. A Linux Bootdisk HOWTO ( http://www.linuxdoc.org/HOWTO/Bootdisk-HOWTO/) is tartalmaz hivatkozásokat más előre gyártott boot/root lemezekre.
Így kifejleszthetsz egy rendszert ahol az összes dolog amit tenned kell csak annyi, hogy behelyezed a CD-ROM-ot bekapcsolod a gépet, veszel egy csésze kávét (vagy sütit) és visszajössz megnézni a kész klónt. Ezt az eljárást ismételheted annyiszor, ahány géped van. Ez az eljárás nagyon jól működik nekem és ha van valaki aki beteszi és kiveszi a CD-ROM-okat akkor még jobb.
Rob Fantini ( [email protected]) módosította a fenti szkriptet, Mandrake 8.2 rendszer klónozásához. Ez elérhető a http://www.ram.org/computing/linux/cluster/fantini_contribution.tgz címen.
Jelenleg egy olyan rendszeren dolgozok, amelyikben minden egy CD lemezre van felrakva, erről indul a gép és könnyen klónozható. A közeljövőben közzéteszem a módszert.
Ha van egy működő DHCP szolgáltatásod, akkor nem szükséges újra beállítanod az IP címet
és ezt a részt törölheted a go
szkriptből.
A DHCP előnye, hogy nem kell vacakolnod az IP címekkel mert a megfelelően beállított DHCP szerver szolgáltatja azokat. Egy hátránya, hogy egy központi szerveren van megvalósítva (és ahogy mondtam azon vagyok hogy elosszam a dolgokat amennyire csak lehet). Az IP címek hardver ethernet címekhez való kötése is kellemetlen lehet, amennyiben a gépet vagy a hosztnév cserét a szokásos módon kívánod végrehajtani.
A hardverek általában tényleg igazán jól működtek. Specifikus kérdéseket az alábbiakban sorolunk fel:
Az AMD dual 1.2 GHz gépek igazán melegszenek működés közben. Kettő már érezhetően növeli a szoba hőmérsékletét. Míg jók lehetnek asztali számítógépekhez, de a hűtés és az energia fogyasztás megfontolandó, amikor nagy fürtök részeként használjuk őket. A korábban bemutatott AMD Palmino konfiguráció igazán jól működik, de azt ajánlom vegyél két ventilátort minden esetben, ez megoldotta az összes instabilitás problémánkat.
Néhány tar program nem úgy készíti el a tar állományt, ahogy azt elvárnánk (különösen a szimbolikus hivatkozások visszafejtésében mutatkozik ez meg). A megoldás, hogy használj olyan tar programot, ami jól csinálja, például a Red Hat 7.0 disztribúcióban lévőt.
Ez a fejezet úgy fejlődik ahogy a fürtöm használata alakul. Eddig azon voltam, hogy megírjam a saját üzenet küldő eljárásaimat, amellyel különböző gépeken futó processzek kommunikálnak egymással.
Sok alkalmazás - különösen a számítógépes genomika területén - masszívan és könnyen párhuzamosítható. Ez azt jelenti, hogy jó elosztás érhető el azáltal, hogy azonos feladatokat szórunk szét a gépek között (például amikor a teljes genomot analizáljuk azt a technikát használjuk, ami egy génen, proteinen dolgozik és minden processzor egy génen, proteinen dolgozhat időben, függetlenül a többi processzortól).
Eddig nem kellet használunk profi queue rendszereket, de ez nyilvánvalóan erősen függ a futtatni kívánt alkalmazástól.
Egyszerűen a legfontosabb programot futtattuk (a mi ab initio protenin folding szimulációs programunkat) egy Pentium 3 1GHz processzoros gépen referenciának. A következő eredmények születtek:
Athlon 1.2 GHz processzor körülbelül 16% gyorsabb
Xeon 1.7 GHz processzor körülbelül 27% gyorsabb
Athlon 1.5 GHz processzor körülbelül 38% gyorsabb
Athlon 1.7 GHz processzor körülbelül 46% gyorsabb
Xeon 2.4 GHz processzor körülbelül 62% gyorsabb
Igen, az Athlon 1.5 GHz gyorsabb, mint a Xeon 1.7-es mivel a Xeon csak hat utasítás per órajelet (IPC), míg az Athlon kilenc órajelet futtat (számolj!).
A gépek, mind hardver, mind szoftver tekintetben hihetetlenül stabilnak bizonyultak. Egyszer lettek debuggolva (rendszerint az új gépek közül néhány hardver problémával érkezik) folyamatosan nagyon nagy terhelés alatt. Egy példa látható alul. Újraindítások általában akkor történnek, amikor elektromos zavar keletkezik.
2:29pm up 495 days, 1:04, 2 users, load average: 4.85, 7.15, 7.72
A következő személyek segítettek ennek a HOGYANnak az elkészítésében:
Az alábbi dokumentumok hasznosak lehetnek - ezek referenciák olyan forrásokra, amelyek a nagy teljesítményű fürtök használatával foglalkoznak:
A magyar fordítást Szalai Ferenc készítette (2003.05.19). A lektorálást Daczi László végezte el (2003.05.21). Bármilyen fordítással kapcsolatos észrevételt a [email protected] címre küldjetek. Eme dokumentum legfrissebb változata megtalálható a Magyar Linux Dokumentációs Projekt honlapján. A fordítás javítva 2003.05.26.-án.