Кластер
Кластер — группа серверов, объединённых сетью и работающих как единая система ради отказоустойчивости и суммарной вычислительной мощности.
Что такое кластер
Кластер — группа компьютеров (узлов), объединённых сетью и управляемых как одна система. Снаружи кластер выглядит как единый ресурс: одна точка входа, один пул мощности. Внутри — несколько независимых машин, у каждой свой процессор, память и диски.
Смысл в двух вещах: отказоустойчивость — отказал узел, работа продолжилась на остальных; и масштаб — задача, которая не помещается в один сервер, распределяется по десяткам.
Что такое кластер простыми словами
Один сервер — это один кассир в магазине. Он работает, пока не заболел, и обслуживает столько людей, сколько успевает. Кластер — ряд касс с общей очередью: кассиры взаимозаменяемы, одна закрылась — очередь перетекла к соседним, в час пик открыли ещё три.
Само слово означает «гроздь», группу однотипных объектов, поэтому встречается и вне серверов: кластер файловой системы — минимальный блок выделения места на диске (в 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-кластер — кластер для обучения и инференса моделей
- Kubernetes — самый распространённый способ управлять кластером
- load balancer — распределяет запросы между узлами
- репликация — как данные попадают на все узлы кластера
- SLA и отказоустойчивость — зачем кластер нужен бизнесу
- Суперкомпьютеры — кластер, доведённый до предела
Готовы запустить GPU-задачу?
Запустить GPU-сервер