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

Download Report

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

ВСТРОЕННЫЕ ИНФОРМАЦИОННОУПРАВЛЯЮЩИЕ СИСТЕМЫ РЕАЛЬНОГО
ВРЕМЕНИ
Лекция 8:
Механизмы обеспечения откаузостойчивости
ВМиК МГУ им. М.В. Ломоносова, Кафедра АСВК,
Лаборатория Вычислительных Комплексов,
Ассистент Волканов Д.Ю.
План лекции
• Задача оптимизации
надёжности ВИУС РВ
• Цели применения методов
повышения надёжности
• Методы обеспечения
отказоустойчивости
2
Неформальная постановка задачи
оптимизации надёжности ВС
Пример вычислительной системы:
3
1
S12
2
H13
H33
S21,S22,S24
H23
S32
4
S41,S43
H42
3
•
Классическая постановка
задачи оптимизации
надёжности
ВС
Дано:
– N – количество подсистем
– Chij , Csij – стоимость использования аппаратного/программного
компонента j для подсистемы i
– Rhij , Rsij – надёжность аппаратного/программного компонента j
для подсистемы i
– Prv, Pd, Pall – вероятности отказа нескольких версий
программных компонентов, вероятность отказа схемы принятия
решений, вероятность отказа сразу всех версий программного
компонента
• Необходимо найти:
– Оптимальный набор компонентов и МОО, на котором RRTES 
max
• Ограничения:
– CRTES < Cost
4
Особенности современных
ИУС РВ
• Самый многочисленный вид ВС
• Ограничения на массу, габариты и
энергопотребление
• Критичность времени работы
некоторых задач
• Сотни различных устройств, входящих
в состав РВС РВ
• Невозможность представления
функционирования РВС РВ в
аналитическом виде
5
Задача оптимизации
надёжности
• Дано:
– N – количество подсистем
– Chij , Csij – цена использования аппаратного/программного
компонента j для подсистемы i
– Rhij , Rsij – надёжность аппаратного/программного компонента j
для подсистемы I
– Prv, Pd, Pall – вероятности отказа нескольких версий
программных компонентов, вероятность отказа схемы принятия
решений, вероятность отказа сразу всех версий программного
компонента
• Необходимо найти:
– Оптимальный набор компонентов и МОО, на котором RRTES 
max
• Ограничения:
–
–
–
–
–
CRTES < Cost
Tk < Dk
MRTES < Mass
DRTES < Dimension
ERTES < Energy
6
Задача оптимизации
надёжности
•
Дано:
•
Необходимо найти:
•
Ограничения:
– CRTES < Cost
– Tk < Dk
– Mk < Mass
– Ek < Energy
– N – количество подсистем
– M – модель поведения ИУС РВ
– Chij , Csij – цена использования аппаратного/программного
компонента j для подсистемы i
– Rhij , Rsij – надёжность аппаратного/программного компонента j
для подсистемы I
– Prv, Pd, Pall – вероятности отказа нескольких версий
программных компонентов, вероятность отказа схемы принятия
решений, вероятность отказа сразу всех версий программного
компонента
– Оптимальный набор Cr, на котором RRTES  max
7
Принятые ограничения
• Все компоненты являются
неремонтируемыми
• Моменты появления отказов для
аппаратуры статистически независимы
• Все аппаратные компоненты ИУС РВ
являются активными
• Количество доступных версий для всех
компонентов фиксировано
• Интенсивность отказов постоянно
8
Особенности задачи
• NP-трудная
• Аргументы и значения функции
надежности являются дискретными
• Многоэкстремальная область допустимых
решений
• Область допустимых решений несвязна
• Функция надежности нелинейна
• Функция стоимости линейна
• Каждый модуль вычислительной системы
имеет свой доступный набор механизмов
обеспечения отказоустойчивости
9
Методы решения задачи
•
•
•
•
•
•
•
•
Алгоритмы муравьиных колоний
Генетические алгоритмы
Имитация отжига
Иммунные алгоритмы
Прочие эвристики
Поиск с отсечением
Динамическое программирование
Другие точные методы
10
Цели
• Отказоустойчивая компьютерная
система должна предоставлять
сервисы в случае ошибок
• Отказы могут возникать, так как
дефекты присутствуют в компонентах
системы
• Система с отказоустойчивостью
надёжней системы без
отказоустойчивости, но больше
затрачивается ресурсов на
11
обеспечение отказоустойчивости
Проблемы …
• Традиционные подходы к
отказоустойчивости в аппаратных
системах основываются на
копировании с использованием
особенностей отказов физических
компонентов.
• Большинство аппаратных методов
отказоустойчивости не могут быть
применены напрямую в ПО, где почти
все ошибки разработчика.
12
Примерck
6
x  y   xi  yi
i 1

