Кластеризация
Кластер — слабо связанная совокупность нескольких вычислительных систем, работающих совместно для выполнения общих приложений, и представляющихся пользователю единой системой.
Виды кластеров
- Отказоустойчивые кластеры (High-availability clusters, HA)
- Кластеры с балансировкой нагрузки (Load balancing clusters)
- Вычислительные кластеры (High performance computing clusters, HPC)
- Системы распределенных вычислений
Отказоустойчивые кластеры
Создаются для обеспечения высокой доступности сервиса, предоставляемого кластером. Избыточное число узлов, входящих в кластер, гарантирует предоставление сервиса в случае отказа одного или нескольких серверов. Типичное число узлов — два, это минимальное количество, приводящее к повышению доступности.
Подтипы отказоустойчивых кластеров
- С холодным резервом
- С горячим резервом
- С модульной избыточностью
Холодный резерв
Один сервер находится в пассивном режиме и ждет падения основного сервера
Горячий резерв
Два сервера обрабатывают запросы, в случае падения одного, вся нагрузка направляется на живой.
Модульная избыточность
Два сервера обрабатывают один и тот же запрос. Необходимо, когда нам нужно гарантированно обработать запрос и получить результат (результат берется любой).
Кластеры распределения нагрузки
Принцип действия базируется на распределении нагрузки через один или несколько входных узлов. Также такой кластер часто называют веб фермой.
Вычислительные кластеры
Кластеры используются в вычислительных целях, в частности в научных исследованиях. Для вычислительных кластеров существенными показателями являются высокая производительность процессора в операциях над числами с плавающей точкой (flops) и низкая латентность объединяющей сети, и менее существенными — скорость операций ввода-вывода, которая в большей степени важна для баз данных и web-сервисов. Вычислительные кластеры позволяют уменьшить время расчетов, по сравнению с одиночным компьютером, разбивая задание на параллельно выполняющиеся ветки, которые обмениваются данными по связывающей сети.
Типовые задачи для расчетных кластеров
- решение задач механики жидкости и газа, теплопередачи и теплообмена, электродинамики, акустики;
- моделирование аэрогазодинамических процессов;
- моделирование физико-химических процессов и реакций;
- моделирование сложного динамического поведения различных механических систем;
- решение задач цифровой обработки сигналов, финансового анализа, разнообразных математических задач, визуализации и представления данных
- анализ и расчет статической и динамической прочности;
- газодинамика, термодинамика, теплопроводность и радиочастотный анализ;
- моделирование задач любой степени геометрической сложности;
- рендеринг анимации и фотореалистичных VFX эффектов
Системы распределенных вычислений
Такие системы не принято считать кластерами, но их принципы в значительной степени сходны с кластерной технологией. Их также называют grid-системами. Главное отличие — низкая доступность каждого узла, то есть невозможность гарантировать его работу в заданный момент времени, поэтому задача должна быть разбита на ряд независимых друг от друга процессов. Такая система, в отличие от кластеров, не похожа на единый компьютер, а служит упрощенным средством распределения вычислений. Состоит из множества ресурсов разных типов.
Пример
Кластер в CERN представляет из себя иерархический грид, который имеет 3 слоя:
- Нулевой — собирает информацию с датчиков и осуществляет первичное хранение информации
- Tier 1 — хранит копии данных в разных точках мира
- Tier 2 — преимущественно обладают высокой вычислительной мощностью — обрабатывают информацию.
Достоинства
- Эффективная утилизация ресурсов.
- Обновления без остановки
- Увеличение производительности
- Отказоустойчивость (круглосуточная работа)
- Абсолютная масштабируемость
Недостатки
- Синхронизация между приложениями — необходимо обеспечить синхронизацию данных между серверами в кластере.
- Цена
- Сложность в управлении
- Необходимость адаптации приложения для работы в кластере (веб-ферме).