oldi

Кластерные технологии

Сергей Зелов

Обзор архитектур на основе кластеров

Кластерная архитектура с совместным использованием дисков

Кластерная архитектура без предоставления доступа к ресурсам

Топологические разновидности

Архитектура кластера с резервированием

Масштабируемая архитектура кластера

Многоуровневая архитектура кластера

Готовые решения на основе кластеров

Кластерная технология SCO UnixWare Nonstop Сlasters названа журналом Performance Computing «Выдающимся продуктом года»

Реализация законченного кластерного решения — прислушайтесь к советам специалистов

 

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

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

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

Готовность системы к использованию — показатель ее надежности для конечного пользователя — выражается в процентном соотношении между работоспособным состоянием системы и ее простоями по любой причине, в том числе и плановыми (к ним относятся профилактические работы, реконфигурации, смена версий программного обеспечения, модернизация оборудования и т.п.).

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

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

В зависимости от уровня готовности корпоративной системы к использованию выделяют четыре типа надежности:

 

Уровень готовности, % Мaкс. время простоя Тип системы
99,0 3,5 дня в год Обычная (Conventional)
99,9 8,5 часов в год Высокая надежность (High Availability)
99,99 1 час в год Отказоустойчивая (Fault Resilient)
99,999 5 минут в год Безотказная (Fault Tolerant)

В последнее десятилетие широкое распространение получил термин «системы высокой готовности» (High Availability Systems). Весь спектр данных систем имеет общую цель — минимизировать время простоя (в основном это касается внеплановых простоев).

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

Для типичного современного сервера величина готовности к использованию составляет 99,0%. Практика показывает, что при тщательной настройке операционной системы и продуманном системном администрировании надежность обычного сервера можно довести до уровня 99,5% и даже до 99,8%. Однако при достижении 99,5%-ной готовности основную роль среди причин простоя системы начинают играть так называемые внешние причины (ошибки в программном обеспечении, неквалифицированные действия персонала и т.д.), от которых обычный сервер никак не застрахован. Кластерная технология позволяет обеспечить уровень готовности системы к использованию в 99,9% и выше, что на практике означает менее 8 часов простоя в год.

Термин «кластеризация» в компьютерной области имеет много значений. Наиболее общее определение могло бы звучать так: «Реализация объединения компьютеров, представляющегося единым целым для операционной системы, системного программного обеспечения, прикладных программ и пользователей».

Компьютеры, образующие кластер, — так называемые узлы кластера — всегда относительно независимы, что допускает остановку или выключение любого из них для проведения профилактических работ или установки дополнительного оборудования без нарушения работоспособности всего кластера. Кроме того, все узлы кластера выполняют полезную работу — в отличие от систем с реплицированием данных (к примеру, Novell SFT III), а также в отличие от FT-систем (Fault Tolerant), которые обеспечивают не более пяти минут простоя в год за счет максимальной избыточности — резервирования всех подверженных отказам элементов. При отказе одного из узлов кластера оставшиеся узлы могут взять на себя задания, выполнявшиеся на отказавшем узле, не останавливая общий процесс работы. При этом сбой в работе кластера выражается лишь в некотором снижении производительности системы или в недоступности приложений на короткое время, необходимое для переключения на другой узел.

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

Обзор архитектур на основе кластеров

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

Существуют две основные архитектуры современных кластеров: одна основана на совместном использовании дисков, другая же не предполагает их совместного использования. Для каждой архитектуры существует множество разновидностей.

В начало

В начало

Кластерная архитектура с совместным использованием дисков

Главная особенность данного типа построения кластеров заключается в том, что на компьютерах, входящих в состав кластера, запускается одно приложение, хотя это условие не является обязательным (рис. 1). Поскольку все компьютеры могут совместно использовать общедоступные данные для проверки паролей, контроля за изменением и удалением этих данных, необходим диспетчер доступа.

Другой особенностью является то, что в данном случае сервер приложений должен координировать доступ к дискам. Для этого в локальной сети между серверами должны быть установлены постоянные соединения.

