Решения: rmngr блокирует rac cluster insert (ClusterConfigService, порт 1541)
Дата: 2026-01-25
Версии 1С: 8.3.27.1786 (работает), 8.3.27.1989 (проблема)
Статус: Анализ выполнен, решения предложены
Краткая формулировка проблемы
rac server insertтребует ClusterConfigService, который размещается на рабочем сервере.- Первый рабочий сервер создаётся только вместе с кластером командой
rac cluster insert(не черезrac server insert). rac cluster insertтребует запущенный ragent (и доступ к RAS).- При запуске ragent автоматически стартует rmngr на порту 1541 (по документации 1С — «создаётся по умолчанию при первом запуске»).
- В результате порт 1541 занят rmngr, и при выполнении
rac cluster insert --port=1541возникает ошибка вида «Запуск рабочего процесса не возможен из-за конфликта IP портов» — создание кластера через rac блокируется.
Таким образом, возникает циклическая зависимость: чтобы создать кластер, нужен свободный 1541 и работающий ragent, но ragent сразу занимает 1541 через rmngr.
Документация 1С (релевантные фрагменты)
По руководству администратора 1С:
/regport— порт главного менеджера кластера (rmngr), создаваемого по умолчанию при первом запуске ragent. По умолчанию: 1541./range— диапазон портов для рабочего сервера, также создаваемого по умолчанию при первом запуске ragent (например, 1560:1591).
То есть автозапуск rmngr (и по сути «дефолтного» кластера/рабочего сервера) при старте ragent — это штатное поведение платформы, а не баг. Отключить создание rmngr при старте ragent документация не позволяет.
Опыт из вашей инфраструктуры
| Контейнер | Версия 1С | rac cluster insert |
Примечание |
|---|---|---|---|
| 1c-server | 8.3.27.1786 | ✅ Успешно (port 1541) | Кластер создан, worker + ClusterConfigService есть |
| 1c-server-new | 8.3.27.1989 | ❌ Конфликт портов | rmngr сразу на 1541, insert падает |
На 1786 последовательность «запуск сервисов → rac cluster insert» сработала. На 1989 — нет. Возможные причины: иное поведение платформы 1989 (например, более ранний/агрессивный старт rmngr или рабочих процессов) или отличия в порядке запуска/очистки конфигурации.
Предлагаемые решения
Решение 1: GUI консоль администрирования 1С (рекомендуется)
Идея: Обойти блокировку со стороны rac, создав кластер через графическую консоль. GUI может по-другому взаимодействовать с уже запущенным rmngr/ragent и избежать «конфликта портов» при создании кластера.
Шаги:
- Установить консоль администрирования 1С на клиенте (Windows/Linux).
- Подключиться к RAS (например,
10.218.14.10:1545для 1c-server-new). - Создать кластер через GUI: правый клик → «Создать» → «Кластер серверов»; хост
localhost, порт менеджера1541, имяcluster1. - Проверить:
rac cluster list localhost:1545, затемrac server list --cluster=<UUID> localhost:1545. - При необходимости зарегистрировать ИБ (
prod_dev) через GUI или скрипт.
Плюсы: Не требует правок systemd/ragent, описан в ваших отчётах как рабочий обходной путь.
Минусы: Нужен доступ по GUI к серверу (проброс 1545, VPN и т.п.).
Решение 2: Сначала проверить rac cluster list (кластер уже есть)
Идея: При работающих ragent и rmngr платформа могла уже «автоматически» завести кластер. В этом случае rac cluster insert не нужен — достаточно взять UUID из rac cluster list и использовать его для rac server list, регистрации ИБ и т.д.
Шаги:
- Убедиться, что работают
srv1cv8иras. - Выполнить:
bash rac cluster list localhost:1545 - Если вывод не пустой и есть реальный UUID (не
00000000-...): - использовать этот кластер для всех дальнейших операций;
- проверить
rac server list --cluster=<UUID> localhost:1545(должен быть worker с ClusterConfigService). - Если кластер не найден — переходить к другим решениям (GUI, другой порт, восстановление).
Плюсы: Никаких изменений конфигурации, одна команда.
Минусы: Помогает только если кластер уже зарегистрирован в RAS; на 1c-server-new при текущей конфигурации часто «кластер не создан».
Решение 3: Другой порт менеджера (regport 1542)
Идея: Заставить ragent использовать для rmngr порт 1542 вместо 1541. Тогда 1541 свободен, и теоретически rac cluster insert --port=1541 мог бы создавать кластер на 1541. Но: созданный таким образом кластер будет на 1541, а rmngr слушает 1542 — несоответствие. Поэтому логично создавать кластер на том же порту, что и rmngr — 1542. Однако тогда cluster insert будет пытаться занять 1542, который уже занят rmngr. В итоге просто смена regport на 1542 не снимает конфликт для rac cluster insert на том же хосте.
Практический смысл смены regport:
- Развести несколько экземпляров 1С на одной машине (каждый со своим regport/range).
- Использовать восстановление из бэкапа (Решение 4), где бэкап сделан с другой конфигурацией портов.
Как поменять regport (systemd):
# Для 8.3.27.1989, instance default
sudo systemctl edit srv1cv8-8.3.27.1989@default.service
В открывшемся редакторе добавить (или дополнить секцию [Service]):
[Service]
Environment=SRV1CV8_REGPORT=1542
Перезапустить сервис. Учесть, что данные кластера хранятся в каталогах вида reg_<port> (например, reg_1541); при смене порта используется уже reg_1542 (и т.п. по документации вашей версии).
Плюсы: Гибкость при нескольких инстансах.
Минусы: Не решает циклическую зависимость «rmngr уже на regport → cluster insert на том же port» на одном экземпляре.
Решение 4: Восстановление из рабочей резервной копии reg_1541
Идея: Взять каталог reg_1541 (и при необходимости srvinfo и др.) с машины, где кластер уже корректно создан и есть worker с ClusterConfigService (например, 1c-server, 8.3.27.1786), и перенести их на проблемный сервер (1c-server-new, 1989).
Важно: Совместимость данных между 1786 и 1989 не гарантируется. Имеет смысл делать бэкап перед переносом и быть готовым к откату.
Шаги:
- Остановить сервисы 1С на 1c-server-new:
bash lxc exec 1c-server-new -- systemctl stop srv1cv8-8.3.27.1989@default.service - Создать резервную копию текущего
reg_1541на 1c-server-new (если есть что сохранять). - Скопировать рабочий
reg_1541с 1c-server (1786) в 1c-server-new (например, черезlxc fileили общий каталог). - Разложить файлы в
/home/usr1cv8/.1cv8/1C/1cv8/reg_1541/на 1c-server-new, выставить владельцаusr1cv8. - Запустить сервисы на 1c-server-new.
- Проверить:
bash rac cluster list localhost:1545 rac server list --cluster=<UUID> localhost:1545
Если кластер виден и worker с ClusterConfigService есть, дальше можно регистрировать ИБ и пользоваться кластером. Если после переноса между разными версиями появятся ошибки — рассматривать GUI (Решение 1) или откат.
Плюсы: Можно быстро получить «уже настроенный» кластер без повторного rac cluster insert.
Минусы: Риск несовместимости версий; нужен рабочий донорский экземпляр.
Решение 5: Остановить srv1cv8 → очистить reg_1541/srvinfo → запустить только RAS → rac cluster insert → затем srv1cv8
Идея: Проверить, можно ли создать кластер через rac до запуска ragent (и, значит, до появления rmngr на 1541).
Ограничение: rac общается с RAS (порт 1545). Создание же кластера и размещение ClusterConfigService выполняются на стороне ragent (и rmngr). RAS выступает как «посредник» к ragent. Поэтому при остановленном ragent команда rac cluster insert либо не сможет создать кластер, либо создаст только запись в RAS без реального кластера на ragent. На практике для создания кластера ragent должен быть запущен — и тогда снова поднимается rmngr и конфликт.
Вывод: Вариант «только RAS, без ragent, потом cluster insert» не решает проблему. Имеет смысл не тратить на него время.
Решение 6: Использовать версию 8.3.27.1786 вместо 1989
Идея: На 1c-server (1786) rac cluster insert выполняется успешно при тех же портах. Если нет жёсткой необходимости именно в 1989, можно поднимать кластер на 1786.
Шаги:
- Разворачивать/использовать контейнер 1c-server с 8.3.27.1786.
- Создавать кластер и регистрировать ИБ через
racпо уже проверенной схеме (см.1c-rac-syntax-summary.md,1c-server-final-status.md).
Плюсы: Избежание известной проблемы с 1989.
Минусы: Нужна возможность работать на 1786.
Решение 7: Обращение в поддержку 1С
Идея: Официально зафиксировать проблему и получить рекомендации для 8.3.27.1989.
Что указать:
- Версия: 8.3.27.1989.
- Окружение: Linux, systemd, один экземпляр ragent с regport 1541.
- Факт: при запуске ragent автоматически стартует rmngr на 1541;
rac cluster insert --host=localhost --port=1541 --name=cluster1 localhost:1545даёт ошибку «Запуск рабочего процесса не возможен из-за конфликта IP портов». - Уточнить: рекомендуемый способ создания первого кластера и первого рабочего сервера (с ClusterConfigService) при таком поведении, в т.ч. предпочтительность GUI vs rac.
Сводная таблица решений
| Решение | Сложность | Надёжность | Когда применять |
|---|---|---|---|
| 1. GUI консоль | Низкая | Высокая | Всегда, если есть доступ по GUI |
2. rac cluster list |
Очень низкая | Зависит от конфигурации | Первая проверка перед любыми правками |
| 3. Другой regport | Средняя | Не снимает конфликт insert на том же хосте | Несколько инстансов, кастомная схема портов |
| 4. Восстановление reg_1541 | Средняя | Средняя (риск несовместимости версий) | Есть рабочий бэкап с 1c-server |
| 5. Только RAS + cluster insert | Низкая | Не работает | Не рекомендуется |
| 6. Версия 1786 | Низкая | Высокая (по вашему опыту) | Если допустимо использовать 1786 |
| 7. Поддержка 1С | Низкая | Зависит от ответа | Когда нужны официальные указания |
Рекомендуемый порядок действий
- Проверить
rac cluster list localhost:1545при работающих сервисах (Решение 2). Если кластер есть — использовать его. - Если кластера нет и создание через rac по-прежнему падает с «конфликт портов»:
- Предпочтительно: создать кластер через GUI (Решение 1), затем при необходимости зарегистрировать ИБ через rac/скрипты.
- Альтернатива: при наличии рабочего 1c-server (1786) — либо использовать его (Решение 6), либо аккуратно попробовать восстановление reg_1541 (Решение 4).
- При необходимости зафиксировать проблему и получить ориентир по 1989 — обращение в поддержку 1С (Решение 7).
Связанные документы
- Итоговый отчёт по проблеме создания кластера
- Проблема ClusterConfigService
- Продвинутые решения: когда GUI и восстановление не помогли — НОВОЕ: дополнительные подходы (полная очистка, остановка rmngr, другой порт)
- Итоговый синтаксис rac
- Таймауты и Broken pipe