Hibatűrés. Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Hasonló dokumentumok
Hibatűrés. Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Hibatűrés. Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Hibatűrés. Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Biztonságkritikus rendszerek architektúrája (2. rész)

Biztonságkritikus rendszerek architektúrája

Hibatűrés. Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Biztonságkritikus rendszerek architektúrája

Architektúra tervezési példák: Architektúrák biztonságkritikus rendszerekben

Szolgáltatásbiztos rendszerek: Architektúra tervezési példák

A szolgáltatásbiztonság alapfogalmai

Mintapélda: Rendszertesztelés a SAFEDMI projektben

A szolgáltatásbiztonság alapfogalmai

Biztonságkritikus rendszerek Gyakorlat: Architektúrák

A szolgáltatásbiztonság alapfogalmai

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

A hibakezelés tesztelése: Hibainjektálás

Verifikáció és validáció Általános bevezető

Operációs rendszerek. Bemutatkozás

Szoftver architektúra tervek ellenőrzése

Beágyazott információs rendszerek

Az UPPAAL egyes modellezési lehetőségeinek összefoglalása. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Bokor Péter. DECOS Nemzeti Nap október 15. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Robusztusság tesztelés

Modell alapú tesztelés mobil környezetben

Számítógép-rendszerek fontos jellemzői (Hardver és Szoftver):

Biztonsági folyamatirányító. rendszerek szoftvere

Csoportos üzenetszórás optimalizálása klaszter rendszerekben

Architektúra, megszakítási rendszerek

(kernel3d vizualizáció: kernel245_graph.mpg)

NAGY TELJESÍTM. Szerzők Dévai. István Automatizálási. és s Alkalmazott Informatikai Tanszék

Fogalomtár Etikus hackelés tárgyban Azonosító: S2_Fogalomtar_v1 Silent Signal Kft. Web:

Specifikáció alapú teszttervezési módszerek

Specifikáció alapú teszttervezési módszerek

Bevezetés a párhuzamos programozási koncepciókba

Szoftver karbantartási lépések ellenőrzése

Orvosi készülékekben használható modern fejlesztési technológiák lehetőségeinek vizsgálata

Autóipari beágyazott rendszerek. Kockázatelemzés

Hibadetektáló rendszer légtechnikai berendezések számára

3. Biztonságkritikus rendszerek

Az informatikai katasztrófa elhárítás menete

Norway Grants. Az akkumulátor mikromenedzsment szabályozás - BMMR - fejlesztés technológiai és műszaki újdonságai. Kakuk Zoltán, Vision 95 Kft.

Programozó- készülék Kezelőkozol RT óra (pl. PC) Digitális bemenetek ROM memória Digitális kimenetek RAM memória Analóg bemenet Analóg kimenet

Intelligens biztonsági megoldások. Távfelügyelet

Autóipari beágyazott rendszerek. Integrált és szétcsatolt rendszerek

Elosztott rendszerek. Az elıadás. Az elosztott rendszer definíciója. Köztesrétegként felépülı elosztott rendszer

Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)

(appended picture) hát azért, mert a rendszerek sosem

Új kompakt X20 vezérlő integrált I/O pontokkal

Hálózati szolgáltatások biztosításának felügyeleti elemei

Miskolci Egyetem Alkalmazott Informatikai Intézeti Tanszék A minőségbiztosítás informatikája. Készítette: Urbán Norbert

Multi-20 modul. Felhasználói dokumentáció 1.1. Készítette: Parrag László. Jóváhagyta: Rubin Informatikai Zrt.

Szoftver karbantartás

Utolsó módosítás:

24 V DC áramkörök biztosítása

TELJESÍTÉNYMÉRÉS FELHŐ ALAPÚ KÖRNYEZETBEN AZURE CLOUD ANALÍZIS

Szoftverminőségbiztosítás

