На высоком уровне компьютерный кластер представляет собой группу из двух или более компьютеров, или узлов, работающих параллельно для достижения общей цели. Это позволяет распределять рабочие нагрузки, состоящие из большого количества отдельных, параллелизуемых задач, между узлами в кластере. В результате эти задачи могут использовать объединенную память и вычислительную мощность каждого компьютера для увеличения общей производительности.
Для построения компьютерного кластера отдельные узлы должны быть подключены к сети для обеспечения межузлового общения. Затем можно использовать программное обеспечение для объединения узлов в кластер. В нем может быть общее устройство хранения данных и/или локальное хранилище на каждом узле.
Как правило, по крайней мере один узел назначается ведущим узлом и действует как точка входа в кластер. Ведущий узел может быть ответственен за распределение входящей работы между другими узлами и, при необходимости, за агрегирование результатов и возвращение ответа пользователю.
В идеале кластер функционирует так, как будто он является одной системой. Пользователь, обращающийся к кластеру, не должен знать, является ли система кластером или отдельной машиной. Кроме того, кластер должен быть спроектирован так, чтобы минимизировать задержки и предотвратить узкие места в коммуникации между узлами.
Компьютерные кластеры обычно можно классифицировать на три типа:
Две наиболее часто используемые конфигурации кластеров высокой доступности (HA) - это активно-активная и активно-пассивная.
Активно-активный кластер обычно состоит как минимум из двух узлов, которые одновременно активно выполняют один и тот же вид услуг. Основная цель активно-активного кластера - достижение балансировки нагрузки. Балансировщик нагрузки распределяет рабочие нагрузки между всеми узлами, чтобы предотвратить перегрузку любого отдельного узла. Благодаря наличию большего количества доступных узлов также улучшается пропускная способность и время отклика.
Как и конфигурация активно-активного кластера, активно-пассивный кластер также состоит как минимум из двух узлов. Однако, как следует из названия активно-пассивный, не все узлы будут активными. Например, в случае с двумя узлами, если первый узел уже активен, то второй узел должен быть пассивным или находиться в режиме ожидания.
Четыре ключевых преимущества кластерных вычислений следующие:
Балансировка нагрузки имеет некоторые общие черты с кластеризацией, но это разные процессы. Кластеризация обеспечивает избыточность и повышает емкость и доступность. Серверы в кластере осведомлены друг о друге и работают вместе для достижения общей цели. Но при балансировке нагрузки серверы не знают друг о друге. Вместо этого они реагируют на запросы, которые они получают от балансировщика нагрузки.
Мы можем использовать балансировку нагрузки в сочетании с кластеризацией, но она также применима в случаях, когда задействованы независимые серверы, выполняющие общую задачу, такую как управление веб-сайтом, бизнес-приложением, веб-службой или каким-либо другим ИТ-ресурсом.
Одной из наиболее очевидных проблем, которую представляет кластеризация, является увеличенная сложность установки и обслуживания. Операционная система, приложение и их зависимости должны быть установлены и обновлены на каждом узле.
Это становится еще более сложным, если узлы в кластере не являются однородными. Также необходимо тщательно отслеживать использование ресурсов каждого узла, и журналы должны быть агрегированы, чтобы гарантировать корректное поведение программного обеспечения.
Кроме того, управление хранилищем становится более сложным: общее устройство хранения должно предотвращать перезапись данных между узлами, и распределенные системы хранения данных должны быть синхронизированы.
Кластеризация часто используется в промышленности, и многие технологии часто предлагают некоторый вид кластерного режима. Например: