Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Фирсов.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
1.95 Mб
Скачать

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

Доступность – доля времени, которое система находится в рабочем состоянии.

Надежность – вероятность безоптказной работы в течение единицы времени

Надёжность = 1 – вероятность отказа в единицу времени

Клиент серверная архитектура

Надёжность системы = надёржность сервера

Вероятность отказа системы = количество уровней * вероятность отказа сервера + о (в этих суучаях надо обеспечивать отказоустойчивость)

Классификация отказов по характеру возникновения

- Проходные (разовые, не повторяющиеся)

- Перемежающиеся отказы (повторяются, например: плохой контакт)

- Постоянные отказы (надо устранить, чтобы система заработала дальше)

Классификация отказов по характеру поведения

Поломка (вышедший из сроя вычисл узел перестаёт отправлять и принимать какие то сообщения)

- Пропуск данных

- Пропуск приёма

- Пропуск передач

- Ошибка синхронизации

- Ошибка отклика (возникает, когда вычислительный узел посылает ответ, но не правильный)

-Ошибка отклика

-Ошибка передачи состояния

- Произвольная (Византийская) ошибка

Взаимосвязь различных типов отказов

(круги, не успел)

Основной подход к обеспечению отказоустойчивости – избыточность

- Информационная избыточность (код хэмминга – при утрате данных можно восстановить их)

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

-Физическая избыточность (вычисления производить не на одном, а на нескольких компьютерах)

Действия в случае отказа:

- Маскировка отказа отказавший компонент просто игнорируется, а правильный ответ получается за счёт других работающих компонентов)

- Восстановление

-Обратное исправление (состояние системы возвращается в предыдущее корректное состояние)

- Прямое исправление

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

Использование конкретного механизма зависит от:

- Имеющизся ресурсов

- Тип отказа, борьбу с которым необходимо обеспечить

- Синхронность/асинхронности распределённой системы

- Изменяется или нет состояние вычислительного узла после обработки запроса (есть ниобходимость хранить промежуточное состояние)

Аппаратное обеспечение отказоустойчивости:

- Raid 1

- Источник бесперебойного питания

- GCC

Следующих механизм, позволяющий бороться с отказами – функциональное программирование:

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

Создание контрольных точек

созраниются состояния вычилительных узлов в моменты работы. Если происходит отказ какого то вычисылительного узла, тогда ищутся две такие контрольные точки, которые (точка, такая, что нету таких сообщений, которые были отправлены до контрольной точки, а получины других ВУ после контрольной йточки) – такая точка называется глобальной (или не совсем такая). Но! С контрольными точками может возникнуть эффект домино (таким образом глобально контрольные точки не буду тполучены, откат будет до начала. Решением этой проблемы является координированное создание контрольных точек:

- Каждое отправляемое сообщение содержит

- Порядковый номер сообщения

- номер самой новой контрольной точки

- Координатор рассылает сообщение запрашивающее создание контрольной точки с номером вновь создаваемой КТ (предыдущий + 1). Каждый получивший это сообщение пересылает его всем отсальным.

- При получении сообщения?

- Если сообщение содежит номер новой контрольной точки, то оно ставится в очередь

- Если сообщение содержит номер предыдущей контрольной точки, то обрабатывается

- Когда все сообщения , относящиеся к предыдущей КТ, обработаны, создаётся новая КТ.

Протоколирование сообщений:

Идея в том, что все отправленные сообщения сохраняются и если некоторый вычислительный узел выходит из строя, то ему после восстановления повторно высылаются все сообщения. Как правило протоколирование используется совместно с созданием контрольных точек

Активная репликация

- Оновременно выполняется N копий одной и той же программы

- Необходимо обеспечить, что все реплики обрабатывают одни и те же сообщения в одном и том же порядке ((N-1)/3)