Кластер серверов 1С: отказоустойчивость и масштабирование

Представьте ситуацию: пятница, 17:45, конец отчётного периода. Все бухгалтеры вносят последние проводки, закрывают авансовые отчёты, формируют регламентированную отчётность. И вдруг сервер 1С «ломается». Работа встаёт, пользователи теряют несохранённые данные, а IT-отдел начинает экстренный поиск причины сбоя. Часы простоя обходятся бизнесу в сотни тысяч рублей прямых потерь .

Можно ли этого избежать? Да — если вместо одного сервера развернуть кластер серверов 1С.

В этой статье разберём, что такое кластер серверов 1С, как он обеспечивает отказоустойчивость и масштабируемость, какие компоненты входят в его состав и как правильно его настроить для бесперебойной работы бизнеса.

1. Что такое кластер серверов 1С

Кластер серверов — это группа из нескольких связанных между собой компьютеров, которые используются как единый вычислительный ресурс . С точки зрения пользователя, это просто «сервер 1С», к которому он подключается. Но внутри происходит сложная работа по распределению нагрузки и обеспечению непрерывности.

1.1. Зачем нужен кластер

Основные задачи кластера:

ЗадачаОписание
ОтказоустойчивостьПри выходе из строя одного сервера пользователи автоматически переключаются на другой без потери данных
МасштабируемостьМожно добавлять новые серверы по мере роста нагрузки без остановки системы
Балансировка нагрузкиПользовательские сеансы распределяются между серверами для оптимальной производительности
УправляемостьЦентрализованное администрирование всех компонентов инфраструктуры 

1.2. Архитектура кластера 1С

Кластер серверов 1С состоит из следующих компонентов :

text

┌─────────────────────────────────────────────────────────────────┐
│                    Центральный сервер кластера                  │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │            Менеджер кластера (RAS)                      │   │
│  │    • Принимает команды администрирования                │   │
│  │    • Распределяет нагрузку                              │   │
│  │    • Управляет лицензиями                               │   │
│  └─────────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────────┘
                              │
        ┌─────────────────────┼─────────────────────┐
        ▼                     ▼                     ▼
┌───────────────┐    ┌───────────────┐    ┌───────────────┐
│ Рабочий сервер│    │ Рабочий сервер│    │ Рабочий сервер│
│      №1       │    │      №2       │    │      №3       │
│ ┌───────────┐ │    │ ┌───────────┐ │    │ ┌───────────┐ │
│ │  ragent   │ │    │ │  ragent   │ │    │ │  ragent   │ │
│ └───────────┘ │    │ └───────────┘ │    │ └───────────┘ │
│ ┌───────────┐ │    │ ┌───────────┐ │    │ ┌───────────┐ │
│ │  rphost   │ │    │ │  rphost   │ │    │ │  rphost   │ │
│ └───────────┘ │    │ └───────────┘ │    │ └───────────┘ │
└───────────────┘    └───────────────┘    └───────────────┘
                              │
                              ▼
                    ┌───────────────────┐
                    │  Сервер СУБД      │
                    │ (PostgreSQL/MS SQL)│
                    └───────────────────┘

Ключевые компоненты:

  • Центральный сервер кластера — компьютер, на котором работает главный менеджер кластера. Через него выполняются все действия по администрированию .
  • Менеджер кластера (RAS — Remote Administration Server) — процесс, который управляет кластером, распределяет нагрузку и обрабатывает запросы на подключение .
  • Рабочие серверы — компьютеры, на которых запущены процессы, непосредственно обслуживающие клиентские подключения .
  • Агент сервера (ragent) — процесс на каждом рабочем сервере, который взаимодействует с менеджером кластера и запускает рабочие процессы .
  • Рабочий процесс (rphost) — процесс, который непосредственно выполняет бизнес-логику, обслуживает сеансы пользователей и фоновые задания .

2. Как работает отказоустойчивость

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

2.1. Разделение состояния сеанса и рабочего процесса

В ранних версиях 1С состояние пользовательского сеанса было жёстко привязано к конкретному рабочему процессу. Если процесс падал — данные терялись .

