Elosztott rendszerek



Hasonló dokumentumok
Hibadetektáló és javító kódolások

Hibafelismerés: CRC. Számítógépes Hálózatok Polinóm aritmetika modulo 2. Számolás Z 2 -ben

Számítógépes Hálózatok 2012

Számítógépes Hálózatok 2008

Számítógépes Hálózatok. 4. gyakorlat

Számítógépes Hálózatok. 5. gyakorlat

Hibafelismerés: CRC. Számítógépes Hálózatok Polinóm aritmetika modulo 2. Számolás Z 2 -ben

Az adatkapcsolati réteg

Programozható vezérlő rendszerek KOMMUNIKÁCIÓS HÁLÓZATOK 2.

Kommunikáció. 3. előadás

Az adatkapcsolati réteg

Elosztott rendszerek

Elosztott rendszerek: Alapelvek és paradigmák Distributed Systems: Principles and Paradigms. 8. rész: Hibatűrés

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

Számítógépes Hálózatok

Számítógépes Hálózatok. 7. gyakorlat

Operációs rendszerek. Az X Window rendszer

Számítógépes Hálózatok ősz Adatkapcsolati réteg Hibafelismerés és javítás, Hamming távolság, blokk kódok

Adatkapcsolati réteg (Data Link Layer) Számítógépes Hálózatok Az adatkapcsolati réteg lehetséges szolgáltatásai

Számítógépes Hálózatok 2013

UNIX: folyamatok kommunikációja

Ethernet/IP címzés - gyakorlat

LAN Technológiák. Osztott médium hálózatok. LAN-ok

AST_v3\

Számítógép Architektúrák

Kommunikáció. Távoli eljáráshívás. RPC kommunikáció menete DCE RPC (1) RPC - paraméterátadás. 3. előadás Protokollok. 2. rész

Hálózatok. Alapismeretek. A hálózatok célja, építőelemei, alapfogalmak

Számítógépes Hálózatok GY 6.hét

Számítógépes Hálózatok

LIN, BSS, PCM Protokollok (COM Interfész) Szeptember

Elosztott rendszerek alapszolgáltatásai

9. MPI

Elosztott rendszerek

UNIX folyamatok kommunikációja

Adatkapcsolati réteg 1

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

Számítógépes Hálózatok GY 7.hét

Számítógépes Hálózatok. 5. gyakorlat

Két típusú összeköttetés PVC Permanent Virtual Circuits Szolgáltató hozza létre Operátor manuálisan hozza létre a végpontok között (PVI,PCI)

Multiprotocol encapsulation (RFC1483) - IETF Classical IP over ATM (RFC1577) - IETF LAN Emulation (LANE) - ATM Forum Multiprotocol over ATM (MPOA) -

Hálózati Technológiák és Alkalmazások

webalkalmazások fejlesztése elosztott alapon

Csak felvételi vizsga: csak záróvizsga: közös vizsga: Mérnök informatikus szak BME Villamosmérnöki és Informatikai Kar május 30.

Hibajavítás, -jelzés. Informatikai rendszerek alapjai. Horváth Árpád november 24.

Autóipari beágyazott rendszerek. Local Interconnection Network

Megoldás. Feladat 1. Statikus teszt Specifikáció felülvizsgálat

Autóipari beágyazott rendszerek. A kommunikáció alapjai

Szállítási réteg (L4)

Occam 1. Készítette: Szabó Éva

Egyszerű simplex protokoll nyugtákkal

* Rendelje a PPP protokollt az TCP/IP rétegmodell megfelelő rétegéhez. Kapcsolati réteg

Modbus kommunikáció légkondícionálókhoz

Számítógépes Hálózatok 2011

The Flooding Time Synchronization Protocol

Helyi hálózatok. (LAN technológiák, közös médium hálózatok)

Számítógépes Hálózatok

Rétegezett architektúra HTTP. A hálózatfejlesztés motorját a hálózati alkalmazások képezik. TCP/IP protokoll készlet

Folyamatok. 6. előadás

DWL-G520 AirPlus Xtreme G 2,4GHz Vezeték nélküli PCI Adapter

Adatbázisok elmélete 24. előadás

Számítógépes Hálózatok

ERLANG PROGRAMOK TRANSZFORMÁCI CIÓJA ERLANG

Számítógépes Hálózatok. 5. gyakorlat

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

Hálózatok Rétegei. Számítógépes Hálózatok és Internet Eszközök. TCP/IP-Rétegmodell. Az Internet rétegei - TCP/IP-rétegek

Lineáris. Soros. Okozati FIFO. Belépő

Györgyi Tamás. Szoba: A 131 Tanári.