Rendszermodellezés. Modellellenőrzés. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Grayteq. Grayteq DLP Teljesítmény Benchmark. Grayteq DLP Benchmark. Sealar Corporate Proprietary Commercial-in-confidence

Foglalkozási napló a 20 /20. tanévre

IBM felhő menedzsment

Dr. Kulcsár Gyula. Virtuális vállalat félév. Projektütemezés. Virtuális vállalat félév 5. gyakorlat Dr.

Tesztelési szintek Tesztautomatizálás

Laboratóriumi műszerek megvalósítása ARM alapú mikrovezérlővel és Linux-szal

IV.3. MODELL-ALAPÚ MÓDSZER KIDOLGOZÁSA IT INFRASTRUKTÚRÁK ROBOSZTUSSÁGÁNAK ELEMZÉSÉHEZ KOCSIS-MAGYAR MELINDA

Mikrorendszerek tervezése

Operációs Rendszerek II.

I. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

Teljesítmény Mérés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés / 20

30 MB INFORMATIKAI PROJEKTELLENŐR

Magic xpi 4.0 vadonatúj Architektúrája Gigaspaces alapokon

Automatikus tesztgenerálás modell ellenőrző segítségével

IKT trendek és tapasztalatok a BME szemszögéből

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét

Szoftver értékelés és karbantartás

Élettartam teszteknél alkalmazott programstruktúra egy váltóvezérlő példáján keresztül

Autóipari beágyazott rendszerek. Komponens és rendszer integráció

Foglalkozási napló a 20 /20. tanévre

Mikor és hogyan érdemes virtualizálni?

Szenzorhálózatok programfejlesztési kérdései. Orosz György

ESZKÖZTÁMOGATÁS A TESZTELÉSBEN

Folyamatok. 6. előadás

Biztonsági kézikönyv. PFF-HM31A decentralizált biztonsági vezérlés MOVIPRO -hoz

A LOGSYS GUI. Fehér Béla Raikovich Tamás, Laczkó Péter BME MIT FPGA laboratórium

Mérő- és vezérlőberendezés megvalósítása ARM alapú mikrovezérlővel és Linux-szal

A modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel

Az Invitel adatközponti virtualizációja IBM alapokon

Mosolygó Ferenc értékesítési konzultáns

Nyári gyakorlat teljesítésének igazolása Hiányzások

Tesztelési feladatok és kihívások a FALCON projektben

Szoftver újrafelhasználás

UNIX / Linux rendszeradminisztráció

Elosztott rendszer architektúrák

Alapszintű formalizmusok

Grid menedzsment megoldás az ARC köztesrétegben

Intervenciós röntgen berendezés teljesítményszabályozójának automatizált tesztelése

ÉRZÉKELŐK ÉS BEAVATKOZÓK I. 0. TANTÁRGY ISMERTETŐ

OPERÁCIÓS RENDSZEREK. Elmélet

A fejlesztési szabványok szerepe a szoftverellenőrzésben

Ellenőrzőpont támogatás PVM alkalmazások számára a magyar ClusterGriden

Átírás:

Hibatűrés Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék http://www.mit.bme.hu/ 1

Hibatűrés különféle hibák esetén Hardver tervezési hibák (< 1%): Tipikusan nem számítanak rá (jól tesztelt komponensek) Eltérő tervezésű hardver lenne szükséges Hardver állandósult működési hibák (~10%): Hardver redundancia (pl. tartalék processzor) Hardver időleges működési hibák (~70-80%): Szoftver redundancia (pl. állapotmentés és helyreállítás) Idő redundancia (pl. utasítás újravégrehajtás) Információ redundancia (pl. hibajavító kódolás) Szoftver tervezési hibák (~20-30%): Szoftver redundancia (pl. eltérő tervezésű modulok) 2

Hibatűrés állandósult hardver hibák esetén 3

