Как предотвратить "перетекание" программных лицензий 1С между разными службами сервера на одном компьютере?

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

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

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

Почему программные лицензии 1С "перетекают" между службами сервера?

Чтобы понять причину, нам нужно рассмотреть, как работают программные лицензии "1С:Предприятие". В отличие от аппаратных ключей HASP, программная лицензия привязывается не к конкретной службе или процессу ragent.exe, а к параметрам операционной системы и аппаратного обеспечения компьютера, на котором происходит активация. Это включает в себя такие данные, как MAC-адрес сетевой карты, идентификатор процессора, серийный номер жесткого диска, параметры операционной системы и другие уникальные характеристики.

Когда вы активируете программную лицензию, например, через утилиту или непосредственно из конфигуратора, вы действительно можете указать порт сервера 1С. Однако это указание служит лишь для того, чтобы утилита активации знала, к какому экземпляру агента сервера (ragent.exe) обратиться для выполнения процедуры активации. После успешной активации лицензионный файл (обычно с расширением .lic) сохраняется в общедоступный каталог на этом компьютере. На операционных системах Windows, как правило, это путь вида C:\ProgramData\1C\1Cv8\conf\ или в каталог установки платформы.

Суть проблемы заключается в следующем: любой экземпляр службы сервера 1С (ragent.exe, rphost.exe), запущенный на этом же компьютере, при старте или при необходимости получения лицензии, будет сканировать стандартные каталоги для поиска доступных файлов лицензий. Поскольку лицензионные файлы находятся в общедоступном месте и привязаны к "железу" машины, а не к конкретной службе, все запущенные на данной машине серверы 1С обнаруживают и используют один и тот же пул лицензий. Механизм изоляции лицензий между различными службами на одном и том же компьютере для программных лицензий в платформе "1С:Предприятие" не предусмотрен.

Разбор распространенных заблуждений и неработающих подходов

В попытке решить проблему "перетекания" лицензий, часто возникают вопросы о различных настройках и файлах. Давайте проанализируем некоторые из них.

Не помогает: Указание порта при активации

Как мы уже выяснили, указание порта во время активации лицензии 1С служит исключительно для того, чтобы утилита активации могла установить связь с конкретным агентом сервера ragent.exe. Это необходимо для начала процедуры получения параметров оборудования и записи нового файла лицензии. Сам по себе этот порт никак не является параметром привязки лицензии к конкретной службе. После активации файл .lic сохраняется в общее хранилище, и любой другой сервер 1С на той же машине будет иметь к нему доступ.

Не помогает: Файл nethasp.ini

В сообщении 1 верно подмечено, что файл nethasp.ini предназначен исключительно для работы с аппаратными ключами защиты HASP. Этот файл используется для настройки того, как клиентские приложения или сервер 1С ищут аппаратные ключи HASP (например, по сети, на определенном IP-адресе, локально). Он абсолютно не имеет отношения к поиску, использованию или разделению программных лицензий (файлов .lic). Поэтому любые попытки настройки nethasp.ini для решения проблемы с программными лицензиями будут безрезультатны.

Не влияет: Настройка "Выдача лицензий сервером 1С"

В сообщении 5 упоминается возможность снять галку "Выдача лицензий сервером 1С" в свойствах информационной базы. Давайте разберем, что это за настройка и почему она не решает нашу проблему. Эта опция относится к клиентским лицензиям, которые сервер 1С выдает пользователям, подключающимся к информационным базам, обслуживаемым этим сервером. Она определяет, будет ли сервер приложений 1С выступать в роли "раздатчика" клиентских лицензий из своего пула пользователям, если те не смогли получить лицензию самостоятельно (например, с локального HASP-ключа или программной лицензии на клиентской машине). Эта настройка никак не влияет на то, какую серверную лицензию использует сам сервер приложений 1С для своей работы, а также не решает проблему "перетекания" программных лицензий между разными службами 1С на одном физическом сервере. Если галка снята, то пользователи должны будут получать клиентские лицензии другими способами (с локальных ключей или с выделенного сервера лицензирования).

Не влияет: Флаг "Установка на сервер" при активации клиентской лицензии

В сообщении 6 затрагивается флаг "Установка на сервер". Этот флаг используется при активации многопользовательских клиентских программных лицензий (например, на 5 или 10 пользователей) и указывает, что лицензия будет использоваться сервером 1С для обслуживания сессий пользователей, подключающихся к нему (например, через терминальные сессии, веб-клиент или тонкий клиент без локальной лицензии). Активация такой лицензии на сервере позволяет ему выдавать сессии согласно количеству приобретенных рабочих мест. Этот флаг меняет только механизм подсчета используемых сессий для многопользовательской лицензии, но, как и предыдущие пункты, не предоставляет механизма изоляции лицензий между разными экземплярами служб сервера 1С на одном и том же компьютере.

Рекомендуемое решение: Выделенный сервер лицензирования 1С

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

Давайте подробно рассмотрим, как это работает и какие преимущества дает.

Концепция выделенного сервера лицензирования

