Отказоустойчивость

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Отказоустойчивость — это свойство технической системы сохранять свою работоспособность после отказа одного или нескольких составных компонентов. Отказоустойчивость определяется количеством любых последовательных единичных отказов компонентов, после которого сохраняется работоспособность системы в целом. Базовый уровень отказоустойчивости подразумевает защиту от отказа одного любого элемента — исключение единой точки отказа. Основной способ повышения отказоустойчивости — избыточность. Наиболее эффективный метод избыточности — аппаратная избыточность, которая достигается путем резервирования. В ряде приложений отказоустойчивость путем резервирования является обязательным требованием, предъявляемым государственными надзорными органами к техническим системам.

Отказоустойчивость следует отличать от отказобезопасности — способности системы при отказе некоторых частей переходить в режим работы, не представляющий опасности для людей, окружающей среды или материальных ценностей. Однако в реальных системах эти два требования могут выступать совместно.

Отказоустойчивость связана со следующими техническими характеристиками систем:

  • коэффициент готовности, который показывает, какую долю времени от общего времени службы система находится в рабочем состоянии;
  • надёжность системы, которая определяется, например, как вероятность отказа в единицу времени.

В инженерии, отказоустойчивая архитектура — это метод проектирования отказоустойчивых систем, которые способны продолжать выполнение запланированных операций (возможно, с понижением эффективности) при отказе их компонентов[1]. Термин часто используется для описания компьютерных систем, спроектированных продолжать работу в той или иной степени, с возможным уменьшением пропускной способности или увеличением времени отклика, в случае отказа части системы. Это означает, что система в целом не прекратит свою работу при возникновении проблем с аппаратной или программной частью. Пример из другой области: структура, способная сохранять свою целостность при повреждении от коррозии или усталости материала, наличия производственных дефектов или столкновения с каким-либо объектом.

Компоненты[править | править вики-текст]

Если каждый компонент системы может продолжать работать при отказе одной из его составляющих, то вся система, в свою очередь, также продолжает работать. Например, на автомобиле, спроектированном так, чтобы не терять управление при разгерметизации одной из шин, каждая из них содержит резиновое ядро, позволяющее им функционировать ограниченное время и при пониженной скорости.

Избыточность[править | править вики-текст]

Избыточностью называют функциональность, в которой нет необходимости при безотказной работе системы[2].

Примерами могут служить запасные части, автоматически включающиеся в работу, если основная ломается. В частности, большие грузовики могут потерять шину без серьёзных последствий. На них установлено много шин, и потеря одной не является критичной (за исключением передней пары, которая служит для поворотов). Впервые идея включения избыточных частей для увеличения надежности системы была высказана Джоном фон Нейманом в 1950-х годах[3].

Существует два типа избыточности[4]: пространственная и временна́я. Избыточность пространства реализуется путем введения дополнительных компонентов, функций или данных, которые не нужны при безотказном функционировании. Дополнительные (избыточные) компоненты могут быть аппаратными, программными и информационными. Временна́я избыточность реализуется путем повторных вычислений или отправки данных, после чего результат сравнивается с сохранённой копией предыдущего.

Критерии[править | править вики-текст]

Проектирование каждого компонента как отказоустойчивого привносит в систему некоторые недостатки: увеличение веса, стоимости, энергопотребления, цены и времени, затраченного на проектирование, проверку и испытания. Для определения того, какие компоненты следует проектировать отказостойкими, существует набор тестов[5]:

  • Насколько важен компонент? К примеру, в автомобиле радио не является важной частью, поэтому оно не нуждается в отказоустойчивости.
  • Насколько велика вероятность отказа компонента? Некоторые части, такие как карданный вал автомобиля, ломаются крайне редко, следовательно, не нуждаются в отказоустойчивости.
  • Насколько дорогим будет обеспечение отказостойкости компонента? Например, обеспечение отказоустойчивости двигателя автомобиля слишком дорого и экономически, и конструктивно (вес, размер).

Примером компонента, прошедшего по всем пунктам, могут служить ремни безопасности. Мы не задумываемся о первичной системе, удерживающей пассажиров — гравитации, но если машина переворачивается или испытывает серьёзные перегрузки, то первичный метод удержания может отказать. Вторичная система, удерживающая пассажиров на местах во время таких происшествий, важна для их безопасности — таким образом, первый пункт подтверждается. Случаи выброса пассажиров были обычным делом до введения ремней безопасности — подтверждается второй пункт. Цена установки дополнительных мер удержания, таких как ремни безопасности, невелика и в плане затрат, и в плане технологичности — подтверждается третий пункт. В итоге делается вывод, что установка ремней безопасности на все средства передвижения — отличная идея.