Hardver redundancia Többszörözés: Kettőzés: Hibadetektáló & diag. egység Hibadetektálás összehasonlítással Normál modul Hibatűrés: Diagnosztikai támogatás és átkapcsolás Bemenet Tartalék modul Átkapcsoló egység Kimenet TMR: Triple-modular redundancy Hiba maszkolása többségi szavazással Szavazó kritikus elem (de egyszerű) Bemenet 1. modul 2. modul Szavazó egység Kimenet NMR: N-modular redundancy 3. modul Hiba maszkolása többségi szavazással Missziós idő túlélése nagyobb esélyű, utána javítás jöhet Repülőgép fedélzeti eszközök: 4MR, 5MR (Többségi szavazás) 4

A redundancia szintje Eszköz (szerver) szint: Lazán csatolt Nagy rendelkezésre állású szerver fürtök (feladatátvételi fürtök) pl. HA Linux Szoftver támogatás: állapotszinkronizálás, feladatátvétel Kártya szint: Futásidőbeli átkonfigurálás hot-swap pl. compactpci, HDD Szoftver támogatás: konfigurációkezelés Alkatrész szint: Szorosan csatolt Alkatrész szintű többszörözés pl. TMR, önellenőrző áramkörök 5

Példa: Eszköz szintű redundancia Internet Firewall Pri. DNS Kliensek ISP 1. Web DC1 ISP 2. Firewall Sec. DNS DC2 7

Példa: Kártya szintű redundancia Duplikált processzor Hibajavító kódolás RAID konfiguráció CPU1 CPU2 MEM ECC D1 D2 Kettőzött busz, paritás Monitor PS1 PS2 I/O I/O Monitorprocesszor Kettőzött tápegység Kettőzött I/O alrendszer 8

Példa: RAID Tükrözött diszkek Hibajavító kódolás Azonosítható a hibás diszk: Paritás elég a javításhoz Konkurens hozzáférés a blokkokhoz Paritásdiszk sem szűk keresztmetszet 10

Példa: További RAID konfigurációk RAID-6 Kétféle elosztott paritás Két diszk kiesése is tolerálható Helyreállítás alatt is van redundancia RAID 0+1 Kombinált: Teljesítmény és hibatűrés ötvözése Diszkek összefűzve (RAID-0), majd ez tükrözve (RAID-1) Egy hiba esetén a tükrözés megszűnik RAID 1+0 Diszkek tükrözve (RAID-1), majd ez összefűzve (RAID-0) RAID 5+0 RAID-5 összefűzve RAID 5+1 RAID-5 tükrözve 11

Hibatűrés időleges hardver hibák esetén 12

Időleges hardver hibák kezelése Megoldás: Szoftver alapú Ismételt végrehajtás esetén a hiba nem jelentkezik Hibahatások kiküszöbölése a fontos A hiba kezelhető hibamentes állapot beállításával (és ismételt végrehajtással) Feladatok (fázisok): 1. Hibadetektálás 2. Hibahatás felmérése 3. Helyreállítás 4. Hibaok (meghibásodás) kezelése 13

1. Hibadetektálás Alkalmazásfüggetlen mechanizmus: Pl. processzor, MMU, operációs rendszer szintjén Illegális utasítás Védelmi szintek, jogosultságok (pl. memória hozzáférés) Alkalmazásfüggő, ad-hoc módszer: Időzítések ellenőrzése Hihetőségvizsgálat Visszahelyettesítés (algoritmus) Struktúra ellenőrzés Diagnosztikai ellenőrzés 14

Indításkor: Részletes öntesztelés Példa: SAFEDMI Processzor ( core utasítások alapján) + watchdog timer Memória: teszt algoritmusok Működés közben: Periodikus tesztelés Kisebb erőforrásigényű technikákkal On-line ellenőrzések: Kommunikáció, konfigurálás: Hibadetektáló kódolás, adatok elfogadhatósági ellenőrzése Vezérlési funkciók: Vezérlési gráf ellenőrzése (jelzőszámok) Intenzív adatfeldolgozás: Duplikált végrehajtás és összehasonlítás 15

