Отказоустойчивый кластер нужен для одного: чтобы сервис пережил отказ железа без остановки. Упал узел, диск, блок питания - нагрузка уезжает на соседа, пользователь ничего не заметил. Звучит просто, но между «поставить два сервера» и «получить работающий кластер» лежит несколько решений, на которых легко ошибиться: кворум, общее хранилище, запас мощности. Разберём, как собрать такой кластер под небольшую компанию, на что смотреть при выборе железа и где чаще всего спотыкаются - с реальным примером из нашей практики.
Сначала о терминах, потому что их путают. Под «кластером» понимают три разные вещи:
Если нужна теория - что это такое и зачем вообще, разобрано в статье что такое кластеризация серверов. Здесь мы про практику: как из железа и софта собрать работающую отказоустойчивую систему. На практике «отказоустойчивым» в разговоре называют и HA-кластер тоже, и в большинстве проектов SMB собирают именно его - поэтому дальше речь в основном про HA, а честный fault tolerance упомянем там, где он уместен.
Главная ловушка кластера - split-brain. Представьте два узла, между которыми пропала связь. Каждый считает, что второй умер, и берёт нагрузку на себя. В итоге одни и те же данные пишут две машины независимо - и вы получаете два расходящихся набора данных, которые потом не свести. Это хуже, чем простой.
Чтобы этого не случилось, кластер использует кворум - правило «работает тот, у кого большинство голосов». При трёх узлах всё просто: осталось двое - у них большинство, они и работают; одиночка себя выключает. А вот при двух узлах большинства не бывает - 1 против 1. Поэтому кластеру из двух серверов нужен третий голос:
Два узла без арбитра - это не отказоустойчивый кластер, а бомба замедленного действия. Первый же обрыв линка между ними может кончиться split-brain и расхождением данных. Планируя кластер из двух серверов, сразу закладывайте третий голос.
Второе, что нужно решить, - где лежат данные, к которым обращаются оба узла. Два подхода.
Внешнее общее хранилище (shared storage). Отдельная СХД (или дисковая полка), к которой подключены оба сервера. Данные в одном месте, узлы - только вычислители. Классика, но у внешней СХД появляется своя точка отказа, поэтому её саму берут с дублированием контроллеров и путей.
Программная репликация (гиперконвергенция). Диски стоят внутри самих серверов, а специальный софт зеркалит их между узлами по сети - общей СХД нет вообще. Так работают Starwind VSAN, Microsoft Storage Spaces Direct (S2D), Proxmox поверх Ceph или реплицируемого ZFS. Для кластера из двух узлов это часто выходит проще и дешевле, чем отдельная СХД.
| Критерий | Внешняя СХД | Программная репликация (HCI) |
|---|---|---|
| Где данные | В отдельном массиве | Внутри узлов, зеркалируются по сети |
| Точка отказа | Сама СХД (дублировать контроллеры) | Нет единой - данные на обоих узлах |
| Сеть под данные | SAN (FC/iSCSI) | Быстрый Ethernet между узлами (10/25 Гбит) |
| Порог входа | Выше (СХД + коммутаторы) | Ниже - хватает двух серверов с дисками |
| Кому | Уже есть СХД, много узлов | 2-3 узла, ограниченный бюджет |
Под репликацию критична сеть между узлами: зеркалирование ест полосу, и на гигабите оно станет узким местом. Закладывайте отдельные 10-гигабитные (а лучше 25) линки под синхронизацию. Подробнее про сам принцип - в разборе репликации данных между системами хранения.
«С запасом мощности» - не про то, чтобы взять сервера помощнее на всякий случай. Это про конкретное правило: при отказе одного узла оставшиеся должны тянуть всю нагрузку. Логика простая - если у вас два узла и каждый загружен на 80%, то после отказа одного второму придётся тянуть 160% своих возможностей. Он ляжет следом, и отказоустойчивость окажется фикцией.
Отсюда правило N+1: суммарной мощности должно хватать с запасом на выход одного узла из строя.
То же касается и памяти: если все ВМ в сумме просят 200 ГБ RAM, каждый из двух узлов должен иметь эти 200 ГБ, а не 100. Память - обычно первое, во что упирается консолидация, поэтому считать запас надо именно по ней, а не по числу ядер.
По хранилищу «запас ёмкости» означает две вещи: место под рост данных (диски проще доставить, чем мигрировать массив) и свободные слоты/отсеки под будущее расширение. Кластер, который нельзя нарастить не разбирая, - плохой кластер.
Софтверная основа кластера - платформа виртуализации. Расклад изменился: VMware vSphere после перехода под Broadcom подорожал и для российского рынка фактически недоступен, поэтому его закладывать в новый проект не стоит. Актуальные варианты:
Если виртуализация для вас тема новая, стоит начать с того, что такое виртуализация сервера и как она вообще устроена, - кластер строится уже поверх неё.
Отказоустойчивость начинается не в софте, а в железе. Каждый узел должен быть избыточен сам по себе, иначе кластер просто переносит единую точку отказа на уровень ниже.
Отдельно про сам план резервирования питания и дисков: избыточность стоит денег, и раздувать её до уровня крупного ЦОД малому офису не нужно. Два БП, два сетевых пути, арбитр кворума и рабочие бэкапы закрывают подавляющее большинство отказов - дизель-генератор и два независимых ввода это уже история про другой масштаб.
Чтобы не оставаться в теории - реальный проект. К нам обратилась компания, оказывающая таможенно-брокерские услуги. Задача: кластер из двух серверов под виртуализацию, с отказоустойчивым хранилищем для ВМ, непрерывным доступом к базе данных и запасом на рост. Бюджет ограничен коридором 350 000-750 000 ₽.
Инженеры собрали кластер из двух серверов Dell с такой конфигурацией на каждый узел:
Отказоустойчивое хранилище для виртуальных машин реализовали программной репликацией между узлами (тот самый гиперконвергентный подход), под VMware vSphere / Hyper-V. Кластер укомплектовали салазками и организовали кабель-менеджмент в шкафу. Уложились в заданный бюджет, оставив заказчику запас мощности и свободные отсеки: доставить диски или ввести третий узел позже выйдет заметно дешевле, чем собирать с нуля.
Важная оговорка на 2026 год: этот проект - иллюстрация подхода, а не спецификация «повторяйте за нами». Модели серверов и платформу виртуализации сегодня подбирают под текущий рынок (Proxmox или Hyper-V вместо vSphere, актуальные поколения серверов), но логика - два избыточных узла, репликация вместо дорогой СХД, кворум, запас мощности и ёмкости - остаётся ровно той же.
Короткий список, по которому стоит пройтись до заказа железа:
Можно ли собрать отказоустойчивый кластер из двух серверов? Да, это самый частый сценарий для SMB. Но обязательно нужен третий голос (witness-арбитр) против split-brain - иначе при обрыве связи между узлами данные разъедутся.
Кластер заменяет резервное копирование? Нет. Кластер защищает от отказа железа, но не от удаления данных, шифровальщика или ошибки администратора - всё это спокойно реплицируется на второй узел. Бэкапы нужны отдельно.
Обязательна ли отдельная СХД? Нет. Для кластера из двух-трёх узлов программная репликация дисков внутри серверов (Starwind, S2D, Ceph) часто проще и дешевле внешней СХД и убирает её как отдельную точку отказа.
Сколько стоит собрать кластер? Зависит от числа узлов, объёма памяти и хранилища, платформы виртуализации. Кластер из двух узлов под небольшую компанию реально уложить в несколько сотен тысяч рублей; точную цифру считают под конфигурацию и задачу.
Чем HA-кластер отличается от честной отказоустойчивости (fault tolerance)? В HA при отказе узла ВМ перезапускается на живом - простой минута-две. При fault tolerance ВМ работает синхронно на двух узлах и отказ не даёт даже секундного простоя, но это дороже и требовательнее к сети.
По теме: кластеризация и high availability: как обеспечить аптайм 99,99% · отказоустойчивый файловый сервер: настройка кластера в Windows · кластер серверов 1С
Нужен отказоустойчивый кластер под ваши задачи?
Инженеры ITTELO подберут конфигурацию с запасом мощности и ёмкости, соберут и протестируют кластер под нагрузку перед отгрузкой, с гарантией и поддержкой после продажи. На рынке серверов 11+ лет.
Серверы для виртуализации · +7 (800) 551-80-12 · info@ittelo.ru