Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Тактики реализации готовности




Не забыли терминологию готовности, приведенную в главе 4? Отказом называется ситуация, при которой система теряет возможность обслуживания в соответствии со своей спецификацией; кроме того, признаки отказа заметны пользователям системы. Предвестником отказа является неисправность (или сочетание неисправностей). Мы также говорили о том, что одним из важнейших аспектов готовности является восстановление (устранение неисправности). Тактика, описание которой содержится в этом разделе, не позволяет неисправностям превращаться в отказы или, по меньшей мере, ограничивает последствия неисправности, обеспечивая возможность восстановления. Иллюстрация этой тактики приводится на рис. 5.2.

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

В первую очередь, мы рассмотрим обнаружение неисправностей. Затем перейдем к восстановлению после неисправностей и, наконец, к их предотвращению.

Обнаружение неисправностей

Из всех тактик обнаружения неисправностей наибольшим признанием пользуется при: ping/echo-пакеты, heartbeat-запросы и исключения.

♦ Ping/echo-пакеты. Проверяющий компонент отправляет проверяемому компоненту ping-запрос, ожидая через установленный период времени получить в ответ echo-пакет. Эта схема используется в группах компонентов, которые выполняют в отношении друг друга одну и ту же задачу. Кроме того, она может применяться клиентами, которые при помощи таких пакетов удостоверяются в приемлемой работоспособности объекта на сервере и канала связи. Детекторы неисправностей по схеме ping/echo можно расположить в рамках иерархии, согласно которой детектор нижнего уровня должен отправлять ping-запросы тем программным процессам, с которыми у него общий процессор, а детекторы верхних уровней обязаны запрашивать нижележащие уровни. В результате, по сравнению с ситуацией, при которой удаленный детектор неисправностей отправляет ping-запросы всем процессам, наблюдается экономия рабочей пропускной способности.

♦ Heartbeat (таймер безопасности). В таком случае один из двух компонентов периодически отправляет heartbeat-сообщение, а другой — ожидает его получения. Если отправки heartbeat-сообщения не происходит, компонент, который должен был его отправить, считается вышедшим из строя, о чем оповещается компонент устранения неисправностей. В составе heartbeat- сообщений, помимо прочего, можно передавать данные. К примеру, банкомат может периодически отправлять на сервер записи о последних транзакциях. Такой пакет одновременно выступает в качестве heartbeat и сообщает некоторую информацию.

♦ Исключения. Один из методов выявления неисправностей подразумевает использование исключений, которые порождаются при обнаружении любого из классов неисправностей, рассмотренных в главе 4. Обработчики исключений, как правило, исполняются в том процессе, в котором исключение появилось.

Тактики ping/echo-пакетов и heartbeat-сообщений применимы к ряду отдельных процессов, а тактика исключений, напротив, распространяется на единичный процесс. Обработчик исключений обычно выполняет семантическое преобразование неисправностей, тем самым переводя их в такую форму, в которой их можно обработать.

Восстановление после неисправности

Процесс восстановления после неисправности состоит из двух частей: подготовки к восстановлению и собственно восстановления. Ниже представлены некоторые тактики восстановления.

♦ Голосование. Процессы, исполняемые на резервированных процессорах принимают равнозначные исходные данные, а затем, вычислив простое выходное значение, отправляют его голосующему. Если голосующий выявляет у одного из процессоров отклонение от нормы, тот отключается. Алгоритм голосования может действовать по «мажоритарному принципу», ориентироваться на «предпочтительный алгоритм» или руководствоваться какими-либо другими правилами. Этот метод исправляет неисправности в работе алгоритмов или отказы процессора и чаще всего встречается в системах управления. Если все процессоры используют одни и те же алгоритмы, выявляются только неисправности процессоров — неисправности алгоритмов не обнаруживаются. Таким образом, если последствия отказа чрезвычайно серьезны — например, не исключают возможность полного выхода из строя, — есть смысл использовать разнообразные резервируемые компоненты.

