Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
учебник_Вс.doc
Скачиваний:
14
Добавлен:
01.03.2025
Размер:
13 Мб
Скачать
☆

3.3.3. Способы восстановления отказоустойчивых вс

После реконфигурации для продолжения нормальной работы системы необходимо ее восстановить. Восстановление системы происходит на двух уровнях (см. рисунок 3.3.3).

Рисунок 3.3.3. Классификация способов восстановления ИС.

Аппаратный уровень. Здесь для восстановления отказавших компонентов ИС используют два способа:

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

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

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

  • повторение операции на различных уровнях (команд или микрокоманд). Повторное выполнение некоторых операций может дать правильный результат, если связанная с ними ошибка является случайной или временной (ошибка исчезает в процессе восстановления);

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

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

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

б) если возможно восстановление только части вычислительных процессов;

в) если продолжение работы системы при использовании других способов восстановления сопряжено с трудностями и большими затратами времени.

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

1) запуск программы с текущей контрольной точки (первая КТ – исходное состояние программы и обрабатываемых данных) и выполнение вычислений до следующей контрольной точки;

2) диагностическое тестирование ВС: при выявлении отказа – формирование работоспособной конфигурации программно-аппаратных ресурсов и повторение вычислений с предшествующей КТ, при отсутствии отказа – сохранение новой КТ в качестве текущей и запуск программы с текущей КТ.

Применяются следующие типы контрольных точек:

1. Локальная контрольная точка. Процессы периодически сохраняют КТ. Этот тип КТ устойчив к сбоям, но не к отказам процессора или диска. В этом случае сохранённая КТ становится недоступной.

2. Зеркальная КТ. Процессы периодически сохраняют КТ на своих локальных дисках и копии этих КТ на соседних дисках. Этот тип КТ устойчив к одиночным неисправностям.

3. Устойчивая КТ. Процессы периодически сохраняют КТ на дисках RAID, которые устойчивы к отдельным совокупностям отказов.

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

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

Автоматическое (без участия разработчика параллельной программы) формирование системных контрольных точек представляет сложную проблему. Формирование системных КТ при разработке программы усложняет программирование, но позволяет повысить эффективность за счет постановки КТ в местах, требующих сохранения минимально возможного объема данных, и с учетом особенностей обменов данными между ВМ.

В настоящее время не существует общепринятого подхода к формированию системных КТ. В случае конкретных ВС могут быть применены системы программирования, автоматизирующие расстановку КТ, исходя из специфики исполняемых прикладных программ.