Кластерные системы

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

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

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

Кластер состоит из аппаратной части и программной части.

Аппаратная часть, помимо серверов (узлы кластера), включает среду взаимодействия узлов кластера - heartbeat, реализуемую с помощью либо обычного Ethernet, либо специальных высокоскоростных сред передачи данных с низкой латентностью, таких как SCI, HP HyperPlex, Sun WildCat. Для того, чтобы все узлы кластера могли обеспечить работу одного информационного сервиса, они должны иметь доступ к общему дисковому пространству. Общее дисковое пространство реализуется созданием общих для узлов кластера томов на одном отказоустойчивом дисковом массиве (или двух зазеркалированных дисковых массивах), подключенном ко всем узлам кластера. Для кластера, состоящего из многих узлов, наилучшей инфраструктурой доступа серверов к общему дисковому массиву является SAN , поскольку протокол SCSI не обеспечивает устойчивой работы шины с более чем двумя инициаторами.

Кластерное ПО добавляет функции обеспечения высокой доступности информационных сервисов, отсутствующие в операционных системах. Эти функции реализуются с помощью специальных сервисов или скриптов, отслеживающих работоспособность информационных сервисов, выполняемых узлами кластера. В случае сбоя в работе информационного сервиса, вызванного отказом диска, сетевого интерфейса или самого приложения, выполнение сервиса будет "перенесено" на другой узел кластера. Под переносом здесь понимается: остановка приложения (если оно еще работало) на первом узле, размонтирование общих дисковых томов, монтирование общих дисковых томов на втором узле, перенос IP-адреса (алиаса) с первого на второй узел, запуск приложения. Если в кластере больше двух узлов, то информационные сервисы вышедшего из строя узла переносятся на другие узлы в зависимости от политики, заданной либо администратором, либо определенной кластерным ПО на основе данных о загрузке работоспособных узлов.

Указанный механизм работы используют кластеры, предназначенные для обеспечения высокой доступности информационных сервисов (или коротко кластеры высокой доступности - HA (high availability)-clusters). Данный тип кластеров является наиболее распространенным. 

Существуют другие типы кластеров:

  • Кластеры для обеспечения масштабируемости сервисов (Massive Parallel Processing Clusters - MPP-clusters). Данный тип кластера является системой с узлами, связанными друг с другом посредством внешнего механизма распределения нагрузки, например, коммутатора. Это горизонтально масштабируемый кластер. Узлы кластера не зависят от результатов работы друг друга. Каждая копия приложения, выполняемая на каждом узле кластера, работает со своей копией данных. Данные реплицируются между узлами, либо к ним осуществляется доступ по сети, например, через NFS. Узлы кластера обрабатывают запросы на уровне сессий, а не транзакций. Примером такого кластера является Web-фабрика (множество Web-серверов, обслуживающих один Web-сайт). Для Web -фабрики не существует проблемы целостности данных, поскольку Web -страницы используются только для чтения, а транзакции, такие как обработка заказов, обслуживаются на следующем уровне архитектуры комплекса (серверами приложений).
  • Кластеры для обеспечения производительности вычислений (High Performance Computing Clusters - HPC-clusters). Этот тип кластеризации применяется для организации научных вычислений, где требуется высокая масштабируемость и использование всех процессорных мощностей для решения одной задачи. Такие кластеры, как правило, используют пакетную обработку заданий и не имеют средств поддержания устойчивости. Используется механизм контрольных точек для возобновления вычислений в случае сбоя. 

Ряд производителей программного обеспечения для HA-clusters встраивают в него функции распределения нагрузки между узлами, выполняющими одно и то же приложение и работающие при этом с общей копией данными. Однако реализация такого сервиса существенно зависит от приложения. В настоящее время кластерное ПО может обеспечивать работу с общей файловой системой и с общей базой данных СУБД Oracle (Oracle Parallel Server, Real Application Cluster).

При решении вопроса о создании кластера необходимо оценить три основных критерия:

  • Возможный ущерб для предприятия от простоя критичных информационных сервисов;
  • Среднее время восстановления работоспособности этих сервисов без применения кластера;
  • Стоимость реализации кластера. 

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

Системный подход к построению кластеров дает возможность компании «Украинские компьютерные технологии» эффективно внидрять данную систему на предприятиях любой отрасли. Регулярный технический аудит позволяет предприятию поддерживать систему в соответствие с необходимыми характеристиками и своевременно принимать меры по ее модернизации.


ISO 9001:2000
/body>