Надежность АСОИУ (1088455), страница 23
Текст из файла (страница 23)
Однакоистинно кластерные программы позволяют добиться максимальной отдачи от кластера. Подходов к их написаниюсуществует множество, но большинство коммерческих истинно кластерных приложений построено по принципу«последовательнаяпрограмма,параллельнаяподсистема»(SerialProgram,ParallelSubsystem,SPPS).Подпоследовательной программой подразумевается обычная программа, рассчитанная на выполнение на одном сервере (втом числе SMP).Согласно модели SPPS, разработчики пишут обычную программу, а за обеспечение параллелизма ивзаимодействие между узлами кластера отвечает специальная подсистема (Parallel System).
В соответствии с принципомSPPS построены практически все кластерныеСУБД. Высокая доступность достигается благодаря тому что выход из строя любого узла никак не влияет наработоспособность кластера, хотя тот и может испытывать некоторую перегрузку.Промежуточную позицию занимают приложения, рассчитанные на работу в кластере. В отличие от истиннокластерных программ в них явный параллелизм не используется; фактически программа является обычной, но онаспособна задействовать некоторые возможности кластера, в первую очередь, с точки зрения миграции ресурсов.Дело в том, что не все пользовательские программы позволяют одновременно запускать несколько своих копий наодном компьютере. В частности, на одной машине невозможно запустить несколько копий обычной (не кластерной)СУБД, даже если они обращаются к разным файлам (это связано с тем, что одна копия может обслуживать множествофайлов).Интересен также вопрос о том, как инсталлировать приложения в кластере: на каждом узле кластера или только наодном.
Принципиальное значение для ответа на него имеет то, насколько конкретное приложение зависит от параметрови настроек операционной системы, другого ПО и даже аппаратной части узла. Например, приложения, вносящие записив реестр Windows, должны в обязательном порядке устанавливаться на всех узлах кластера Microsoft Cluster Service, ноинициализация (запуск) программы должна осуществляться только на необходимых.Состав программного обеспечения кластера. Исходя из состава решаемых системой задач, можно выделить следующиеэтапы основного цикла работы кластера:• опрос ЭВМ кластера (выявление работающих процессов и активных ЭВМ);• анализ и принятие решений для поддержания работоспособности системы;• исполнение действий в целях обеспечения работоспособности системы.Для реализации такого цикла на распределенной системе необходимо предусмотреть два автономных программныхмодуля: исполнительный и управляющий.72Исполнительный модуль является представителем системы «на местах», т.
е. осуществляет сбор информации олокальной ЭВМ по запросу «из центра» и выполнение управляющих указаний (запуск процесса, останов процесса и ряддругих внутренних операций). Таким образом, этот модуль должен быть запущен на каждой ЭВМ в составе кластера.Управляющий модуль является «мозгом» всей системы и запускается только на одной ЭВМ, которая на данныймомент определена как ведущая. Именно он производит циклы последовательного опроса всех участников системы иделает выводы о неработоспособности того или иного процесса.Обеспечение отказоустойчивости кластерной системы. Решение данной задачи требует комплексного подхода.Это обусловлено широким спектром возможных точек сбоя и отказа, которые могут носить как программный, так иаппаратный характер.Отказ компонента кластерной системы подразумевает такое нарушение программной или аппаратнойсоставляющейкластернойсистемы,котороенеможетбытьустраненоавтоматизированнымисредствамивосстановления работоспособности.Выделяют два типа программных отказов:• отказ базового программного обеспечения;• отказ кластерного ПО.К базовому программному обеспечению относятся операционная система, сетевые сервисы, а также другиесистемные службы, необходимые для организации работы кластера.
Для обеспечения отказоустойчивости операционнойсистемы в качестве платформы для построения кластерной системы наиболее подходит ОС Unix (или Linux).Отказ исполнительного модуля приводит к тому, что ЭВМ перестает отвечать на запросы управляющего модуля ипризнается неработоспособной. Аппаратные отказы подразумевают выход из строя какой-либо аппаратнойсоставляющей ЭВМ, что приводит к неработоспособности ЭВМ в целом.
Результатом возникновения программного илиаппаратного отказа является формирование признака ЭВМ «неработоспособна». Отказ любой ЭВМ при наличии ещехотя бы одной работоспособной ЭВМ не приводит к отказу кластерной системы в целом.Сбой компонента кластерной системы подразумевает такое нарушение программной или аппаратной составляющейкластернойсистемы,котороеможетбытьустраненоавтоматизированнымисредствамивосстановленияработоспособности. Устранение может состоять в перезапуске программного обеспечения или включении в работурезервирующего аппаратного компонента.
Сбои в зависимости от характера нарушения могут приводить кформированию признака «неработоспособна» или «частично неработоспособна» для ЭВМ, на которой имеется этонарушение.Автоматизированные средства восстановления работоспособности могут представлять собой как аппаратные, так ипрограммные решения. Аппаратные средства подразумевают наличие дополнительных аппаратных компонентов,обеспечивающих отказоустойчивость. Программные средства восстановления работоспособности представленыкластерным ПО.
Рассмотрим некоторые ситуации, возникающие при сбоях, и алгоритмы их устранения.Отказоустойчивость при программных сбоях. В алгоритм работы кластерного ПО заложено восстановлениеработоспособности при возникновении двух видов программных сбоев:• сбой в работе прикладного процесса или группы процессов;• сбой в работе управляющего модуля.Сбой в работе прикладного процесса или группы процессов может возникнуть в результате присвоения какой-либоЭВМ признака «неработоспособна» или превышения допустимого уровня потребления ресурсов ЭВМ (процессора,памяти и т. п.).
Для устранения такой ситуации управляющему модулю достаточно отслеживать недостающие процессыи принимать решение об их запуске на одной из доступных ЭВМ. Такой подход неприемлем при наличии дополнительных требований к динамическим характеристикам системы, например времени восстановления.Более эффективным является следующий подход. Параметры процесса (потребление ресурсов и памяти) в каждыймомент времени являются значениями некоторой дискретной функции F(nT), которая формируется в процессе73последовательных опросов (с интервалом времени 7). Анализ производной F'(nT) позволяет сделать вывод о скоростиизменения того или иного параметра и оценить примерный характер его дальнейшего поведения.Второй вид программного сбоя связан с нарушением работы управляющего модуля.
Кластерное ПО имеет в своемсоставе управляющий модуль, который может быть запущен только на одной ЭВМ кластера (ведущей). В случаеотключения ведущей ЭВМ или нарушения работы управляющего модуля система не должна остаться без управления.Для этого предусмотрен механизм перезапуска управляющего модуля.На этапе инициализации управляющего модуля происходит назначение приоритетов всем ЭВМ кластера.Отсутствие управляющего модуля определяется по истечении времени ожидания сигнала опроса состояния, которыйпосылается управляющим модулем каждой ЭВМ в каждом цикле опроса. Интервал времени ожидания пропорционаленприоритету ЭВМ.Поскольку ведущая ЭВМ выполняет также функции шлюза во внешнюю сеть, при инициализации управляющегомодуля осуществляется настройка внешнего сетевого интерфейса и перенастройка внут-рисетевой маршрутизации.
Всеизменения статусов внутрикластер-ных ЭВМ остаются незаметными для удаленных клиентов.Отказоустойчивость при аппаратных сбоях. Алгоритм работы кластерного ПО предусматривает восстановлениеработоспособности при возникновении трех типов аппаратных сбоев:• нарушение связи ЭВМ с разделяемым накопителем;• нарушение сетевой связи между ЭВМ кластера;• нарушение сетевой связи между ведущей ЭВМ и внешней сетью.Потенциальная возможность нарушения внутренней сети кластера означает, что нет такой ЭВМ в составе кластера,которая бы обладала достоверной информацией о текущем состоянии всех остальных ЭВМ кластера.
Поэтому оталгоритма работы системы в целом необходимо перейти к алгоритму работы каждой ЭВМ кластера в отдельности. Этоталгоритм должен обеспечивать эффективное использование вычислительных ресурсов кластера в целом. Можетвозникнуть ситуация, при которой ЭВМ необходимо принять решение о выходе из состава кластера, чтобы позволитьостальным более эффективно решать поставленные задачи.В случае нарушения связи ЭВМ с разделяемым накопителем (если он присутствует в конкретной реализациикластерной системы) серверные приложения (процессы), запущенные на этой ЭВМ, не в состоянии обеспечитьудаленных клиентов требуемой информацией, так как она расположена на недоступном накопителе.