Fault-tolerant system

Z Wikipedie, otevřené encyklopedie

Fault-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é. 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. 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í. 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[editovat | editovat zdroj]

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[editovat | editovat zdroj]

Pokud má systém poruchu, musí pokračovat bez přestání během opravovacího procesu.

Izolace chyby do porouchané součásti[editovat | editovat zdroj]

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[editovat | editovat zdroj]

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. Jsou vyžadovány mechanismy, které izolují škodícího vysílače, nebo porouchanou součást.