y  10

, 2111,10 
x  1020 ,1223,1024 ,1018 , 3 ,  1021
30
, 2 ,  1026 ,1022
19
• Правильный ответ должен быть 8779
• Но при обычной реализации возвращается
0
13
История …
• Защитное программирование:
– ad-hoc методы минимизирующие ущерб
который может возникнуть из-за ошибок
• Метод двух версий:
– Создание двух независимых версий ПО и
запуск их. По любому расхождению в
версиях включается триггер
14
Методы обеспечения
отказоустойчивости
•
•
•
•
•
•
Обнаружение ошибок
Диагностическое тестирование
Изоляция ошибок
Маскировка ошибок
Корректирование ошибок
Устранение ошибок
15
Требования к
компонентам
16
Организация
резервирования
• Общие подходы
– Организация глобального времени
– Выделение изолированных регионов
– Отказы в разделяемых компонентах
• Программное резервирование
– Пространственное резервирование
– Временное резервирование
• Функциональный сдвиг во времени
• Информационный сдвиг во времени
• Аппаратное резервирование
– Пространственное резервирование
– Кодирование
17
Механизмы обнаружения
ошибок
• Программные
– Приемочные тесты
– Отказоустойчивые алгоритмы
– Проверки
•
•
•
•
•
Временные
Кодовые
Реверсные
Семантические
Структурные
• Аппаратные
– Диагностическое тестирование
18
Приемочные тесты
19
Отказоустойчивые
алгоритмы. Попарное
тестирование
20
Отказоустойчивые
алгоритмы. Голосование
21
Механизмы устранения
ошибок
• Программные
– Одноверсионное программирование
• Контрольная точка и перезапуск
• Парные прогоны
– Многоверсионное программирование
• Восстановление блоками
• N-версионное программирование
• N-самотестируемое программирование
• Аппаратные
– Резервирование компонент
– Переконфигурирование системы
22
Схемы голосования
голосователь сравнивает результаты
двух и более функционально
эквивалентных компонентов ПО и
определяет корректныйрезультат
• Схемы голосования:
– Большинство
– Консенсус
– 2-из-N
23
Контрольная точка и
перезапуск
24
Парные прогоны
25
Восстановление блоками
26
N-версионное
программирование
27
N-самотестируемое
программирование
28
N-версионное
программирование.
Примеры
29
Космический шаттл
30
Зависимость надежности
от количества версий
31
Заключение
• Необходимо корректное покрытие
приёмочными тестами для обнаружения
ошибок
• Часто невозможно быстро проверить
корректность процедуры (например, для
алгоритма “сортировки” это также сложно
как сам алгоритм “сортировки”).
• Проверки часто могут быть очень
ресурсоёмкими.
• Возможность проявления
ненайденных ошибок не должно быть
определяющим
32
Литература
• Kuo W., Wan R. Recent advances in optimal
reliability allocation //Computational
Intelligence in Reliability Engineering. –
Springer Berlin Heidelberg, 2007. – С. 1-36.
(http://content.schweitzeronline.de/static/content/catalog/newbooks/978/354/0
37/9783540373674/9783540373674_Excerpt_001.pd
f)
• Pullum L. L. Software fault tolerance
techniques and implementation. – Artech
House, 2001.
33
Спасибо за внимание!
34