Кластерные хост-компьютеры могут обращаться к дискам непосредственно, без помощи контроллера. Этот вариант проиллюстрирован на рис. 2. Поскольку для нормальной работы кластера управление доступом к ресурсам все-таки необходимо, в данном случае оно выполняется на уровне протокола, а не с помощью физического устройства.

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

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

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

В начало

В начало

Кластерная архитектура без предоставления доступа к ресурсам

Кластеры данного типа являются более масштабируемыми и обладают большим потенциалом в отношении отказоустойчивости и исправления ошибок. Это достигается посредством того, что в данном типе кластера нет совместного использования каких-либо устройств. Для достижения высокой масштабируемости и надежной работы пришлось пожертвовать производительностью работы приложения. Скорость работы глобальных сетей по сравнению с локальными практически всегда ниже.

Это тип кластеров представлен в одном из двух вариантов. Первый из них предназначен для оборудования, находящегося в непосредственной близости, а второй — для географически удаленного. Структура кластера без предоставления доступа к ресурсам представлена на рис. 3, а географически распределенный кластер — на рис. 4.

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

В начало

В начало

Топологические разновидности

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

В начало

В начало

Архитектура кластера с резервированием

Существует большое количество высоконадежных кластерных продуктов, поддерживающих возможность автоматического восстановления после отказа одного из компонентов. Все они называются системами с резервированием (fail-over systems). В таких системах два или более хост-компьютера функционируют в режиме резервных устройств. Если один из них выходит из строя, то другой (другие) автоматически начинает обрабатывать все данные, которые до этого обслуживал отказавший компьютер. Это исключает возможность фатального сбоя в работе всей системы. Данный тип организации кластеров оптимально подходит для поддержки работы критически важных приложений. Простейшая топология кластера с резервированием представлена на рис. 5.

Для работы кластеров с резервированием и совместным использованием ресурсов обычно разворачивается дополнительная высокопроизводительная сеть, предназначенная исключительно для передачи служебной информации между хост-компьютерами.

В кластерах с резервированием наблюдается более разумный подход к избыточности. Резервные хост-компьютеры постоянно получают информацию о состоянии других хост-компьютеров, и поэтому в случае возникновения неисправности кластер восстанавливается незамедлительно. Использование механизма мониторинга позволяет создателям систем равномерно распределить нагрузку между хост-компьютерами, снизив коэффициент загруженности центральных процессоров до 50%.

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

В начало

В начало

Масштабируемая архитектура кластера

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

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

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

В начало

В начало

Многоуровневая архитектура кластера

Многоуровневый кластер лучше всего описать как среду «клиент/сервер/сервер». На рис. 6 показано, что кластеру сервера приложения может быть предоставлен совместный доступ к серверу, содержащему данные и подсистему базы данных. Такая организация работы позволяет один класс машин настроить непосредственно на управление базой данных, а второй — на работу с приложением.

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

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

Для наиболее важных приложений можно также кластеризовать сервер данных кластера. Таким образом, два (или больше) полностью «зеркальных» сервера могут взаимозаменяемо функционировать в качестве кластерного сервера управления базой данных.

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

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

  • они должны иметь достаточный резервный объем дисковой памяти для мгновенной обработки данных и запросов ввода/вывода дублируемого приложения;
  • локальные и глобальные сети, подключаемые к пользователю сети и кластерным хост-компьютерам, должны обладать достаточными резервными средствами для автоматической настройки в соответствии с изменением трафика, которое произошло в результате восстановления системы после отказа;
  • серверы должны быть географически разнесены между собой. При этом условии сбой на каком-либо одном участке не сможет одновременно повлиять и на основной, и на резервный серверы приложения;
  • необходимо обеспечить наличие копии программного обеспечения и данных приложения на резервном сервере.

Кластер взаимного резервирования представлен на рис. 8.

Использование географически распределенного кластера без предоставления совместного доступа к ресурсам позволяет разработчикам удовлетворить все требования, предъявляемые к восстановлению после сбоя, не затрачивая дополнительных средств на приобретение избыточных систем резервирования.

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

В начало

В начало

Следующая страница