Hibamentes cella: Példa: Memória tesztelése Le/összeragadás tesztjéhez: Leragadási hibák: Tranzíciós hibák: March algoritmusok: 16

Példa: Szoftver önellenőrzés Végrehajtási útvonalak ellenőrzése Referencia: Vezérlési gráf alapján Forráskód: Vezérlési gráf: a: for (i=0; i<max; i++) { b: if (i==a) { c: n=n-i; } else { d: m=m-i; } e: printf( %d\n,n); } f: printf( Ready. ) c a b e f d 17

Példa: Szoftver önellenőrzés Végrehajtási útvonalak ellenőrzése Referencia: Vezérlési gráf alapján Aktuális futás: Jelzőszámok alapján ellenőrizhető Forráskód: Vezérlési gráf: a: S(a); for (i=0; i<max; i++) { b: S(b); if (i==a) { c: S(c); n=n-i; } else { d: S(d); m=m-i; } e: S(e); printf( %d\n,n); } f: S(f); printf( Ready. ) c a b e f d 18

Járulékos feladatok Keretrendszer hibadetektáláshoz (monitorozáshoz) Alkalmazásfüggő technikák beillesztése Detektálás ütemezése Hibajelzések kiadása Ismételt hibajelzések kiszűrése Függőségek kezelése (root cause analysis) Naplózás Megszűnő hiba jelzése Hozzáférés hibajelzésekhez Nézetek, szerepek Nyugtázás 19

2. Hibahatások felmérése (kárfelmérés) Hibadetektálás késleltetési ideje alatt a hiba terjed Pl. elosztott rendszer komponensei között, processzek között meghibásodás terjedés! hibadetektálás Hibaterjedés behatárolása Interface (kimeneti, bemeneti) ellenőrzés Erőforrásokhoz való hozzáférés korlátozása Atomi jellegű műveletek kialakítása Hibaterjedés felmérése: interakciók követése Interakciók naplózása Diagnosztikai ellenőrzések 20

Egyszerű technikák: 3. Helyreállítás Retry, restart, reboot; meleg reset, hideg reset; frame boundary Összetett technikák: Előrelépő helyreállítás: Hibamentes állapot beállítása szelektív korrekcióval A korrekció a detektált hiba és a hibahatás függvénye Előre figyelembe vett hibák esetén alkalmazható Visszalépő helyreállítás: Korábbi hibamentes állapot beállítása Hibától függetlenül megvalósítható Állapotmentés és visszaállítás szükséges minden komponensre Kompenzáció: Többlet információ alapján a hibahatás kompenzálható 21

A helyreállítási lehetőségek áttekintése Ábrázolás a rendszer állapotterében: v2 e3! e1 e2 s(t) visszalépés előrelépés kompenzáció állapotmentés v1 állapotváltozó 26

Visszalépő helyreállítás Állapotmentés alapján Checkpoint: állapotmentés (időpontja) Műveletek: Állapotmentés: időközönként, üzenetek után Visszaállítás: mentésből visszatöltés Eldobás: adott számú checkpoint mentése után Feltételezett hiba: időleges hardver hiba Pl: autosave Műveletek visszavonása alapján Műveletek naplózása szükséges Feltételezett hiba: a téves vagy szándékolatlan művelet Pl. többszintű undo Kombinált módszer 27

Visszalépő helyreállítás forgatókönyvei t! t! t! t 28

Checkpoint tartományok a1 b1 c1 a2 b2 c2! t Optimalizálás szempontjai: Korlátos méretű tár az állapotmentéshez Visszalépéssel újra elvégzendő (elvesztett) számítások Hibadetektálás lappangási ideje 29

