Cloud

Кластер

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

Что такое кластер

Кластер — группа компьютеров (узлов), объединённых сетью и управляемых как одна система. Снаружи кластер выглядит как единый ресурс: одна точка входа, один пул мощности. Внутри — несколько независимых машин, у каждой свой процессор, память и диски.

Смысл в двух вещах: отказоустойчивость — отказал узел, работа продолжилась на остальных; и масштаб — задача, которая не помещается в один сервер, распределяется по десяткам.

Что такое кластер простыми словами

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

Само слово означает «гроздь», группу однотипных объектов, поэтому встречается и вне серверов: кластер файловой системы — минимальный блок выделения места на диске (в NTFS обычно 4 КБ), кластер в статистике — группа похожих точек данных.

Типы кластеров

Тип Задача Что происходит при отказе узла Технологии
Отказоустойчивый (HA) Сервис не должен лежать Ресурс переезжает на живой узел Pacemaker + Corosync, Windows Server Failover Clustering
Балансировки нагрузки Держать много запросов Узел убирается из ротации load balancer и реплики
Вычислительный (HPC) Считать одну большую задачу Задача перезапускается Slurm, MPI
Кластер БД Хранить данные без потерь Реплика повышается до мастера репликация, Galera
Контейнерный Оркестрация сервисов Контейнер пересоздаётся на другом узле Kubernetes, Docker Swarm

Типы комбинируются: кластер Kubernetes — одновременно и HA, и балансировка, и оркестрация.

Из чего состоит кластер серверов

  • Узлы — физические серверы или виртуальные машины. Обычно делятся на управляющие (control plane) и рабочие (worker).
  • Interconnect — сеть между узлами. Для веб-нагрузки хватает обычной 10/25 GbE, для распределённого обучения нужна InfiniBand или RoCE: межузловой обмен становится узким местом раньше, чем вычисления.
  • Общее хранилищеСХД, NFS или распределённая ФС (Ceph, GlusterFS). Нужно, чтобы узел-преемник видел те же данные.
  • Менеджер кластера — следит за живостью узлов через health check и решает, куда перенести нагрузку.

Кворум и split-brain

Главная опасность кластера — не отказ узла, а split-brain: сеть распалась на две половины, каждая считает соседей мёртвыми и назначает себя главной. Две «главные» половины пишут в данные независимо — получается расхождение, которое потом не свести автоматически.

Лечится кворумом: работать имеет право только группа, где больше половины узлов (N/2 + 1). Поэтому управляющих узлов делают нечётное число — 3 или 5. Кластер из 2 узлов кворума не даёт: при разрыве ни одна половина не наберёт большинство.

Узлов Кворум Переживёт отказов
3 2 1
5 3 2
7 4 3

GPU-кластер

GPU-кластер — частный случай вычислительного кластера: узлы с несколькими ускорителями, внутри узла карты связаны NVLink, между узлами — InfiniBand, а обмен градиентами идёт через NCCL. Так запускают обучение моделей, которые не влезают в одну карту, и распределённый инференс через tensor parallelism.

Практическая деталь: в кластере обучения отказ одного узла обычно роняет всю задачу — состояние синхронно. Спасают чекпоинты, а не failover.

Связанные термины

Готовы запустить GPU-задачу?

Запустить GPU-сервер