Fault-tolerant system
Author
Albert FloresFault-tolerant system (česky systém odolný proti selhání nebo systém odolný proti chybám) je vlastnost, která umožňuje systému (často počítačovému), aby nadále pracoval správně i v případě selhání některé jeho součásti. Pokud se sníží kvalita služby, je pokles úměrný závažnosti selhání - naopak u naivně navrženého systému může i malé selhání způsobit úplné zhroucení. Odolnost proti chybám je velmi žádoucí u systémů s vysokou dostupností nebo zajišťujících životně kritické funkce.
Odolnost proti chybám není jen vlastností jednotlivých strojů, ale může také charakterizovat pravidla, podle kterých vzájemně interagují. Například Transmission Control Protocol je navržen tak, aby poskytoval spolehlivou obousměrnou komunikaci v síti s přepojováním paketů, a to i v přítomnosti síťových prvků, které jsou nedokonalé nebo přetížené. +more Protokol vyžaduje, aby koncové body komunikace počítaly se ztrátou, duplikací, přehozením a poškozením paketů; takové události nenaruší integritu dat, ale pouze poměrně sníží datovou propustnost.
Struktura dat může být navržena tak, aby umožňovala elegantní degradaci (graceful degradation). Například formát HTML je navržen s ohledem na dopřednou kompatibilitu: nově zaváděné HTML entity mohou prohlížeče, které jim nerozumějí, prostě ignorovat, aniž by se dokument stal nepoužitelným.
Obnova z chyb v systému tolerujícím výpadky může být charakterizována jako roll-forward nebo roll-back. Jakmile systém zjistí, že nastala chyba, roll-forward obnova analyzuje stav systému a opraví jej. +more Roll-back obnova navrátí stav systému zpět k některé z dřívějších korektních verzí, například použitím bodu obnovení. Roll-back obnova vyžaduje, aby operace mezi kontrolním bodem a zjištěným chybným stavem byly idempotentní. Některé systémy využívají obě metody obnovy, roll-forward i roll-back, pro různé chyby nebo různé části jedné chyby.
V rámci individuálního systému, odolnosti proti chybám může být dosaženo předvídáním mimořádných podmínek a tvořením systému schopným vypořádat se s nimi, a obecně, usilovat o samo-stabilizaci (self-stabilization), takže systém směřuje k bezchybovému stavu. Nicméně, jestliže jsou následky selhání systému katastrofální, nebo náklady na dostatečnou spolehlivost velmi vysoké, může být lepším řešením použít nějakou formu zdvojení. +more V každém případě, je-li důsledek selhání systému tak katastrofální, systém musí být schopen návrátit se zpět do bezpečného režimu. To je podobné jako roll-back obnova, ale může to být lidská akce, pokud jsou lidé přítomni ve smyčce.
Požadavky na systém odolný proti chybám
Základní charakteristiky systému:
* Porouchaná část nesmí způsobit výpadek systému (No single point of failure) * Izolace chyby do porouchané součásti * Izolace chyb (fault containment) k zabránění šíření poruch * Dostupnost režimů návratu
Porouchaná část nesmí způsobit výpadek systému
Pokud má systém poruchu, musí pokračovat bez přestání během opravovacího procesu.
Izolace chyby do porouchané součásti
Když dojde k poruše, musí být systém schopen izolovat poruchu do porouchané součásti. To vyžaduje mechanismy detekce poruchy, které jsou určeny pouze pro izolaci chyb.
Izolace chyb
Některé druhy poruch mohou způsobit selhání systému šířením poruchy do ostatních částí systému. Příklad tohoto druhu poruchy je „škodící vysílač“ ("Rogue transmitter"), který může zaplavit komunikaci v systému a způsobit celkové selhání systému. +more Jsou vyžadovány mechanismy, které izolují škodícího vysílače, nebo porouchanou součást.