Helyreállítás elosztott rendszerekben Üzenetek metszik a helyreállított állapotok által kijelölt vágatot: P1 t P1 t P2 t P2 t Függő üzenet: Előtte elküldött Utána feldolgozott Inkonzisztens üzenet: Utána elküldött Előtte feldolgozott 30

Állapotmentések visszalépő helyreállításhoz CPU Memória Diszk Külső tár Távoli memória RAID, NAS Stabil tár Távoli stabil tár Jellegzetes használati esetek: Hosszú számítási idejű alkalmazások Tudományos számítások, folyamatos működésű alkalmazások Commodity computing : Skálázhatóság olcsó hardverekkel Adat analízis alkalmazások: Pl. Google: Átlagban 5 számítógép kiesése egy-egy Map-Reduce job végrehajtása alatt Nagyméretű infrastruktúrák: 4000 számítógépből álló hálózat: 6 óránként egy-egy diszk kiesése 31

Elvárt tulajdonságok Stabil tár koncepciója Perzisztens Atomi hozzáférésű Autonóm működésű Hibajavítást alkalmazó Információrejtést alkalmazó Többféle megvalósítás lehetséges 32

Kihívások visszalépő helyreállítás esetén Komponensek visszaléptethetősége Pl. CPU állapot mentése és visszatöltése Determinisztikus működés Környezettel való együttműködés kezelése Bemenet: naplózás Kimenet: késleltetés vagy ellensúlyozás Megbízhatóság és helyreállítási garancia Hibadetektálás hibafedésének növelése, késleltetési idejének csökkentése Mentés helyének megbízhatósága (replikák) Hatékonyság növelése Konkurens állapotmentés Másolatok használata (shadow update, recovery cache) Többszintű állapotmentés ( soft és hard checkpoint) 33

Alapelv: Többszintű állapotmentés Gyakori mentés gyors memóriába (memória chkpt.) Ritka mentés perzisztens tárba (stabil tár) Detektált hiba Helyreállítás próba Helyreállítás memória chkpt-ból n Sikeres helyreállítás? i Helyreállítás stabil tárból Memória chkpt. másolása stabil tárba OK i Sikeres helyreállítás? n Hibajelzés OK 34

Mentések hatékonysága Itt a hatékonyság: referencia (hibamentes) futási idő hibakezeléssel mért futási idő V=90% vonal: A hibadetektálás 99% hibafedése esetén 90%-os bizalom az eredmények helyességében a vonal feletti területen 99% hibafedésű hibadetektálás van Újra és újra futtatás, míg ugyanaz az eredmény ki nem jön 35

Példák visszalépő helyreállítás megvalósítására (ld. gyakorlat) Felhasználói állapotmentés C nyelvű, alacsony szintű megoldással Állapotmentés az SA Forum köztesrétegben (HA middleware), C nyelvű implementáció Állapotok (objektumok) mentése J2SE alkalmazásokban Állapotmentés és helyreállítás adatbáziskezelő rendszerekben 36

4. Meghibásodás (hibaok) kezelése Időleges hibák: Előre- vagy visszalépő helyreállítás elég Állandósult hibák: Helyreállítás nem lesz sikeres (újra detektált hiba) Ez egy mechanizmus lehet az állandósult hiba felismerésére Hiba lokalizálás (diagnosztika) után beavatkozás kell: Újrakonfigurálás: Hibás komponens feladatainak átvétele Javítás, csere Graceful degradation: Csökkentett funkcionalitású működés, de a kritikus funkciókat megtartva 37

Példa: SAFEDMI hibakezelése Működési módok: Startup, Normal, Configuration Hibadetektálás esetén: Tranziens hiba feltételezése Visszalépés Startup állapotba és részletes önteszt Állandósult hiba lehetőségének kezelése: Visszalépés Suspect állapoton keresztül: Hibaszámlálás (adott idő alatt korlátozott számú visszalépés megengedett) A hibaszám túllépése esetén Safe állapotba lépés (leállítás) 38