Почему слетают программные лицензии 1С на виртуальных серверах и как это исправить?

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

Проблема внезапной деактивации программных лицензий 1С в виртуальной среде — одна из самых распространенных и неприятных задач для системного администратора. Ситуация обычно выглядит так: настроен отказоустойчивый кластер серверов, настроена миграция виртуальных машин (vMotion или Live Migration), но при любом сбое или переезде сервера 1С перестает запускаться, требуя повторной активации. Разберем подробно, почему это происходит и как настроить систему так, чтобы лицензии оставались стабильными.

Выясним причину: почему 1С считает, что компьютер изменился?

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

Когда происходит миграция в кластере, 1С видит изменение хотя бы одного из этих параметров. В этот момент файлы лицензий в директории C:\ProgramData\1C\licenses\ (для Windows) или /var/1C/licenses/ (для Linux) помечаются как недействительные. Платформа записывает внутрь файла информацию о несоответствии, и простое восстановление файла из бэкапа после «возвращения» на старый хост не всегда помогает, так как 1С проверяет целостность и состояние лицензии в реальном времени.

Решение 1: Создание выделенного сервера лицензирования

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

Рассмотрим по шагам:

  1. Создадим небольшую виртуальную машину с минимальными ресурсами (1-2 ядра, 2-4 ГБ ОЗУ). Эта машина будет выполнять роль сервера лицензирования.
  2. На этой машине установим только компоненты сервера 1С.
  3. В настройках гипервизора жестко зафиксируем её на одном физическом хосте (правила Affinity) и установим Static MAC.
  4. Активируем все программные лицензии именно на этой машине.
  5. В консоли администрирования основного кластера 1С добавим этот сервер как дополнительный рабочий сервер.
  6. Настроим функциональные опции: для основного рабочего сервера (где лежат базы) отключим функциональность «Сервис лицензирования», а для нашей новой маленькой машины — оставим её включенной, отключив при этом «Сервис сеансов» и «Сервис работы с базой данных».

В такой конфигурации основные серверы приложений могут мигрировать сколько угодно — они будут обращаться за лицензиями к стабильному серверу лицензирования, который никуда не переезжает.

Решение 2: Фиксация параметров виртуальной машины (Best Practice)

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

Выполним следующие настройки:

Решение 3: Привязка программной лицензии к аппаратному ключу HASP

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

Если у вас есть физический USB-ключ HASP (даже старый или на 1 пользователя), вы можете пробросить его в виртуальную машину. При активации программной лицензии (вводе пин-кода) выберите вариант привязки не к параметрам компьютера, а к серийному номеру аппаратного ключа.

Преимущества этого метода:

Решение 4: Работа с резервными пин-кодами и автоматизация

Проанализируем ситуацию, когда лицензия всё же «слетела». Как правило, в комплекте идет 3 пин-кода (основной и два резервных). Выясним, как минимизировать простой:

Не ждите момента падения сервера. Если вы планируете масштабные изменения в кластере, заранее запросите дополнительные пин-коды в Центре Лицензирования 1С (lic@1c.ru). Опишите, что используете виртуализацию, и вам предоставят запасные коды.

Для продвинутых администраторов разберем возможность использования утилиты ring, которая входит в состав платформы (начиная с версии 8.3.9). С её помощью можно автоматизировать процесс активации лицензий через командную строку. Рассмотрим пример структуры команды:


ring license activate --pin <ВашПинКод> --owner <ДанныеВладельца> --path <ПутьКЛицензии>

Важный нюанс: восстановление из бэкапа файлов *.lic сработает только в том случае, если виртуальная машина вернулась на хост с абсолютно идентичными параметрами, и файлы еще не были перезаписаны платформой как «испорченные». Если файлы уже помечены как невалидные, их придется удалять и проводить процедуру получения лицензии заново, используя резервный пин-код.

Подведем итог: наиболее надежным решением для кластера является комбинация фиксации MAC-адресов и настройки режима совместимости процессоров (EVC), либо выделение минималистичного сервера лицензирования, закрепленного за конкретным хостом.

← На главную