A továbbiakban Y = {0, 1}, azaz minden szóhoz egy bináris sorozatot rendelünk

Teszt topológia E1/1 E1/0 SW1 E1/0 E1/0 SW3 SW2. Kuris Ferenc - [HUN] Cisco Blog -

Számítógép Architektúrák

Alapszintű formalizmusok

Számítógépes Hálózatok

Alacsony fogyasztású IoT rádiós technológiák

12. fejezet Hibajelző kódok és Adatkapcsolati protokollok

KLIENS-SZERVER ALAPÚ ERLANG PROGRAMOK TRANSZFORMÁCIÓJA ERLANG OTP SÉMÁRA

Elosztott adatbázis-kezelő formális elemzése

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

Számítógépes Hálózatok

Újdonságok Nexus Platformon

Beágyazott információs rendszerek 4. házi feladat

11. Elosztott állománykezelés. Operációs rendszerek. Elosztott állománykezelés. Teljesítmény növelése. Az állományokra hivatkozás. Az állományok nevei

V2V - routing. Intelligens közlekedési rendszerek. VITMMA10 Okos város MSc mellékspecializáció. Simon Csaba

Újdonságok Nexus Platformon

Az Internet működésének alapjai

Simon Balázs Dr. Goldschmidt Balázs Dr. Kondorosi Károly. BME, Irányítástechnika és Informatika Tanszék

Operációs rendszerek Memóriakezelés 1.1

Hálózati architektúrák és Protokollok GI 8. Kocsis Gergely

Hálózati Technológiák és Alkalmazások. Vida Rolland, BME TMIT november 5. HSNLab SINCE 1992

Jel, adat, információ

Operációs rendszerek. Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok:

Socket programozás Példák

VHDL szimuláció. Tervezés. Labor II. Dr. Hidvégi Timót

Hálózati Technológiák és Alkalmazások. Vida Rolland, BME TMIT október 29. HSNLab SINCE 1992

Információ és kommunikáció

A merevlemez állapota hibátlan. Nem található hibás vagy gyenge szektor, nincsenek felpörgési és adatátviteli hibák sem.

WDS 4510 adatátviteli adó-vevő

Rövidített felhasználói kézikönyv. H.264 ( 4/8/16 csatornás) Digitális video rögzítő

Az adott eszköz IP címét viszont az adott hálózat üzemeltetői határozzákmeg.

Kriptográfiai algoritmus implementációk időalapú támadása Endrődi Csilla, Csorba Kristóf BME MIT

Járműinformatika Multimédiás buszrendszerek (MOST, D2B és Bluetooth) 4. Óra

Átírás:

Elosztott rendszerek NGM_IN005_1 Szoftver hibat!rés Folyamat csoportok Folyamatok meghibásodása többszörözés -> folyamat csoportok Dinamikus folyamat csoportok transzparencia Egyszint! és hierarchikus csoportok 2

Hibaelfedés Passzív vagy aktív replikáció Többszörözés szintje k-hibat!rés leállás: k+1 bizánci hibák: 2k+1 3 Megegyezés Kommunikáció megbízhatatlansága két hadsereg probléma Hibázó folyamatok bizánci tábornokok problémája 4

Két hadsereg probléma 5 Bizánci tábornokok Tökéletes kommunikáció, de áruló tábornokok valótlan informácók közlése els" és másodkézb"l is Lamport megoldása 6

Bizánci tábornokok (folyt.) m meghibásodás 2m+1 helyes kimenet 3m+1 folyamat összesen 7 Megbízható kliens-szerver kommunikáció Pont-pont kommunikáció megbízható szállítási protokoll nyugták, timerek, ARQ összeköttetés megszünése problémás RPC rendszerek hibák kliens nem találja a szervert kliens üzenete elveszik szerver összeomlik a kérés megérkezte után szerver válasza elveszik kliens összeomlik a válasz megérkezte után 8

Nincs szerver Szerver üzemen kívül, vagy nem kompatibilis Kliens átlátszóság sérül kivétel (vagy signal) és kezelése 9 Elveszett kérések Nyugtázás + id"zít" Újraküldés Szerver nincs eset Szerver oldalon újraküldés esetleges detektálása 10

Szerver összeomlása Lehetséges forgatókönyvek Kliens oldalon nem tudni melyik esettel állunk szemben pontosan egyszer legalább egyszer legfeljebb egyszer akárhányszor 11 Szerver összeomlása (pl.) Nyomtatás a távoli szerveren M: ack, P: nyomtatás, C: összeomlás Client Server Strategy M -> P Strategy P -> M Reissue strategy MPC MC(P) C(MP) PMC PC(M) C(PM) Always DUP OK OK DUP DUP OK Never OK ZERO ZERO OK OK ZERO Only when ACKed DUP OK ZERO DUP OK ZERO Only when not ACKed OK ZERO OK OK DUP OK 12

