Один сервер справляется с 1С до определённого предела. 50+ пользователей, тяжёлые отчёты, закрытие месяца — и нагрузка на процессор и СУБД начинает конкурировать. Кластер 1С из двух серверов решает эту проблему: сервер приложений 1С на одной машине, СУБД — на другой.
В этой статье: когда нужен кластер из двух серверов, архитектура решения, пошаговая настройка от установки до проверки работоспособности. Результат — работающая двухсерверная конфигурация с разделением нагрузки между сервером приложений и СУБД.
Статья для администраторов, которые уже работают с кластером серверов 1С на одном сервере и хотят масштабироваться. Если вы только начинаете — сначала прочитайте базовую настройку кластера.
Когда нужен кластер 1С из двух серверов
Не каждой компании нужен кластер из двух серверов. Один сервер с хорошим процессором и SSD закрывает задачи до 50 пользователей. Двухсерверная конфигурация оправдана в трёх сценариях.
Разделение нагрузки
Сервер приложений 1С (ragent, rmngr, rphost) и СУБД (SQL Server или PostgreSQL) конкурируют за CPU и RAM на одной машине. Рабочие процессы rphost потребляют 500 МБ — 4 ГБ RAM каждый. SQL Server забирает всю доступную память под кеш данных. При 50+ пользователях они начинают мешать друг другу.
Разнесение на два сервера устраняет конкуренцию. Сервер приложений получает всю RAM и CPU под рабочие процессы. СУБД — всю RAM под буферный пул. Результат: стабильная работа без просадок при закрытии месяца или построении тяжёлых отчётов.
Отказоустойчивость
На одном сервере сбой любого компонента останавливает всех пользователей. Два сервера позволяют локализовать проблему. Упал rphost — СУБД продолжает работать, данные в безопасности. Проблема с SQL Server — сервер приложений диагностирует ошибку и сообщает пользователям, а не зависает.
Это не полная отказоустойчивость (для неё нужен кластер из трёх+ серверов с резервированием). Но уровень изоляции сбоев существенно выше, чем у односерверной конфигурации.
Масштабирование
Двухсерверная конфигурация — фундамент для дальнейшего роста. Добавить второй сервер приложений в кластер 1С, настроить резервное копирование на отдельную машину, вынести сервер лицензирования — всё это проще, когда инфраструктура уже разделена.
Архитектура кластера из двух серверов
Двухсерверный кластер 1С состоит из двух машин с чётким разделением ролей. Каждый сервер отвечает за свою часть работы.
| Роль | Сервер 1: Сервер приложений | Сервер 2: Сервер СУБД |
|---|---|---|
| Программное обеспечение | 1С:Предприятие 8.3 (сервер) | MS SQL Server / PostgreSQL |
| Процессы | ragent, rmngr, rphost | sqlservr / postgres |
| Порты | 1540, 1541, 1545, 1560-1591 | 1433 (SQL) / 5432 (PG) |
| Приоритет CPU | Высокая частота (3.0+ ГГц) | Многоядерность (16+ ядер) |
| Приоритет RAM | 32-64 ГБ (под rphost) | 64-128 ГБ (под буферный пул) |
| Диск | SSD (под srvinfo и кеш) | NVMe (под базы данных и tempdb) |
Как они взаимодействуют. Клиент 1С подключается к серверу 1 (порт 1540). Менеджер кластера rmngr назначает сеанс рабочему процессу rphost. rphost обрабатывает бизнес-логику и обращается к серверу 2 по сети (порт 1433 для SQL Server или 5432 для PostgreSQL) за данными. Все запросы к СУБД идут по локальной сети между серверами.
Критичный момент — сеть. Между серверами постоянный поток данных: запросы, результаты, временные таблицы. Минимум 1 Гбит/с, рекомендуем 10 Гбит/с для 100+ пользователей. Серверы должны быть в одной подсети с задержкой менее 1 мс. Не используйте Wi-Fi или VPN между серверами кластера.
Что потребуется
Перед началом настройки подготовьте оборудование, ПО и доступы. Всё должно быть под рукой до первого шага.
| Компонент | Требование | Примечание |
|---|---|---|
| Сервер 1 (приложения) | Xeon 3.0+ ГГц, 32-64 ГБ ECC RAM, SSD | Как выбрать процессор |
| Сервер 2 (СУБД) | Xeon 16+ ядер, 64-128 ГБ ECC RAM, NVMe | Требования к серверу |
| Сеть | 1 Гбит/с между серверами, одна подсеть | 10 Гбит/с для 100+ пользователей |
| ОС | Windows Server 2019/2022 на обоих | Или Astra Linux / Ubuntu 22.04+ |
| Платформа 1С | 1С:Предприятие 8.3.20+ (сервер) | Дистрибутив x86-64 |
| СУБД | MS SQL Server 2019+ или PostgreSQL 14+ | SQL vs PostgreSQL |
| Лицензия 1С | Серверная лицензия 1С:Предприятие | Цены на лицензии |
| Лицензия SQL | SQL Server Standard/Enterprise (если MS SQL) | Какой SQL выбрать |
| Доступы | Администратор на обоих серверах | Для установки служб и настройки файрвола |
Выбор процессора зависит от роли сервера. Для сервера приложений 1С важна тактовая частота — бизнес-логика 1С однопоточная. Для сервера СУБД — количество ядер и объём RAM. Наши тесты серверов по числу пользователей помогут подобрать конфигурацию.
Пошаговая настройка кластера из двух серверов
Семь шагов от чистых серверов до работающей двухсерверной конфигурации. Каждый шаг проверяется перед переходом к следующему.
Шаг 1. Установить SQL Server на сервер СУБД
Начинаем со второго сервера — СУБД. Логика простая: база данных должна быть готова до того, как сервер приложений попытается к ней подключиться.
Установка MS SQL Server. Запустите установщик, выберите Database Engine Services. Режим аутентификации — Mixed Mode (Windows + SQL Authentication). Создайте учётную запись sa с надёжным паролем. Задайте каталоги данных: файлы баз — на NVMe, tempdb — на отдельный NVMe-том если есть, бэкапы — на отдельный диск.
Настройка после установки. Откройте SQL Server Configuration Manager. Убедитесь, что TCP/IP включён и слушает порт 1433. Перезапустите службу SQL Server. Проверьте подключение локально: sqlcmd -S localhost -U sa -P "пароль".
Если выбрали PostgreSQL — установите пакет PostgreSQL 14+ и настройте postgresql.conf: listen_addresses = '*', max_connections = 200. В pg_hba.conf добавьте строку для подключения с сервера приложений. Подробности оптимизации — в статье оптимизация SQL Server для 1С.
Шаг 2. Установить сервер 1С на сервер приложений
На первом сервере устанавливаем платформу 1С:Предприятие 8.3 в режиме «Сервер».
Windows. Запустите setup.exe из дистрибутива. Выберите компоненты: «Сервер 1С:Предприятия», «Администрирование сервера 1С:Предприятия». Укажите учётную запись для службы — рекомендуем доменную учётку (если серверы в домене) или локальную с паролем. Порт агента — 1540 (по умолчанию).
Linux. Установите пакеты 1c-enterprise-server и 1c-enterprise-ws. Запустите службу: systemctl start srv1cv8-8.3.XX.YYYY. Проверьте статус: systemctl status srv1cv8-8.3.XX.YYYY.
После установки ragent автоматически создаёт кластер по умолчанию. Проверьте через утилиту rac:
rac cluster list
# Должен показать один кластер с host и port 1541
Если список пуст — служба не запустилась. Проверьте логи: Windows — Журнал событий → Приложение, Linux — journalctl -u srv1cv8-*. Типичная причина — агент сервера запускается и останавливается.
Шаг 3. Настроить сетевое подключение между серверами
Серверы должны видеть друг друга по сети и обмениваться данными без ограничений. Три вещи для проверки.
1. Разрешение имён. Сервер приложений должен резолвить имя сервера СУБД. Проверьте: ping server2 или nslookup server2. Если DNS не настроен — добавьте запись в C:\Windows\System32\drivers\etc\hosts (Windows) или /etc/hosts (Linux).
2. Файрвол. На сервере СУБД откройте порт 1433 (SQL Server) или 5432 (PostgreSQL) для входящих подключений с IP сервера приложений. На сервере приложений откройте порты 1540, 1541, 1545, 1560-1591 для клиентов 1С.
# Windows — открыть порт SQL Server на сервере СУБД
netsh advfirewall firewall add rule name="SQL Server" dir=in action=allow protocol=tcp localport=1433
# Windows — открыть порты 1С на сервере приложений
netsh advfirewall firewall add rule name="1C Server" dir=in action=allow protocol=tcp localport=1540-1541,1545,1560-1591
3. Проверка подключения. С сервера приложений проверьте доступ к СУБД:
# Проверка TCP-подключения к SQL Server
Test-NetConnection -ComputerName server2 -Port 1433
# Проверка подключения через sqlcmd
sqlcmd -S server2 -U sa -P "пароль" -Q "SELECT @@SERVERNAME"
Если подключение не проходит — проблема в сети или файрволе. Не переходите к следующему шагу, пока не убедитесь, что сервер приложений подключается к СУБД.
Шаг 4. Настроить кластер в консоли серверов 1С
Откройте «Администрирование серверов 1С» (mmc-оснастка) на сервере приложений или на рабочей станции администратора.
Подключение к серверу. Правый клик на «Центральные серверы 1С:Предприятия» → «Создать» → «Центральный сервер 1С:Предприятия». Укажите имя или IP сервера приложений (сервер 1) и порт 1540. Раскройте дерево — увидите кластер по умолчанию на порту 1541.
Параметры кластера. Правый клик на кластере → Свойства. Проверьте:
- Интервал перезапуска: 86400 (1 сутки) — rphost будут автоматически перезапускаться для очистки памяти
- Допустимый объём памяти: 80% от RAM сервера приложений (за вычетом ОС и RDP)
- Безопасный расход памяти за вызов: 100000 КБ (100 МБ) — защита от утечек
Шаг 5. Настроить рабочий сервер
В консоли администрирования раскройте кластер → «Рабочие серверы». Вы увидите один рабочий сервер — сам сервер приложений. Настройте его параметры.
Количество рабочих процессов. Зависит от числа пользователей. Ориентир из нашего опыта:
| Пользователей | rphost | RAM на rphost | Итого RAM (сервер 1С) |
|---|---|---|---|
| до 30 | 2-3 | 2-3 ГБ | 4-9 ГБ |
| 30-50 | 3-4 | 3-4 ГБ | 9-16 ГБ |
| 50-100 | 4-8 | 3-4 ГБ | 12-32 ГБ |
| 100+ | 8-12 | 3-4 ГБ | 24-48 ГБ |
Правый клик на рабочем сервере → Свойства. В разделе «Требования назначения функциональности» можно задать максимальное число рабочих процессов. Или через rac:
# Получить UUID кластера и сервера
rac cluster list
rac server --cluster= list
# Задать параметры рабочего сервера
rac server --cluster= update --server= --infobases-limit=8
Шаг 6. Создать информационную базу на удалённом SQL Server
Это ключевой шаг — связываем сервер приложений 1С с СУБД на втором сервере.
Через консоль администрирования. Правый клик на «Информационные базы» → «Создать» → «Информационная база». Заполните параметры:
| Параметр | Значение | Пояснение |
|---|---|---|
| Имя | MyBase1C | Имя ИБ в кластере |
| Сервер баз данных | server2 | Имя или IP сервера СУБД |
| Тип СУБД | MSSQLServer | Или PostgreSQL |
| База данных | MyBase1C | Имя базы в SQL Server |
| Пользователь БД | sa (или выделенный) | Учётная запись SQL |
| Пароль БД | *** | Пароль учётной записи SQL |
| Создать БД если не существует | Да | 1С создаст базу автоматически |
Через rac:
rac infobase --cluster= create \
--name="MyBase1C" \
--dbms=MSSQLServer \
--db-server="server2" \
--db-name="MyBase1C" \
--db-user="sa" \
--db-pwd="пароль" \
--create-database
Если получаете ошибку «Сервер баз данных не обнаружен» — вернитесь к шагу 3 и проверьте сетевое подключение. Типичные причины: файрвол блокирует порт, неправильное имя сервера, SQL Server не слушает TCP/IP.
Шаг 7. Проверить работоспособность
После создания информационной базы проведите три проверки.
1. Подключение клиента 1С. На рабочей станции запустите 1С:Предприятие. Добавьте базу: тип — «На сервере 1С:Предприятия», сервер — имя или IP сервера приложений (сервер 1), имя базы — MyBase1C. Подключитесь. Если база новая — загрузите конфигурацию через Конфигуратор.
2. Проверка через rac. На сервере приложений выполните:
# Список информационных баз — должна быть MyBase1C
rac infobase --cluster= summary list
# Рабочие процессы — должен быть хотя бы один rphost со статусом running
rac process --cluster= list
# Активные сеансы — после подключения клиента
rac session --cluster= list
3. Проверка нагрузки. Откройте Диспетчер задач на обоих серверах. На сервере приложений должен появиться процесс rphost. На сервере СУБД — нагрузка на sqlservr при работе пользователя в 1С. Если вся нагрузка идёт на один сервер — подключение к СУБД настроено неправильно.
Пошаговая инструкция: настройка кластера 1С из двух серверов
Рекомендации по оборудованию для двухсерверного кластера
Роли серверов разные — требования к железу тоже. Сервер приложений 1С нагружает CPU однопоточно (бизнес-логика 1С не параллелится). Сервер СУБД работает с параллельными запросами и большими объёмами данных в RAM.
Сервер приложений: частота важнее ядер
Для сервера приложений выбирайте процессор с максимальной тактовой частотой. 1С:Предприятие выполняет бизнес-логику в одном потоке — 8 ядер на 3.8 ГГц лучше, чем 24 ядра на 2.1 ГГц.
Наши тесты подтверждают это. Gold 5217 (8 ядер, 3.0/3.7 ГГц) показывает в тесте Гилёва результат сопоставимый с Gold 6242 (16 ядер, 2.8/3.9 ГГц), несмотря на вдвое меньшее число ядер. Частота решает.
Сервер СУБД: RAM и диски важнее частоты
SQL Server кеширует данные в буферном пуле. Чем больше RAM — тем реже обращение к диску. Для баз 20-50 ГБ рекомендуем 64-128 ГБ RAM, чтобы вся база помещалась в кеш.
Дисковая подсистема — NVMe. Разница между SSD и NVMe для СУБД существенна: наши тесты типов дисков показывают прирост до 2x в Random 4K чтении. tempdb — на отдельный NVMe-том, если есть возможность.
Процессор: многоядерный (16+ ядер). SQL Server параллелит тяжёлые запросы. Gold 6154 (18 ядер) или Gold 6254 (18 ядер) — хорошие кандидаты для сервера СУБД.
Типичные ошибки при настройке кластера из двух серверов
Пять ошибок, которые мы видим регулярно. Каждая приводит к простою или деградации производительности.
СУБД и сервер 1С на одном диске
Даже при разнесении на два сервера некоторые ставят SQL Server на один раздел с ОС. tempdb, файлы данных и логи транзакций конкурируют за IOPS с системными процессами. Решение: данные SQL на отдельный NVMe, tempdb — на второй NVMe, бэкапы — на HDD или сетевое хранилище.
Сервер СУБД не настроен на приём удалённых подключений
SQL Server по умолчанию слушает только Named Pipes. TCP/IP нужно включить отдельно в SQL Server Configuration Manager. Без этого сервер приложений не подключится, и вы получите ошибку «сервер баз данных не обнаружен». Проверяйте netstat -an | findstr 1433 — порт должен быть в состоянии LISTENING.
Файрвол блокирует порты
Windows Firewall включён по умолчанию. Если не открыть порты явно — серверы не смогут общаться. Частая ситуация: настроили всё, перезагрузили сервер, ничего не работает — потому что правила файрвола не сохранились или не применились. Проверяйте после каждой перезагрузки.
Медленная сеть между серверами
100 Мбит/с между серверами кластера — гарантия тормозов. Каждый запрос к СУБД — это сетевой вызов. При 50+ пользователях трафик между серверами достигает сотен мегабит. Минимум — 1 Гбит/с. Проверьте реальную скорость утилитой iperf3, а не только настройки сетевой карты.
Нет мониторинга и бэкапов
Двухсерверная конфигурация сложнее односерверной. Если один сервер упал ночью — утром 50+ человек не могут работать. Настройте мониторинг служб на обоих серверах и автоматическое резервное копирование. Проверяйте бэкапы восстановлением — не реже раза в месяц.
Вопросы и ответы
Нужна ли отдельная серверная лицензия 1С для каждого сервера в кластере?
Серверная лицензия 1С:Предприятие активируется на один кластер, а не на физический сервер. Если оба сервера входят в один кластер — достаточно одной серверной лицензии. Она устанавливается на сервер приложений (где работает ragent). На сервере СУБД лицензия 1С не нужна — там работает только SQL Server или PostgreSQL.
Какая скорость сети нужна между серверами кластера 1С?
Минимум 1 Гбит/с. Для 100+ пользователей рекомендуем 10 Гбит/с. Серверы должны быть в одной подсети с задержкой менее 1 мс. Не используйте VPN, Wi-Fi или каналы между площадками — задержки сети напрямую влияют на скорость работы каждого пользователя.
Можно ли использовать PostgreSQL вместо SQL Server в двухсерверном кластере?
Да. Процесс настройки аналогичен: PostgreSQL устанавливается на сервер СУБД, в postgresql.conf задаётся listen_addresses = ‘*’, в pg_hba.conf разрешается подключение с IP сервера приложений. При создании ИБ в кластере указывайте тип СУБД — PostgreSQL. Подробнее — в нашем сравнении SQL Server vs PostgreSQL для 1С.
Как добавить третий сервер в кластер 1С?
Установите платформу 1С на третий сервер. В консоли администрирования на основном сервере: правый клик на Рабочие серверы → Создать → укажите имя третьего сервера и порт 1540. После добавления rmngr начнёт распределять нагрузку на rphost всех рабочих серверов. Подробности — в нашей статье «Кластер серверов 1С 8.3: настройка и управление».
Что делать, если потеряна связь между серверами кластера?
При потере связи с СУБД пользователи получат ошибки и не смогут работать. Проверьте: сетевое подключение (ping), статус службы SQL Server на втором сервере, файрвол. Если связь кратковременно прерывалась — рабочие процессы rphost могут зависнуть. Перезапустите службу сервера 1С на сервере приложений. Подробнее — в статье «Потеряна связь с сервером 1С».
Какой процессор выбрать для сервера приложений 1С?
Для сервера приложений важна тактовая частота, а не количество ядер. Бизнес-логика 1С выполняется в одном потоке. Выбирайте процессоры с частотой 3.0+ ГГц: Gold 5217 (3.0/3.7 ГГц), Gold 5420+ (2.0/3.6 ГГц, но с высоким IPC). Наши тесты процессоров для 1С помогут определиться с конкретной моделью.
Обязательно ли разносить сервер 1С и СУБД на разные машины?
Нет. Для 30 и менее пользователей один сервер с хорошим процессором (3.0+ ГГц), 64 ГБ RAM и NVMe справится с обеими ролями. Разделение на два сервера оправдано при 50+ пользователях, тяжёлых конфигурациях (ERP, КА) или требованиях к отказоустойчивости. Подробности — в статье «Подбор сервера по числу пользователей».
Итог
Кластер 1С из двух серверов — следующий шаг после односерверной конфигурации. Сервер приложений отвечает за бизнес-логику, сервер СУБД — за хранение и обработку данных. Каждый получает все ресурсы машины без конкуренции.
Ключевые моменты: начните с СУБД, затем сервер приложений. Проверьте сеть до создания информационной базы. Выбирайте высокочастотные процессоры для сервера 1С и многоядерные с большим объёмом RAM — для СУБД. Настройте резервное копирование и мониторинг.
Если вам нужен полный обзор архитектуры кластера серверов 1С — читайте базовую статью по настройке кластера. Для продвинутых сценариев (три и более серверов, публикация через веб-сервер) — следите за обновлениями.
Нужна помощь с настройкой кластера из двух серверов или подбором оборудования? Оставьте заявку — подберём конфигурацию под ваше количество пользователей и бюджет.