Рис. 2. Программная организация SPARCcluster PDB Server (узлы кластера работают под управлением ОС Solaris версии 2.4 или выше)
Распределенность менеджера блокировок означает, что на каждом узле кластера работает свой экземпляр FT-DLM и что FT-DLM умеет динамически реконфигурировать себя (как при выходе узлов из строя, так и при добавлении новых узлов). В результате выход из строя одного узла не означает краха всего сервера баз данных - сервер жив, пока работает хотя бы один менеджер блокировок.
В рассматриваемом контексте основное назначение распределенного менеджера томов - поддержка зеркалирования дисков с тем важным дополнением, что устройства, составляющие пару, могут принадлежать разным дисковым подсистемам. Подсистема обнаружения и нейтрализации отказов постоянно отслеживает доступность ресурсов, составляющих кластер. При обнаружении неисправности запускается процесс реконфигурации, изолирующий вышедший из строя компонент при сохранении работоспособности кластера в целом (с выходом из строя диска справляется менеджер томов).
Подсистема управления кластером состоит из трех инструментов с графическим интерфейсом: консоли кластера, менеджера томов и менеджера сервера Oracle. Их интеграция обеспечивает централизованное оперативное управление всеми ресурсами кластера.
Рассмотрим, как в SPARCcluster PDB Server реализована нейтрализация самого неприятного из отказов - отказа узла. Программное обеспечение предпринимает при этом следующие действия:
Подсистема обнаружения отказов выявляет вышедший из строя узел.
Создается новая конфигурация кластера, без отказавшего узла. Этот процесс занимает 1 - 2 минуты, в течение которых обработка транзакций приостанавливается.
Менеджер блокировок производит восстановление: а
Подтвержденные транзакции от отказавшего узла (транзакции, об успешном завершении которых другие узлы кластера не успели узнать) накатываются вперед и деблокируются. а
Неподтвержденные транзакции от отказавшего узла откатываются и также деблокируются.
В этот период транзакции обрабатываются исправными узлами, но, вероятно, несколько медленнее, чем обычно.
Монитор транзакций повторно направляет в кластер неподтвержденные транзакции.
Вышедший из строя узел ремонтируется и вновь запускается.
Создается новая конфигурация кластера, включающая в себя отремонтированный узел.
Отметим, что все действия, исключая ремонт отказавшего компонента, выполняются в автоматическом режиме и не требуют вмешательства обслуживающего персонала. Следует учитывать, однако, что если следующая поломка случится до окончания ремонта, кластер может на какое-то время стать неработоспособным, поэтому затягивать ремонт не рекомендуется. Строго говоря, SPARCcluster PDB Server не поддерживает одну из важных кластерных функций - с внешней точки зрения кластер не выглядит как единое целое. Прикладные программы могут напрямую подключаться к его узлам, и тогда отказы узлов требуют нейтрализации на прикладном уровне. В то же время использование мониторов транзакций позволяет сгладить этот недостаток, обеспечивая к тому же балансировку загрузки между узлами.