Кластеризация
– технология, с помощью которой несколько серверов, сами являющиеся
вычислительными системами, объединяются в единую систему более высокого
ранга для повышения эффективности функционирования системы в целом.
Кластер — группа компьютеров, объединённых
высокоскоростными каналами связи и представляющая с точки зрения
пользователя единый аппаратный ресурс.
Один из первых архитекторов кластерной технологии Грегори Пфистер (Gregory F. Pfister) дал кластеру следующее определение: «Кластер — это разновидность параллельной или распределенной системы, которая:
- состоит из нескольких связанных между собой компьютеров;
- используется как единый, унифицированный компьютерный ресурс».
Иными словами, кластер компьютеров представляет собой
несколько объединенных компьютеров, управляемых и используемых как
единое целое. Они называются узлами и могут быть одно- или
мультипроцессорными. В классической схеме при работе с приложениями все
узлы разделяют внешнюю память на массиве жестких дисков, используя
внутренние дисковые накопители для специальных функций (например,
системных).
Обычно различают следующие основные виды кластеров:
- Кластеры высокой доступности(High-availability clusters, HA)
- Кластеры распределения нагрузки (Load balancing clusters)
- Кластеры повышенной производительности(High-performance clusters, HPC)
- grid-системы
Кластеры высокой доступности:
Обозначаются аббревиатурой HA (англ. High Availability — высокая
доступность). Создаются для обеспечения высокой доступности сервиса,
предоставляемого кластером. Избыточное число узлов, входящих в кластер,
гарантирует предоставление сервиса в случае отказа одного или
нескольких серверов. Типичное число узлов — два, это минимальное
количество, приводящее к повышению доступности. Создано множество
программных решений для построения такого рода кластеров. В частности,
для GNU/Linux, FreeBSD и Solaris существует проект бесплатного ПО
Linux-HA.
Кластеры распределения нагрузки:
Принцип их действия
строится на распределении запросов через один или несколько входных
узлов, которые перенаправляют их на обработку в остальные,
вычислительные узлы. Первоначальная цель такого кластера —
производительность, однако, в них часто используются также и методы,
повышающие надежность. Подобные конструкции называются серверными
фермами. Программное обеспечение (ПО) может быть как коммерческим
(OpenVMS Cluster, Platform LSF HPC, Sun Grid Engine, Moab Cluster
Suite, Maui Cluster Scheduler), так и бесплатным (Linux Virtual Server,
Mosix).
Кластеры повышенной производительности:
Обозначаются
англ. аббревиатурой HPC (High performance cluster). Позволяют увеличить
скорость расчетов, разбивая задание на параллельно выполняющиеся
потоки. Используются в научных исследованиях. Одна из типичных
конфигураций — набор серверов с установленной на них операционной
системой Linux, такую схему принято называть кластером Beowulf. Для HPC
создается специальное ПО, способное эффективно распределять задачу
между узлами.
Эффективные связи между серверами в кластере позволяют им поддерживать
связь и оперативно обмениваться данными, поэтому такие кластеры хорошо
приспособлены для выполнения процессов, использующих общие данные.
Системы распределенных вычислений (grid):
Такие
системы не принято считать кластерами, но их принципы в значительной
степени сходны с кластерной технологией. Их также называют
grid-системами. Главное отличие — низкая доступность каждого узла, то
есть невозможность гарантировать его работу в заданный момент времени
(узлы подключаются и отключаются в процессе работы), поэтому задача
должна быть разбита на ряд независимых друг от друга процессов. Такая
система, в отличие от кластеров, не похожа на единый компьютер, а
служит упрощенным средством распределения вычислений. Нестабильность
конфигурации, в таком случае, компенсируется большим числом узлов.
В отличие от "мэйнфреймов" - суперкомпьютеров с традиционной
архитектурой - кластер строится на базе массово выпускаемых компонентов
и состоит из стандартных серверов - вычислительных узлов, объединенных
высокопроизводительной системной сетью - интерконнектом. Кластерная
архитектура решений предоставляет пользователям вычислительных систем с
суперкомпьютерным уровнем производительности ряд существенных
преимуществ:
- наиболее выгодное соотношение "цена/производительность"
- прекрасные
возможности расширения: производительность кластера можно увеличить
путем простого добавления стандартных вычислительных узлов
- высокая отказоустойчивость: при выходе из строя вычислительного узла его легко заменить без остановки системы
- простота обслуживания
- низкая стоимость владения (TCO)
Недостатки: задержки разработки и принятия общих стандартов; большая
доля нестандартных и закрытых разработок различных фирм, затрудняющих
их совместное использование; трудности управления одновременным
доступом к файлам; сложности с управлением конфигурацией, настройкой,
развёртыванием, оповещениями серверов о сбоях и т.п.