Выделенный сервер лицензирования – это один из рабочих серверов в кластере "1С:Предприятие", которому назначается исключительно роль "Сервис лицензирования". Все программные лицензии (как клиентские, так и серверные) активируются именно на этом выделенном сервере. Другие рабочие серверы 1С (которые обслуживают информационные базы) затем обращаются к этому централизованному серверу для получения необходимых лицензий по сети.

Преимущества использования выделенного сервера лицензирования

  1. Централизованное управление: Все программные лицензии активируются и хранятся в одном месте. Это значительно упрощает их учет, мониторинг и обслуживание. Мы получаем единую точку для управления всеми лицензионными активациями.
  2. Эффективное использование лицензий: Лицензии распределяются между всеми рабочими серверами и кластерами 1С по мере необходимости. Это исключает ситуации, когда на одном сервере лицензии заканчиваются или простаивают, а на другом их избыток. Пул лицензий становится общим и динамически распределяемым.
  3. Высокая стабильность и отказоустойчивость: Сервер лицензирования можно развернуть на отдельной виртуальной или физической машине с минимальными, но стабильными характеристиками. Поскольку программные лицензии привязаны к "железу" активации, размещение их на выделенном, редко изменяющемся сервере защищает от "слета" лицензий при частых изменениях конфигурации основных рабочих серверов 1С (например, при масштабировании, обновлении оборудования или миграции виртуальных машин).
  4. Поддержка гетерогенных сред: Один выделенный сервер лицензирования способен раздавать лицензии на несколько кластеров 1С, работающих на разных версиях платформы (например, 8.3.18 и 8.3.22) или даже на разных операционных системах, при условии сетевой доступности.
  5. Изоляция лицензий: Именно этот подход гарантирует, что различные экземпляры служб сервера 1С будут получать лицензии корректно, без "перетекания", так как они будут запрашивать их у централизованного сервиса, а не искать локально.

Реализация выделенного сервера лицензирования по шагам

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

  1. Выбор сервера для роли лицензирования:

    Нам необходимо выбрать физический или виртуальный сервер, который будет выполнять роль сервиса лицензирования. Крайне важно, чтобы аппаратная конфигурация этого сервера была максимально стабильной и не менялась в дальнейшем, чтобы избежать необходимости повторной активации лицензий. Идеальный вариант — отдельная виртуальная машина с фиксированным набором виртуального оборудования.

  2. Установка платформы 1С:Предприятие на выбранный сервер:

    Убедимся, что на выбранном сервере установлена необходимая версия платформы "1С:Предприятие", включающая компоненты сервера 1С. Обычно достаточно установить полный дистрибутив сервера 1С.

  3. Создание кластера (при необходимости) и добавление рабочего сервера:

    Если у вас уже есть кластер, просто добавьте выбранный сервер в него. Если кластера нет, создайте новый кластер и добавьте в него этот сервер.

  4. Назначение роли "Сервис лицензирования":

    Самый важный шаг – это конфигурирование роли рабочего сервера в консоли администрирования кластера 1С. Мы разберем его подробнее:

    1. Откроем консоль администрирования кластера серверов 1С.
    2. Перейдем в список рабочих серверов (обычно это раздел "Рабочие серверы").
    3. Выберем сервер, который мы хотим назначить сервисом лицензирования, и откроем его свойства.
    4. В окне свойств рабочего сервера найдем секцию "Требования назначения функциональности".
    5. Критически важно: В этом разделе нам нужно снять все галки со всех ролей, таких как "Рабочие процессы", "Фоновые задания", "Менеджер кластера", "Центральный сервер" и т.д.
    6. Оставим установленной галку ТОЛЬКО напротив пункта "Сервис лицензирования".
    7. Применим изменения. Теперь этот рабочий сервер будет выполнять исключительно функцию предоставления лицензий.
    8. Обратите внимание: если сервер будет выполнять только функцию "Сервис лицензирования", то ему самому не требуется отдельная серверная лицензия.

    Пример настройки функциональности:

    
    // В консоли администрирования кластера 1С:
    // Кластер -> Рабочие сервера -> [Имя_Вашего_Сервера] -> Свойства
    // Раздел "Требования назначения функциональности":
    //   [ ] Рабочие процессы
    //   [ ] Фоновые задания
    //   [ ] Менеджер кластера
    //   [ ] Центральный сервер
    //   [X] Сервис лицензирования
    
  5. Активация программных лицензий на выделенном сервере:

    Все имеющиеся у вас программные лицензии (как клиентские, так и серверные) следует активировать именно на этом выделенном сервере. Это можно сделать через конфигуратор (в режиме запуска, выбрав пункт "Получение лицензии"), либо с помощью утилиты lichelper.exe, указывая IP-адрес и порт агента сервера лицензирования.

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

  6. Настройка других кластеров/серверов для использования сервиса лицензирования:

    Другие кластеры 1С, которые работают на ваших основных серверах приложений, автоматически обнаружат этот выделенный сервис лицензирования в своей сети и будут запрашивать лицензии у него. Никаких дополнительных специфических настроек (вроде указания IP-адреса сервера лицензирования в каждом клиенте или сервере) обычно не требуется, так как механизм поиска лицензий реализован на уровне платформы.

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

← На главную