Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lecture13.doc
Скачиваний:
3
Добавлен:
27.11.2019
Размер:
91.14 Кб
Скачать

Лекция № 13

Надежность программ (окончание)

Методы и средства отказоустойчивости

Fault tolerance – быстрое (полу)автоматическое восстановление системы после отказа. Идеал - это восстановление в латентном периоде отказа, когда отказал элемент, но еще не система и отказ еще никак не проявился вовне. Из-за иерархического строения систем (система N уровня является элементом N+1 уровня) уровней отказоустойчивости (ОУ) может быть тоже несколько. Два общих принципа ОУ:

  • Средства ОУ – общие для аппаратных и программных отказов; часто даже не производится детальная диагностика, где именно произошел отказ

  • ОУ всегда достигается путем введения избыточности, т.е. резервирования

Фазы управления ОУ:

  • Контроль исправности – обнаружение отказавших элементов

  • Оценка повреждения при обнаружении неисправности

  • Восстановление путем задействования резервов

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

Виды резервирования для контроля и восстановления

  1. Структурное: аппаратная избыточность – дублирование, троирование, многократное резервирование – горячий и холодный резервы.

Простое дублирование – средство контроля (рис. 13-2, а). Мажоритарная схема – троирование (рис. 13-2, б): однократная ошибка маскируется.

Рис 13-1. Некоторые варианты структурного резервирования

Горячий означает постоянно включенный и работающий резерв; холодный – включается на замену отказавшего модуля. NB: Бортовой вычислитель космичекого корабля Аполлон – троирован, у Шаттла – четверирован. Вопросы 1, 2.

  1. Информационное: избыточность в представлении данных:

а) избыточное кодирование

  • коды с обнаружением ошибки (четность, циклическая сумма) Вопрос 3.

  • коды с исправлением ошибки (код Хэмминга, циклический код)

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

  1. Программное (program diversity): аналог структурного, но модули не аппаратные, а программные. Вопрос 4.

  1. Временное: повторение вычислений, начиная с некоторого запомненного прошлого состояния – контрольной точки (checkpoint) или, иначе, точки восстановления (restore or recovery point). Возврат к точке восстановления называется откатом (rollback). Такой точкой является, в частности, резервная копия (backup copy) файла. Например, Word может создавать ее автоматически.

Вопросы 5 - 7.

Поддержка ОУ требует затрат памяти и дополнительного кода. Например, ПО электронных АТС фирмы AT&T на 60% состоит из программ ОУ. Временное резервирование, для возможности отката, требует либо периодического запоминания точки восстановления, либо запоминания проделанных действий, начиная с некоторого момента. Последнее в современных базах данных и файловых системах называется журнализацией событий; в системном журнале запоминаются все транзакции – последовательности операций при обработке одного запроса (журнал – аналог стека Undo/Redo в Word’е). A для того, чтобы противодействовать отказам во время выполнения транзакции, она делается атомарной (т.е, неделимой). Атомарная транзакция или выполняется корректно, или вовсе не выполняется.

Три примера отказоустойчивых программно-аппаратных систем

1. Спецификация RAID

RAID – Redundant Array of Independent Disks – избыточный массив независимых дисков. Спецификация впервые предложена университетом Беркли. Цель – повышение производительности и ОУ дисковых подсистем. Устойчивость – по отношению как искажения блоков данных на дисках, так и отказов дисков / контроллеров в целом. Производительность повышается благодаря обмену с несколькими дисками одновременно. Контроль исправности диска – с помощью контрольных сумм блоков. Восстановление – с помощью дублирования блоков и контроля четности. Различные варианты (комбинации) “распыления” блоков файла по дискам, их дублирования и контроля называются уровнями RAID. Стандартизовано 6 уровней, из которых наиболее употребительны 0, 1, 3 и 5 уровни.

RAID 0 – параллельные диски: блоки «распыляются» по нескольким параллельно работающим дискам. Производительность возрастает, надежность уменьшается.

RAID 1 – зеркальные диски: блоки файла дублируются на разных дисках. Специальный RAID-контроллер считывает обе копии и выдает только те блоки, которые прошли контроль исправности (без такого контроллера процесс эмулируется программно). Необходимый объем дискового оборудования удваивается. Система работоспособна даже при полностью отказавшем одном диске.

RAID 3 – параллельные диски + контрольный диск четности:

Чтение 1 - ОТКАЗ !

D 1

Запись 1

Соседние файлы в предмете Информатика