Разнообразие иногда доходит до крайности — например, когда программное обеспечение каждого резервируемого компонента разрабатывается разными рабочими группами и исполняется на несходных платформах. Более обычной является ситуация, при которой на разных платформах разрабатывается один и тот же программный компонент. Разнообразие в разработке и сопровождении слишком дорого обходится, и поэтому применяется оно только в исключительных ситуациях — например, при отслеживании земной поверхности в авиационных системах. В системах управления разнообразие применяется в тех случаях, когда выходные данные, предоставляемые голосующему, просты и легко поддаются классификации по признаку эквивалентности или отклонения, вычисления проводятся циклически и все резервируемые компоненты получают от датчиков равнозначные входные данные. В случае отказа разнообразие исключает простой, поскольку голосующий продолжает работать. Среди вариантов этой методики следует упомянуть симплекс-метод, предполагающий применение результатов «предпочтительного» компонента во всех случаях, кроме тех, когда они отклоняются от результатов «доверенного» компонента, с показаниями которого голосующий сверяется. Если резервируемые компоненты проводят параллельные вычисления с одним и тем же набором входных значений, их (компонентов) синхронизация проводится автоматически.

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

1 Излагаемая в книге классификация методов резервирования отличается от предложенной в отечественном стандарте ГОСТ 27.002-89 и отражает американскую терминологию в теории надежности систем. — Примеч. науч. ред.

ними. Резервирование замещением часто применяется в схеме клиент-сервер — в частности, в системах управления базами данных, где оперативность отклика требуется даже в ситуации неисправности. В распределенных системах с повышенными требованиями к готовности резервируются даже каналы связи. Например, желательно, чтобы в локальной сети было несколько параллельных каналов и в каждом из них находилось по одному резервному компоненту. В таком случае, даже если произойдет отказ канала или моста, компоненты системы останутся в состоянии готовности.

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

+ Пассивное резервирование (теплый перезапуск/двойное резервирование/тройное резервирование). Один из компонентов (первичный) реагирует на поступающие события и сообщает другим компонентам (запасным) о том, каким образом им требуется обновить состояние. В случае неисправности система в первую очередь проверяет актуальность состояния резервных копий и только после этого возобновляет обслуживание. Эта методика применяется в системах управления — как правило, в тех случаях, когда по каналам связи или от датчиков приходят входные данные, которые при обнаружении неисправности требуется перенаправить на резервный компонент. В частности, она используется в системе управления воздушным движением, рассматриваемой в главе 6. В этой системе решение о том, когда следует заменить первичный компонент, принимается вторичным компонентом; в других системах принятие таких решений происходит в рамках других компонентов. Настоящая тактика делает ставку на надежность резервных компонентов. Регулярное проведение необходимых переключений — например, раз в сутки или раз в неделю — способствует повышению готовности системы. В некоторых системах управления базами данных переключение производится с сохранением каждого нового элемента данных. Новый элемент сохраняется на теневой странице, а старая страница становится резервной. В таком случае простой, как правило, огранивается секундами.

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

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

Некоторые тактики восстановления предусматривают повторное введение компонентов. Так, после устранения отказа в резервном компоненте его можно вновь ввести в систему. Среди такого рода тактик следует упомянуть затенение, повторную синхронизацию состояния и откат.

♦ Затенение. Компонент, в котором недавно произошел отказ, может после восстановления некоторое время работать в «теневом режиме» — таким образом обеспечивается полное соответствие его поведения поведению работающих компонентов, после чего он снова вводится в действие.

♦ Повторная синхронизация состояния. При пассивном или активном резервировании требуется, чтобы восстанавливаемый компонент перед введением в действие обновлял свое состояние. Действенность этой методики зависит от допустимой продолжительности простоя, объема обновления и количества сообщений, необходимых для его проведения. Прежде всего предпочтение отдается обновлению, для выполнения которого требуется отправить одно сообщение. Инкрементные обновления состояния с периодами обслуживания между этапами способствуют усложнению программного продукта.

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




Поделиться с друзьями:


Дата добавления: 2015-04-25; Просмотров: 728; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.