Elveszett válaszok Nem idempotens kérések kezelése kérések szekvencia számozása kliensek nyilvántartása újraküldés detektálása replay cache 13 Kliens összeomlása árva feladatok CPU pazarlás, er"források lekötése kezelés extermination - indítások logolása, árvák leölése reincarnation - újrainduláskor új korszak kezd"dik gentle reincarnation - ölés csak tulajdonos nélküli feladatokra expiration - id" korlát a feladatokra 14

Megbízható csoport kommunikáció Alacsony folyamatszám esetén megbízható pont-pont kommunikáció Hibás folyamatok jelenléte a csoportban helyesen m!köd" összes csomópontnak meg kell kapni egyetértés abban, kik m!ködnek helyesen Helyesen m!köd"nek feltételezett csoporttagok csoport minden tagjának meg kell kapni 15 Megbízható broadcast (pl.) Helyesen m!köd"nek feltételezett csoporttagok megbízhatatlan kommunikációs rendszer 16

Méretezhet"ség Sok nyugta kezelése Csak negatív nyugták meddig pufferelni? timeout? Nem hierarchikus visszajelzés vezérlés Hierarchikus visszajelzés vezérlés 17 Nem hierarchikus visszajelzés Visszajelzés elnyomás scalable reliable multicasting protocol nincs pozitív nyugta szervernek küldend" NACK késleltetése véletlen ideig NACK a csoport összes tagjának várakozás közben mástól érkezik NACK -> saját elfolytás 18

Hierarchikus visszajelzés Sok címzett - alcsoportok fa struktúra (létrehozása kihívás) helyi koordinátor továbbítás, újra küldési kérelmek kezelése 19 Atomi multicast Üzenet valamennyi csoporttaghoz vagy senkihez sem továbbítandó Mindenkihez ugyanabban a sorrendben teljesen rendezett látszólagos szinkronitás Alkalmazás pl. replika menedzserek csoportjában 20

Látszólagos szinkronitás Csoportkép (group view) view change üzenetek Ha az m üzenet küld"je összeomlik az átvitel közben, akkor az üzenetet vagy valamennyi megmaradt tagnak meg kell kapnia vagy mindnek figyelmen kívül kell hagynia 21 Üzenetek sorbarendezése Rendezetlen üzenetküldés FIFO rendezés Process P1 Process P2 Process P3 sends m1 receives m1 receives m2 sends m2 receives m2 receives m1 Process P1 Process P2 Process P3 Process P4 sends m1 receives m1 receives m3 sends m3 sends m2 receives m3 receives m1 sends m4 receives m2 receives m2 receives m4 receives m4 Kauzálisan rendezett okok és következmények sorrendjének tartása Teljesen rendezett mindenkihez ugyan abban a sorrandben 22

Látszólagos szinkronitás implementálása Üzenet érkezése és kézbesítése G csoport összes tagja tárolja az üzenetet, amíg mindenki meg nem kapja stabil üzenet ->kézbesíthet" view változás nem stabil üzenetek elküldése flush üzenet változás életbeléptetése Megbízható pont-pont kommunikáció 23 Látszólagos szinkronitás implementálása példa 24

Kétfázisú véglegesítés Koordinátor és résztvev"k Blokkolt állapotok feloldása timerek, más résztvev"k állapotának megismerése 25 Kétfázisú véglegesítés - koordinátor actions by coordinator: while START _2PC to local log; multicast VOTE_REQUEST to all participants; while not all votes have been collected { wait for any incoming vote; if timeout { while GLOBAL_ABORT to local log; multicast GLOBAL_ABORT to all participants; exit; } record vote; } if all participants sent VOTE_COMMIT and coordinator votes COMMIT{ write GLOBAL_COMMIT to local log; multicast GLOBAL_COMMIT to all participants; } else { write GLOBAL_ABORT to local log; multicast GLOBAL_ABORT to all participants; } 26

Kétfázisú véglegesítés - résztvev" actions by participant: write INIT to local log; wait for VOTE_REQUEST from coordinator; if timeout { write VOTE_ABORT to local log; exit; } if participant votes COMMIT { write VOTE_COMMIT to local log; send VOTE_COMMIT to coordinator; wait for DECISION from coordinator; if timeout { multicast DECISION_REQUEST to other participants; wait until DECISION is received; /* remain blocked */ write DECISION to local log; } if DECISION == GLOBAL_COMMIT write GLOBAL_COMMIT to local log; else if DECISION == GLOBAL_ABORT write GLOBAL_ABORT to local log; } else { write VOTE_ABORT to local log; send VOTE ABORT to coordinator; } actions for handling decision requests: /* executed by separate thread */ while true { wait until any incoming DECISION_REQUEST is received; /* remain blocked */ read most recently recorded STATE from the local log; if STATE == GLOBAL_COMMIT send GLOBAL_COMMIT to requesting participant; else if STATE == INIT or STATE == GLOBAL_ABORT send GLOBAL_ABORT to requesting participant; else skip; /* participant remains blocked */ 27 Háromfázisú véglegesítés Nem blokkoló véglegesítési protokoll koordinátor összeomlása 28

