Как правильно настроить порты для выделенного сервера лицензирования 1С и устранить ошибку LicenseService?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При масштабировании инфраструктуры «1С:Предприятия» часто возникает задача выноса сервиса выдачи лицензий на отдельную виртуальную машину или физический узел. В процессе настройки администраторы нередко сталкиваются с ситуацией, когда порты разнесены, параметры службы переопределены, но при попытке запуска клиентского приложения возникает ошибка: «Не найдено ни одного сервера с размещенным сервисом serviceName=LicenseService». Разберем детально, как устроено сетевое взаимодействие между узлами кластера, какие порты необходимо менять и как гарантированно запустить сервис лицензирования.

Анализ архитектуры: нужны ли разные порты для сервера приложений и сервера лицензирования

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

  1. Службы развернуты на разных серверах (хостах). Если основной сервер приложений и выделенный сервер лицензирования находятся на разных операционных системах со своими IP-адресами, разносить порты не требуется. Оба инстанса могут без конфликтов использовать стандартный порт агента 1540, порт кластера 1541 и диапазон рабочих процессов 1560:1591.
  2. Службы развернуты на одном сервере (хосте). Если вы запускаете две службы ragent на одной машине, порты агента, менеджера и диапазон рабочих процессов обязательно должны быть уникальными для каждого экземпляра. Попытка занять одинаковые порты приведет к ошибке запуска службы.

Однако если вы решили сместить порты (например, перевести агент на порт 2540), важно помнить: недостаточно изменить только порт агента кластера. Разберем по шагам, какие параметры запуска критически важны.

Полная настройка диапазона портов службы ragent

Частая ошибка заключается в том, что системный администратор меняет только порт агента -port 2540, забывая о главном менеджере кластера и рабочих процессах. В этом случае менеджер пытается стартовать на стандартном порту 1541, конфликтует с основным экземпляром или блокируется брандмауэром.

При смещении портов необходимо явно переопределить все три ключевых параметра строки запуска службы:

  1. Параметр -port — порт агента сервера (например, 2540 вместо стандартного 1540).
  2. Параметр -regport — порт главного менеджера кластера (например, 2541 вместо 1541).
  3. Параметр -range — диапазон портов для рабочих процессов (например, 2560:2591 вместо 1560:1591).

Убедимся, что все указанные порты открыты во входящих правилах межсетевого экрана (брандмауэра) на сервере лицензирования. Если порт менеджера 2541 недоступен, центральный кластер не сможет взаимодействовать с сервисом.

Включение сервера лицензирования в состав центрального кластера

Выясним причину возникновения ошибки LicenseService, связанную с топологией. Сервер лицензирования не должен существовать как обособленный, независимый кластер со своими базами. Он должен быть включен в уже существующий рабочий кластер 1С.

Разберем по шагам правильную процедуру объединения узлов:

  1. Запустим консоль администрирования серверов 1С («Администрирование серверов 1С Предприятия»).
  2. Откроем ветку нашего существующего центрального кластера и перейдем в раздел «Рабочие серверы».
  3. Создадим новый рабочий сервер: укажем его сетевое имя (DNS-имя или IP-адрес) и смещенные порты (порт агента 2540, порт кластера 2541, диапазон 2560:2591).
  4. Если на сервере лицензирования при установке автоматически создался собственный локальный кластер (ветка «Кластеры»), его необходимо удалить, чтобы он не захватывал ресурсы службы.

Настройка и обязательное применение требований назначения функциональности (ТНФ)

Даже если узел успешно добавлен в кластер, сервис лицензирования на нем не запустится сам по себе. Для управления ролями узлов используются требования назначения функциональности (ТНФ).

Рассмотрим порядок настройки правил ТНФ:

  1. В консоли администрирования перейдем в свойства сервера лицензирования в ветке «Требования назначения функциональности».
  2. Создадим требование: для объекта «Сервис лицензирования» установим значение правила «Назначать».
  3. Для остальных сервисов и для объекта «Любой объект требования» установим правило «Не назначать», чтобы освободить сервер от выполнения рабочих процессов и сессий баз данных.
  4. На основном сервере приложений для объекта «Сервис лицензирования» зададим правило «Не назначать».
  5. Критически важный шаг: кликнем правой кнопкой мыши по имени центрального кластера и выберем пункт меню «Применить требования назначения функциональности» (или выполним аналогичную команду через утилиту командной строки rac). Без явного применения правил сервис физически не стартует на выделенном узле, что и порождает ошибку отсутствия размещенного сервиса.

Проверка окружения: DNS, версии платформы и сетевая связность

Если ТНФ применены, но ошибка сохраняется, проанализируем базовые сетевые параметры и совместимость платформы:

  1. Разрешение сетевых имен (DNS). Все узлы кластера 1С и клиентские рабочие места должны безошибочно резолвить DNS-имена друг друга как в прямом, так и в обратном направлении (включая PTR-записи). Если имя сервера лицензирования не может быть разрешено в IP-адрес на основном сервере приложений, кластер не сможет передать запрос к LicenseService.
  2. Идентичность платформ. На основном сервере приложений и на сервере лицензирования должны быть установлены абсолютно одинаковые версии технологической платформы «1С:Предприятие» вплоть до номера билда, а также совпадать их разрядность (рекомендуется использовать x64 на обоих узлах).
  3. Очистка кэша кластера. При частых перенастройках портов и переназначении ТНФ в каталоге данных кластера (директория srvinfo) могут оставаться устаревшие метаданные размещения процессов. Для исправления ситуации остановим службы 1С на обоих серверах и очистим временные кэш-файлы контекста (каталоги с префиксом snccntx), после чего запустим службы заново.

Ограничения кластерного сервиса лицензирования

При проектировании такой схемы важно учитывать несколько правил работы платформы 1С:

  1. Кластерный LicenseService предназначен исключительно для раздачи программных лицензий (файлов с расширением .lic). Аппаратные ключи защиты HASP через механизмы ТНФ не транслируются — для них используется отдельный сетевой менеджер HASP License Manager.
  2. Если на выделенной машине через ТНФ отключены рабочие процессы и функционирует только сервис лицензирования, отдельная лицензия на сервер 1С («1С:Предприятие 8.3 КОРП/ПРОФ. Лицензия на сервер») для этой конкретной машины не требуется.
  3. Два сервера лицензирования внутри одного кластера не балансируют лицензии параллельно из единого пула: второй узел может выступать только в качестве «горячего» резерва при отказе основного.
← На главную