System Design: От Идеи к Реальной Системе
Кластеры
Артемий Мазаев
1 янв. 2024 г.

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

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

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

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

Типы

Компьютерные кластеры обычно можно классифицировать на три типа:

  • Высокодоступные или отказоустойчивые
  • Балансировка нагрузки
  • Высокопроизводительные вычисления

Конфигурации

Две наиболее часто используемые конфигурации кластеров высокой доступности (HA) - это активно-активная и активно-пассивная.

Активно-Активная

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

Активно-Пассивная

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

Преимущества

Четыре ключевых преимущества кластерных вычислений следующие:

  • Высокая доступность
  • Масштабируемость
  • Производительность
  • Экономичность

Балансировка нагрузки vs Кластеризация

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

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

Проблемы

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

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

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

Примеры

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

Have a doubt?
Post it here, our mentors will help you out.