Современная архитектура разделяет:

  • Сеанс — логическая единица работы пользователя
  • Данные сеанса — информация о состоянии работы (открытые формы, несохранённые изменения, временные данные)
  • Рабочий процесс — исполнитель, который может меняться

Данные сеанса хранятся в специальной службе данных сеанса (Session Data Service), которая расположена вне рабочего процесса. Это позволяет при отказе одного рабочего процесса передать сеанс другому .

2.2. Механизм повторного вызова (Retry)

Когда клиент отправляет запрос к рабочему процессу, возможны сценарии:

СценарийЧто происходитРезультат для пользователя
Запрос выполнен успешноВозврат результатаПродолжение работы
Процесс упал до изменения данныхАвтоматический повтор вызова на другом процессеКратковременная «заморозка», затем продолжение
Процесс упал после изменения данныхНевозможно повторить — данные могли быть частично сохраненыОшибка, требуется перезапуск приложения

Большинство операций (открытие форм, формирование отчётов, просмотр списков) относятся к первому типу и безопасны для повтора .

2.3. Резервирование рабочих процессов (Workflow Backup)

Для минимизации задержек при переключении сеансов существует механизм Workflow Backup .

Как это работает:

  1. Администратор указывает, для каких информационных баз требуется резервирование.
  2. На серверах запускаются резервные рабочие процессы.
  3. Эти процессы заранее загружают метаданные информационной базы.
  4. При сбое основного процесса сеанс мгновенно переключается на резервный.
  5. После активации резервного процесса кластер автоматически создаёт новый резервный .

Workflow Backup настраивается через консоль администрирования в параметрах информационной базы.

2.4. Уровень отказоустойчивости кластера

Уровень отказоустойчивости — это максимальное количество рабочих серверов, которые могут одновременно выйти из строя без заметного влияния на работу пользователей .

При настройке этого параметра кластер автоматически запускает необходимое количество резервных служб. Репликация активных служб на резервные происходит в реальном времени .

2.5. Отказоустойчивость на уровне СУБД

Кластер серверов 1С — это только верхний уровень. Для полной отказоустойчивости необходимо также обеспечить надёжность базы данных. Практика показывает эффективность следующих решений:

Для PostgreSQL (open-source подход):

  • Patroni — оркестратор, который мониторит состояние узлов БД и при падении мастера автоматически назначает новую ведущую ноду.
  • etcd — распределённое хранилище конфигураций для согласования состояния кластера.
  • HAProxy — единая точка входа, перенаправляющая SQL-запросы только на активный мастер-узел .

Для Microsoft SQL Server:

  • Группы доступности AlwaysOn в сочетании с Pacemaker и Corosync для управления кластером на Linux .

3. Масштабирование кластера

Кластерная архитектура позволяет расти бизнесу без остановки работы. Существует два основных способа масштабирования .

3.1. Вертикальное масштабирование (Scale Up)

Увеличение мощности существующего сервера:

  • Добавление процессорных ядер
  • Увеличение оперативной памяти
  • Замена дисков на более быстрые (SSD, NVMe)

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

3.2. Горизонтальное масштабирование (Scale Out)

Добавление новых серверов в кластер :

  1. Установите платформу 1С на новый сервер (только компонент «Сервер 1С:Предприятия»).
  2. В файле C:\Program Files\1cv8\srvinfo\reg_1541\cluster.lst укажите адрес центрального сервера кластера.
  3. Перезапустите службу «Агент сервера 1С:Предприятия».
  4. В консоли администрирования новый сервер появится автоматически .

Важно: при масштабировании рекомендуется использовать блокировку сеансов на время работ, чтобы избежать конфликтов .

3.3. Автоматическое распределение нагрузки

Кластер 1С автоматически распределяет нагрузку между рабочими серверами на основе анализа их производительности в реальном времени .

Алгоритм выбора рабочего процесса для нового подключения учитывает:

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

Существует специальный энергосберегающий режим, при котором выбирается рабочий процесс, уже имеющий открытые соединения с информационной базой и работающий на сервере с максимальным объёмом свободной памяти .

3.4. Требования к функциональности

Администратор может задавать дополнительные требования для рабочих серверов:

  • Какие информационные базы обслуживает каждый сервер
  • Какие сервисы (лицензирование, внешнее управление сеансами) на нём запущены
  • Ограничение количества информационных баз и соединений на рабочий процесс 

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