Иногда обеспечение отказоустройчивости аппаратуры требует, чтобы вышедшие из строя части были извлечены и заменены новыми, в то время как система продолжает работать (в области компьютеров известно как горячая замена). Это реализуется с помощью одной избыточной части и известна как устойчивая в одной точке, большая часть отказоустойчивых систем выглядят именно так[источник не указан 85 дней]. В таких системах среднее время между поломками должно быть достаточно велико, чтобы операторы могли успеть выполнить ремонт до того, как резервная часть тоже выйдет из строя. Такая методика помогает, если время между поломками максимально возможное, что не является необходимым условием для построения отказостойкой системы.

Особенно успешно отказоустойчивая архитектура применяется в компьютерах, например в процессе репликации.

Недостатки[править | править вики-текст]

Достоинства отказоустойчивой архитектуры очевидны, но некоторые из недостатков нуждаются в описании.

  • Помехи в обнаружении однокомпонентных неполадок. Продолжая вышеописанный пример с автомобилем, водитель может не заметить, что шина проколота, если используется любая отказостойкая система. Проблема может быть решена путем добавления специальной системы для обнаружения неполадок. В случае шины, система следит за давлением в камерах и предупреждает водителя, если оно падает. Альтернативой может служить ручная система обнаружения неполадок, например осмотр водителем шин на каждой остановке.
  • Помехи в обнаружении многокомпонентных неполадок. Другая вариация предыдущей проблемы возникает когда отказостойкость одного компонента мешает обнаружению неполадок в другом. Например, если часть В выполняет некую операцию на основе данных из части А, то отказостойкость части В может скрыть проблему, возникшую в А. Если в дальнейшем часть В будет заменена на менее отказоустойчивую, то система может внезапно отказать, при этом будет казаться, что проблема заключается в новой части В. И только после тщательной проверки системы станет ясно, что проблема была в части А.
  • Уменьшение приоритета исправления неполадки. Даже если оператор знает о наличии проблемы, существование отказостойкой системы уменьшит важность исправления проблемы. А если проблемы не исправлять, то это, скорей всего, приведет к полному отказу системы, когда отказостойкая часть сломается полностью или же когда сломаются все избыточные части.
  • Сложность проверки. Для некоторых крайне важных отказоустойчивых систем, таких как ядерный реактор, нет простого пути, чтобы удостовериться, что запасные части находятся в рабочем состоянии. Печально известным примером служит Чернобыльская авария, когда операторы проверяли аварийную систему охлаждения путём отключения основной и вспомогательной систем. Аварийная система не выдержала, что вылилось в перегрев ядра и большой выброс радиации.
  • Цена. И отказостойкие, и избыточные компоненты увеличивают стоимость системы. Это может быть как цена, так и другие факторы, такие как вес. Например, пилотируемые космические корабли имеют так много избыточных и отказостойких частей, что их вес сильно увеличивается по сравнению с беспилотными аппаратами, которые не требуют такого уровня безопасности.
  • Некачественные компоненты. Отказоустойчивая архитектура может позволить использование некачественных частей, которые в противном случае сделали бы систему неработающей. Хотя эта практика может использоваться для смягчения увеличения расходов, использование нескольких некачественных частей может понизить надёжность системы до исходного уровня или даже ниже.

Связанные понятия[править | править вики-текст]

Есть разница между отказостойкими системами и системами, в которых редко возникают проблемы. Если некие устройства выходят из строя раз в сто лет, они крайне безотказны; но если поломка всё же случается, они прекращают свою работу полностью, а потому не являются отказоустойчивыми.

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

  1. Johnson, B. W. «Fault-Tolerant Microprocessor-Based Systems», IEEE Micro (1984), vol. 4, no. 6, pp. 6-21
  2. Laprie, J. C. (1985). «Dependable Computing and Fault Tolerance: Concepts and Terminology», Proceedings of 15th International Symposium on Fault-Tolerant Computing (FTSC-15), pp. 2-11
  3. von Neumann, J. (1956). «Probabilistic Logics and Synthesis of Reliable Organisms from Unreliable Components», in Automata Studies, eds. C. Shannon and J. McCarthy, Princeton University Press, pp. 43-98
  4. Avizienis, A. (1976). «Fault-Tolerant Systems», IEEE Transactions on Computers, vol. 25, no. 12, pp. 1304—1312
  5. Dubrova, E. (2013). «Fault-Tolerant Design», Springer, 2013, ISBN 978-1-4614-2112-2

Ссылки[править | править вики-текст]

Литература[править | править вики-текст]

  • Словарь по кибернетике / Под редакцией академика В. С. Михалевича. — 2-е. — Киев: Главная редакция Украинской Советской Энциклопедии имени М. П. Бажана, 1989. — 751 с. — (С48). — 50 000 экз. — ISBN 5-88500-008-5