Felépülés Backward recovery korábbi helyes állapotba checkpointok pl. hibadetektáló kódolás + újraküldés Forward recovery új, m!köd" állapotba hibamodell pl. hibajavító kódolás 29 Felépülés (folyt.) Stabil tárolás felépülési információ túléli az összeomlást pl. lemez tükrözés 30

Felépülés (folyt.) Ellen"rz" pontok Felépülési vonal legutolsó konzisztens pillanat felvétel domino effektus 31 Megbízható pont-pont átvitel Hibakezelés FEC broadcast adattárolás rossz csatorna ARQ kisebb csatorna kapacitás nem kell konstans átviteli ráta Adatfolyam szabályozás ACK NACK time-out 32

Hibadetektáló kódolások redundáns információ inkonzisztencia detektálása az eredeti és a redundáns info között pl.: 32 bit extra info keretenként 1/2 32 részét nem detektálja a hibás kereteknek! Paritás bitek CRC 33 Hibadetektálás teljesítménye K=8, N=9 bin. kódolás (1 paritás bit),ber 1:10 4 8 bites hibás üzenet (paritás nélkül) valószín!sége 1-(1-10 -4 ) 8 =0.000799 paritással nem detektált hibás üzenet valószín!sége detektálható 1 bites hibák (ez alsó becslés) 9*10-4 (1-10 -4 ) 8 1-(1-10 -4 ) 9-9*10-4 (1-10 -4 ) 8 =0.000000359 34

Paritás bitek Paritás bitek q Hamming távolság i= Érvényes kódszavak min. Hamming távolsága u 2 01 11 00 10 u 1 c 011 c 111 3 111 3 001 101 c 010 2 110 000 100 c 1 c 2 000 c1 (, ) : " #. d c v = { ci! vi } 1 0101001 1 Paritás bitek Két dimenziós paritás Adatok 1101001 0 1011110 1 0001110 1 0110100 1 1011111 0 Paritás bájt 1111011 0 35 CRC üzenet polinom (M) és generátor polinom (G) osztásakor keletkez" maradék (R) mint redundancia => C=M+R maradék nélkül osztható G-vel vett üzenet (V), hiba (E) V=C+E válasszunk olyan G-t, hogy E-val ne 0 maradékot adjon Szoftver implementáció végrehajtása processzor intenzív 36

Internet checksum u_short cksum(u_short *buf, int count) { register u_long sum = 0; } while (count--) { sum += *buf++; if (sum & 0xFFFF0000) { /* carry occurred, so wrap around */ sum &= 0xFFFF; sum++; } } return ~(sum & 0xFFFF); 37 Hibajavító kódolások Hamming távolság d min > 2t # t corr = int d "1 & min % ( $ 2 ' Lineáris szisztematikus kódolási sémák! s T c = u! G. T G! H = 0. c! H T = 0 = H! v e := v! c T # 0 = $ % H " e T! 38

Hamming kódolás (pl.) (7,4) Hamming kód DDDPDPP! k=bg b = [ b 0 b 1 b 2 b 3 ]! " 1 0 0 0 0 1 1% $ ' 0 1 0 0 1 0 1 G = $ ' $ 0 0 1 0 1 1 0' $ ' # 0 0 0 1 1 1 1& " 0 0 1% $ ' $ 0 1 0 ' $ 0 1 1' H T $ ' = $ 1 0 0 ' $ 1 0 1' $ ' $ 1 1 0 ' # $ 1 1 1& ' 39! Adatfolyam szabályozás Stratégiák Stop + Wait Go-Back-n Szelektív újraküldés Csúszó ablak 40

Stop+wait közegkihasználása Tf keret átviteli id" Tp késleltetési id" U=Tf/(Tf+2Tp) a=tp/tf U=1/(1+2a) Tp Tf 2 Tp U Tf 41 Csúszó ablak közegkihasználása egy ciklusra: U=N.Tf/(Tf+2Tp) a=tp/tf U=N/(1+2a), ha N<1+2a 1, ha N>=1+2a N*Tf Tf +2*Tp N U a 42