Dokumentáció/SL9.3/Szolgáltatások/Magas szintű rendelkezésre állás

Icon-ha.png Ez a fejezet a Linux alatti magas szintű rendelkezésre állással kapcsolatos fogalmakat és eszközöket tekinti át röviden. Ezenfelül további olvasnivalókat is javasol az említett témakörökkel kapcsolatban.Magas szintű rendelkezésre állás alatt azt értjük, hogy a rendszerek képesek felülkerekedni bizonyos meghibásodásokon – elsősorban az egyes számítógépek meghibásodásán – és így a szolgáltatások minimális leállási idővel folyamatosan biztosíthatók a felhasználók számára. A hardver- és szoftvereszközök gondosan koordinált, redundáns módon vannak kialakítva, lehetővé téve az átkapcsolást más eszközökre meghibásodás esetén. A magas szintű rendelkezésre állás nem ugyanaz, mint a hibatűrés. Az előbbi esetben ugyanis a szolgáltatás egy rövid átkapcsolási időre leállhat, ami eredményezhet észrevehető késést, vagy a kapcsolat megszakadását.

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

Egy egyszerű, magas rendelkezésre állású cluster

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)

Icon-hardver.png IBM S/390, zSeries

Található továbbá egy igen részletes IBM Redbook kiadvány az IBM S/390 és zSeries gépeken futó Linuxról, példahelyzetek és konfigurációk bőséges választékával: http://publib-b.boulder.ibm.com/Redbooks.nsf/RedpaperAbstracts/redp0220.html.

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