4. Управление кластером

4.1. Сервер администрирования (RAS)

Сервер администрирования 1С (RAS — Remote Administration Server) — это центральный узел для управления распределённой инфраструктурой .

Основные функции RAS:

  • Приём команд администрирования
  • Управление рабочими серверами и агентами
  • Контроль информационных баз и пользовательских сеансов
  • Мониторинг состояния кластера 

RAS слушает порт 1545 (по умолчанию), агенты серверов — порт 1540 .

4.2. Инструменты администрирования

ИнструментОписание
Консоль администрированияГрафическая утилита для управления кластером (входит в состав платформы)
Утилита racКонсольный клиент для доступа к RAS, позволяет автоматизировать администрирование через скрипты 
Веб-консольДоступ через браузер для базового мониторинга

4.3. Администраторы кластера

Для безопасности доступа к кластеру настраиваются администраторы :

Уровень доступаВозможности
Администратор кластераПолный контроль: создание/удаление ИБ, управление серверами, назначение прав
Администратор информационной базыУправление конкретной ИБ: блокировка сеансов, настройка параметров
Оператор кластераТолько мониторинг без возможности изменений

Важно: Без установленного пароля администратора кластера любой пользователь сети может подключиться к консоли и изменить настройки .

4.4. Профили безопасности

Профили безопасности позволяют ограничить возможности приложений 1С на сервере :

  • Запрет доступа к файловой системе сервера
  • Запрет запуска COM-объектов
  • Запрет использования внешних компонент
  • Запрет доступа к интернет-ресурсам
  • Ограничение запуска внешних отчётов и обработок 

Это особенно актуально для облачных сервисов и при работе с нетиповыми конфигурациями .

5. Практические рекомендации

5.1. Когда нужен кластер

СценарийРекомендация
1–10 пользователейФайловый вариант или один сервер без кластера
10–50 пользователейОдин сервер с настройкой отказоустойчивости на уровне СУБД
50–200 пользователейКластер из 2–3 рабочих серверов + отказоустойчивая СУБД
200+ пользователейПолноценный кластер с балансировкой нагрузки и резервированием
Критичные к простоям бизнесы (24/7)Кластер обязателен независимо от количества пользователей

5.2. Типовые ошибки при построении кластера

  1. Экономия на сетевой инфраструктуре — медленные сетевые соединения между узлами кластера сводят на нет все преимущества.
  2. Отсутствие мониторинга — без системы оповещения вы узнаете о сбое только от пользователей.
  3. Игнорирование STONITH — в кластере СУБД без STONITH (Shoot-The-Other-Node-In-The-Head) возможна ситуация split-brain, когда оба узла считают себя мастером .
  4. Неправильный расчёт ресурсов — суммарные ресурсы кластера должны покрывать пиковую нагрузку с запасом на отказ одного узла.

5.3. Чек-лист настройки отказоустойчивого кластера

  • Развёрнуты минимум 2 рабочих сервера 1С
  • Настроен менеджер кластера (RAS) с паролем администратора
  • Для критичных ИБ включён механизм Workflow Backup
  • Настроена отказоустойчивость СУБД (Patroni/etcd/HAProxy для PostgreSQL или AlwaysOn для MS SQL)
  • Настроен мониторинг состояния всех компонентов
  • Проведены тесты отказа: отключение одного сервера, перезагрузка узла СУБД
  • Настроены регламентные задачи по резервному копированию

6. Заключение

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

Главные преимущества кластера:

  • Гарантированная непрерывность бизнеса — автоматическое переключение при сбое за секунды
  • Сохранность данных — ни один сеанс не теряет информацию при отказе рабочего процесса
  • Гибкость роста — добавление серверов без остановки системы
  • Управляемость — централизованное администрирование всей инфраструктуры

Если ваш бизнес зависит от 1С, инвестиции в отказоустойчивый кластер окупаются уже при первом предотвращённом простое. Как показывает практика, внедрение такого решения на открытых технологиях позволяет не только повысить надёжность, но и сократить лицензионные затраты на 30–40% .