Dokumentáció/SL9.3/Szolgáltatások/Magas szintű rendelkezésre állás
Bevezetés
Egy magas szintű rendelkezésre állású rendszerben a szolgáltatások rendelkezésre állása általában 99,999 és 99,99999 százalék közé esik. Ez azt jelenti, hogy egész évben maximum öt perc három másodpercre állhat le a rendszer. A legfontosabb tényezők egyike érdekes módon nemcsak a megfelelő szoftver és a hardver, hanem talán mindennél fontosabban az átgondoltan kialakított rendszeradminisztráció, jól dokumentált, érthető folyamatokkal a hibák minimalizálása érdekében. Minden esetben mérlegelni kell a kockázatokat és költségeket. A különböző követelményeknek eltérő megoldások felelhetnek meg, az alkalmazási helyzettől függően. Az Ön Novell-partnere szívesen segít ebben.
Fontos kifejezések
Néhány, a rendelkezésre állással kapcsolatos fontos kifejezés:
- SPOF
- Egyetlen meghibásodási pont: A rendszer egy olyan összetevője, amelynek meghibásodása a teljes rendszer működésére kihatással van.
- Átterhelés
- Egy hasonló rendszerkomponens automatikusan átveszi a meghibásodott összetevő funkcióját.
- Hideg készenlét
- A készenléti hardver nincs bekapcsolva. Az átállást kézzel kell elvégezni, a meghibásodás ténye világosan látható lesz.
- Meleg készenlét
- A tartalékrendszer a háttérben fut, így az átállás automatikus lehet. A két rendszeren az adatok automatikusan szinkronizálásra kerülnek. A felhasználó számára az átterhelés a szolgáltatás nagyon gyors újraindításának látszik. Az aktuális tranzakció azonban megszakadhat, mert nem biztos, hogy sikerül szinkronizálni az adatokat a meghibásodás előtti állapottal.
- Forró készenlét
- Mindkét rendszer folyamatosan, párhuzamosan fut – az adatok mindkét rendszeren száz százalékban szinkronban vannak. A felhasználók semmilyen hibát nem vesznek észre. Ez a szint általában nem érhető el a kliens megfelelő módosítása nélkül. Ahhoz, hogy mindkét rendszer tökéletesen szinkronban működjön, a klienskapcsolatokat is száz százalékban tükrözni kell. Ez általában azt igényli, hogy a kliensek egyidejűleg két vagy több kiszolgálóval tartsanak fent kapcsolatot és az összessel egyidejűleg kommunikáljanak. Egy szokásos webböngésző például erre képtelen.
- Terheléselosztás
- A terhelés elosztása több számítógép között. Terheléselosztást például in LVS környezetben alkalmaznak (virtuális Linux-kiszolgáló).
- STONITH
- Az angol "Shot the other node in the head" (a másik csomópont agyonlövése) rövidítése: Speciális hardver és szoftver együttese, amelyik biztosítja, hogy egy meghibásodott csomópont ne férjen hozzá írásra egy cluster megosztott adathordozójához, amivel a teljes cluster adatainak a konzisztenciáját veszélyeztetné. Ez általában a rendszer áramellátásának szabályozását (lekapcsolását) jelenti.
Egy minimális példahelyzet
Az alábbiakban áttekintjük a kétcsomópontos clusterek eljárásait annak esetére, ha az egyik csomópont meghibásodik, valamint a különféle típusű készenléti rendszereket, amelyek szükség esetén átveszik a feladatokat.
A két kiszolgáló (elsődleges és tartalék) ugyanahhoz a SAN-hoz (tárolóhálózathoz) csatlakozik. Beállítástól függően ezt csak az aktív csomópont éri el. A kiszolgálók egymással kapcsolatot tartanak: időről időre »életjelet« (szívdobbanást) küldenek egymásnak. A kommunikációs csatornák (vagy életjel-kapcsolatok) szintén redundáns módon vannak kialakítva, vagyis különféle hálózati kártyákkal és csatornákkal létrehozott független csatornák használhatók. Ha az összeköttetések egyike meghibásodik, a tartalékokon még mindig helyesen jelzi a kiszolgáló, hogy »életben van«. Ha azonban semmilyen életjel nem jön a fő rendszertől, akkor a tartalék rendszer aktiválásra kerül, azaz átveszi a meghibásodott partner szolgáltatásait, majd azt eltávolítja a hálózatból (STONITH, azaz "fejbelövi").
Egy magas rendelkezésre állású megoldás összetevői
Egy magas rendelkezésre állású megoldás számos különböző összetevőből épül fel:
- Általános infrastruktúra
- Egy magas rendelkezésre állású megoldás tervezésekor általában célszerű ügyelni arra, hogy pusztán az a tény, hogy az összes fontos kiszolgáló egy helyen működik, szintén jelenthet egyetlen meghibásodási pontot, ha valamilyen katasztrófa (vagy nagyon komoly áramkimaradás) sújtja a telephelyet. Szintén érdemes figyelembe venni a kiszolgálók környezeti feltételeit is – a (redundáns) légkondicionálás elengedhetetlen.
- Hardver
- A legkifinomultabb szoftverrel sem lehet magas rendelkezésre állású rendszert építeni, ha a hardver nem garantálja a lehető legnagyobb biztonságot. A legfontosabb hardverelemek, amelyeket a maximális lehetséges redundancia érdekében figyelembe kell venni:
- Tápegység
- Ha lehetséges, védje a kiszolgálókat egy szünetmentes tápegységgel (UPS-sel) a rövid áramkimaradások elleni védelem érdekében, illetve hogy hosszabb áramkimaradás esetén a rendszert szabályosan lehessen leállítani. A tápegységet is célszerű redundáns működésre beállítani.
- Hálózati csatolók
- Gondoskodjon róla, hogy a rendszerek mindegyike több hálózati csatolóval rendelkezzen. Ha az egyik csatoló meghibásodik, egy másiknak automatikusan át kell vennie a meghibásodott komponens címét és feladatát. A redundancia kifejezetten érvényes a csatoló mindkét irányára. Nem lehet baj abból, ha külön aktív és tartalék csatolókat tervez mind a belső, mind a külső csatolókhoz.
- Merevlemezek
- Építsen több merevlemezt a rendszerbe és alakítsa ki az adatok tartalékolását úgy (például RAID vagy drbd használatával), hogy ha a lemezek valamelyike meg is hibásodik, a többi lemez tartalmazza az érintetlen adatrekordot. Ebben az esetben kicserélhető a lemez egy újra anélkül, hogy le kellene állítani a rendszert.
- Alkalmazások
- A rendszer külső megjelenését alkotó minden fontos adatot és alkalmazást úgy kell kialakítani, hogy ne akadályozzák az újraindulást. Ha egy alkalmazás nem engedi el a zárolási fájljait egy összeomlás után, ez megakadályozhatja a megfelelő folyamat újraindulását. Ez azt jelenti, hogy az ilyen alkalmazások nem alkalmasak magas rendelkezésre állású környezetben működésre. Ideális esetben az egyes alkalmazások, operációsrendszer-folyamatok és hálózati kapcsolatok »egészségi állapotát« egységesen lehet felügyelni egy megfelelő figyelőeszközzel.
- Adatok
- Miután a rendszer leállt, az összes fontos adatot az átvevő rendszer számára biztosítani kell, sértetlenül. Az ilyen jellegű magas rendelkezésre állást úgy lehet elérni, ha a tárolt adatokat több rendszeren vagy merevlemezen elosztjuk. Így például egy lemez tartalmát rendszeresen tükrözzük egy (vagy több) másik lemezre, amely(ek) átveheti(k) a feladatokat meghibásodás esetén. Egy naplózó fájlrendszerrel pedig biztosítható, hogy a fájlrendszer konzisztens állapotban legyen egy rendszerösszeomlás után is.
- Hálózat
- A teljes hálózati infrastruktúrát redundáns módon kell kialakítani, az útválasztótól és a kapcsolóktól kezdve egészen a hálózati kábelekig.
A magas szintű rendelkezésre állás szoftveroldala
Az alábbiakban áttekintjük a magas rendelkezésre állású megoldások szoftveroldalának legfontosabb kérdéseit.
Életjel (szívverés)
A heartbeat a cluster csomópontjainak figyelésére szolgáló programcsomag. A heartbeat program »életjeleket« küldözget a clustertagok hálózati csatolóin, és ezekből állapítja meg, hogy mely tagok működnek. Ha egy csomópont meghibásodik, akkor nem bocsát ki életjelet. Ebben az esetben a heartbeat gondoskodik róla, hogy egy másik csomópont átvegye a megfelelő feladatokat és az átterhelés tényét a hálózat tudomására hozza. Ily módon a cluster konzinsztens marad. Jelenleg a heartbeat átterhelési funkciója csak két csomóponton használható.RAID
A RAID (redundant array of independent disks, független lemezek redundáns tömbje) több merevlemez-partíció együtteséből alakít ki egy nagy virtuális merevlemezt. A RAID segítségével optimalizálható a rendszer teljesítménye és az adatok biztonsága. A RAID 1-5 szintek védenek a lemezek meghibásodása ellen, mivel az adatok egyidőben több lemezen kerülnek rögzítésre. Ez biztosítja, hogy a teljes adatrekord elérhető (vagy visszaállítható) akkor is, ha egy lemez meghibásodik. További információ a RAID használatáról SUSE LINUX rendszerekben: Szoftveres RAID beállítása.rsync
Az rsync nevű segédprogrammal nagymennyiségű adat szinkronizálható egy kiszolgáló és a tartaléka között. Az rsync kifinomult mechanizmusok segítségével csak a fájlok módosult részeit viszi át. Ez nemcsak szövegfájlokra, hanem bináris fájlokra is igaz. Annak érdekében, hogy megállapítsa a fájlok közötti különbségeket, az rsync blokkokra osztja a fájlokat és ellenőrző összegeket készít e blokkokhoz. További információ az rsync segédprogramról: Az rsync bemutatása.DRBD
Az elosztott, replikált blokkeszköz (distributed replicated block device, drbd) tükrözni (RAID1) képes partíciókat és logikai köteteket (adatterületeket) egy közönséges hálózaton, TCP/IP protokollok használatával. Minden egyes csomóponton aktív egy meghatározott drbd erőforrás, és a változások tükrözésre kerülnek biztonságos tranzakciókon keresztül.A drbd további funkciókat biztosít a normál RAID 1-hez képest, amelyekkel minimálisra csökkenthető az újraszinkronizáláshoz szükséges idő, ha a két csomópont rövid időre elszakadt, illetve egy robusztus ellenőrzési funkció segít annak megállapításában, hogy a különféle meghibásodások után melyik oldalon vannak a legfrissebb, konzisztens adatok.
Clusterkezelés
Cluster álnév
A cluster álnév egy olyan technológia, amellyel több csomópont ugyanazon az IP-címen osztozhat, ugyanakkor a TCP/IP-kapcsolatokat létre lehet hozni erre a címre. A bejövő TCP/IP-kapcsolatok automatikusan szétosztásra kerülnek.
Szemben a virtuális Linux-kiszolgálóval, nincs szükség külön terheléselosztóra. A megvalósítás típusától függően azonban a cluster álnév használata kevésbé hatékony nagyszámú csomópont használata esetén. Cluster álnév használatakor az összes IP-csomag eljut minden csomóponthoz, és az egyes csomópontok szűrik ki, hogy mely csomagok érkeztek valóban az ő részükre. Az LVS használatakor egy helyen történik ilyen döntés, a terheléselosztóban. További információ a funkció beállításáról az iptables kézikönyvoldalán található.
Virtuális Linux-kiszolgáló (LVS)
A virtuális Linux-kiszolgáló több kiszolgálóból valódi clustert alakít ki, amelyeket egy terheléselosztó köt össze és osztja el a terhelést a cluster egyes tagjai között. Kívülről az ilyen cluster egyetlen virtuális kiszolgálónak látszik. A terheléselosztót szintén be kell állítani a redundáns működésre és szintén életjeleket kell használni a működés észlelésére. Az LVS-konfiguráció célja a meglévő erőforrások lehető legjobb kihasználása és a jó méretezhetőség biztosítása. Ezekben a helyzetekben a különféle valódi kiszolgálók »egészségi állapotának« figyelésére a heartbeat-ldirectord démon szolgál.Magas rendelkezésre állású clusterek
A magas rendelkezésre állású clusterek úgy vannak kialakítva, hogy minden szolgáltatást mindig tudjanak biztosítani, hardver- és szoftverhibáktól függetlenül. Ha a cluster egy csomópontja leáll, egy másik azonnal átveszi a helyét. Ez a (másodlagos) csomópont a meghibásodott (elsődleges) csomópont tükörképe, és ténylegesen felveszi a meghibásodott csomópont azonosságát az átterhelés közben, így a clusterkörnyezet kívülről konzisztens marad.További információ
A magas rendelkezésre állásról általában és a heartbeat programról
A Linux alatti magas szintű rendelkezésre állásról szóló információ elsődleges forrása a Linux-HA projekt weboldala (http://linux-ha.org). Itt találhatók bőségesen ötletek, valamint hivatkozások dokumentációra, jelentésekre és példahelyzetekre.
Nyomtatott információ is található a magas szintű rendelkezésre állásról:
Marcus, Evan & Stern, Hal: Blueprints in High Availability. John Wiley & Sons Inc., 2000. (ISBN 0-471-35601-8)
Wiki a magas szintű rendelkezésre állásról és az életjelről: http://wiki.trick.ca/linux-ha/PressRoom és http://wiki.trick.ca/linux-ha/HeartbeatTutorials
DRBD
A DRBD projekt honlapja: http://www.drbd.org/. Egy hasznos cikk a Linux Magazine-ból: http://www.linux-mag.com/2003-11/drbd_01.html.
RAID
A RAID-del kapcsolatos hivatkozások bőséges gyűjteménye: http://linas.org/linux/raid.html
Clusterkezelés
A Linux Clustering Information Center weboldalon (http://www.lcic.org/) további információ található a clusterkezeléssel kapcsolatban. A Linux Virtual Server projekt honlapja a http://www.linuxvirtualserver.org/ címen olvasható.
Az Oracle cluster fájlrendszerről a projekt honlapján, a http://oss.oracle.com/projects/ocfs/ címen olvashat, részletes dokumentáció pedig a http://oss.oracle.com/projects/ocfs/documentation/ címen található.