Разделы

Цифровизация Инфраструктура

Отказоустойчивые системы: зачем нужны и как построить

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

Методы построения отказоустойчивых систем

На сегодняшний день не существует системы, гарантирующей 100% отказоустойчивость. Другими словами, не существует системы, которая гарантирует 100% вероятность безотказной работы на протяжении задаваемого промежутка времени (100% доступность).

Примеры систем с различными значениями вероятностей безотказной работы

Вероятность безотказной работы, % Время простоя/год Пример
99 5000 минут web страница общего характера
99,9 500 минут Amazon.com
99,99 50 минут Почтовый сервер крупного предприятия
99,999 5 минут Телефонная система
99,9999 30 секунд Высокоскоростной телефонный коммутатор

Источник: G. Candea, «Principles of Dependable Computer Systems». Stanford University, 2003

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

Способы построения отказоустойчивых систем

Способы построения отказоустойчивых систем

Источник: CNews Analytics

Внесение отказоустойчивости в систему или отдельно взятый компонент всегда нуждается в появлении некоторой избыточности. Избыточность - это наличие в структуре устройства возможностей сверх тех, которые могли бы обеспечить его нормальное функционирование. Избыточность вводится для повышения надёжности работы и для исключения влияния на достоверность передаваемой информации помех и сбоев (в телекоммуникационных устройствах). В основном используется четыре вида избыточности.

Аппаратная избыточность (Hardware Redundancy, более известна как резервирование). Существуют методы постоянного резервирования (синтез избыточных устройств, нечувствительных к определенному количеству ошибок) и методы резервирования замещением (использование системы контроля, которая может действовать непрерывно или периодически, в этом случае говорят, о так называемом функциональном диагностировании). Исключая даже кратковременный простой, постоянное резервирование имеет относительное преимущество по сравнению со второй группой методов, системы при отказах.

Программная избыточность (Software Redundancy) используется для контроля и обеспечения достоверности наиболее важных решений по управлению и обработке информации. Она заключается в сопоставлении результатов обработки одинаковых исходных данных разными программами и исключении искажения результатов, обусловленных различными аномалиями.

Информационная избыточность (Information Redundancy) наиболее присуща телекоммуникационным системам, в которых информация передается многократно. Информационная избыточность заключается в дублировании накопленных исходных и промежуточных данных.

Дискуссия в метавселенной: ИИ, обмен данными и иммерсивные сценарии
ИТ в банках

Временная избыточность (Time Redundancy) заключается в использовании некоторой части производительности компьютера для контроля за исполнением программ и восстановления (рестарта) вычислительного процесса (запас времени для повторного выполнения операции (например, двойного или тройного просчёта на вычислительной машине).

Наглядным примером введения многоуровневой избыточности в систему, для достижения отказоустойчивости, может послужить система контроля и управления авиалайнера Airbus 320 (fly-by-wire flight control system). В процессе функционирования системы управления, и обеспечения взаимосвязей между различными компонентами и контроля за последними, в Airbus 320 задействовано 5 различных независимых компьютеров. Система управления авиалайнером строилась из расчета, что обнаружение ошибок должно осуществляться как в аппаратной, так и в программной части системы. По этой причине, в процессе управления полетом, дополнительно задействовано два типа программного обеспечения, от двух независимых разработчиков.

Достаточно распространены методы, когда с целью повышения надежности, система снабжается схемой внутреннего контроля (СВК/тестер), предназначение которой заключается в инициализации «сигнала отказа» при наличии неисправностей или изменения функциональности, и как следствие, несоответствие выходных сигналов. В этом случае, сигнал о ошибке используется для отключения неисправного устройства от объекта управления. Также этот сигнал может быть параллельно использован для активизации команды подключения резервного или дублирующего устройства. Но важно при этом не забыть про проверку исправности схемы самого СВК.

Как с помощью ad-hoc инструмента снизить расходы на внедрение аналитики
Импортонезависимость

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

Алексей Морозов / CNews