Почему слетает программная лицензия 1С на виртуальном сервере после изменения диска и как это исправить

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

Рассмотрим распространенную и крайне неприятную проблему, с которой сталкиваются системные администраторы при работе с виртуализацией: внезапный сбой программных лицензий 1С:Предприятие после выполнения плановых работ по обслуживанию виртуальной машины в среде VMware, Hyper-V или VirtualBox.

Типичный сценарий: администратор увеличивает объем дискового пространства на виртуальном сервере (например, для хранения резервных копий или базы данных SQL), успешно расширяет раздел в операционной системе, но при следующей попытке пользователей подключиться к базе 1С выдает критическую ошибку: «Не найдена лицензия. Не обнаружен ключ защиты программы или полученная программная лицензия!».

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

Выясняем причину сбоя: почему 1С реагирует на изменение диска

Для начала проанализируем технологическую основу привязки программных лицензий 1С (файлов с расширением .lic). При первичной активации программного продукта система защиты 1С собирает информацию о ключевых аппаратных характеристиках компьютера и формирует уникальный цифровой отпечаток (хеш-сумму). Этот отпечаток записывается в файл лицензии.

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

В число ключевых параметров компьютера входят:

Давайте обратимся к логу ошибки программного лицензирования из нашего примера:


После получения лицензии удалены:
DISK_1: VMware Virtual disk SCSI Disk Device, SCSI\DISK&VEN_VMWARE&PROD_VIRTUAL_DISK\5&1982005&0&000100, 512, 63, 6527, 255, 1664385, 104856255, 53686402560
В текущей конфигурации компьютера имеются:
DISK_0: VMware Virtual disk SCSI Disk Device, SCSI\DISK&VEN_VMWARE&PROD_VIRTUAL_DISK\5&1982005&0&000200, 512, 63, 10443, 255, 2662965, 167766795, 85896599040

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

Важный нюанс: как видно из лога, в данном случае "слетела" не серверная лицензия, а именно клиентские многопользовательские лицензии (файлы 20190910115849.lic, 20200330103251.lic, 20210129085437.lic). Они находились на сервере приложений 1С и раздавались клиентам рабочими процессами.

Разбираем по шагам: как правильно реактивировать лицензии

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

Шаг 1. Подготовка регистрационных данных. Для успешной активации вам потребуются точно такие же сведения об организации, которые вводились при самой первой активации продукта (наименование, ИНН, КПП, адрес, ФИО ответственного лица). Любое несовпадение хотя бы в одном символе приведет к отказу Центра лицензирования 1С в выдаче новой лицензии.

Шаг 2. Запуск конфигуратора. Откройте конфигуратор любой базы данных от имени администратора. Перейдите в меню Сервис — Получение лицензии (или запустите базу в режиме предприятия, и при возникновении ошибки отсутствия лицензии нажмите кнопку "Получить лицензию").

Шаг 3. Ввод пин-кодов. Введите регистрационный номер вашего программного продукта и активный пин-код, который использовался ранее. На следующем шаге система потребует ввести неиспользованный резервный пин-код из вашего комплекта.

Шаг 4. Указание параметров установки. В процессе активации система спросит, куда именно необходимо установить лицензию. Крайне важно нажать кнопку «Дополнительно» и убедиться, что выбран правильный режим:

Шаг 5. Запрос резервных пин-кодов (при необходимости). Если все штатные резервные пин-коды из коробки уже израсходованы, не нужно паниковать или покупать новые лицензии. Вам необходимо отправить письмо на адрес Центра лицензирования 1С: lic@1c.ru. В теме письма укажите: «Запрос резервного пин-кода для рег. номера [ваш_номер]». В самом письме укажите данные вашей организации (ИНН, наименование) и подробно опишите причину изменения конфигурации: «В связи с производственной необходимостью было выполнено плановое расширение дискового пространства на виртуальном сервере приложений». Центр лицензирования оперативно пришлет вам новые пин-коды.

Методы предотвращения сбоев лицензий на виртуальных машинах

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

Способ 1. Архитектурное разделение виртуальных дисков

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

Выясним причину: почему мы меняем размер диска? Как правило, это связано с ростом базы данных SQL, накоплением логов транзакций или увеличением объема бэкапов. Чтобы эти операции не влияли на лицензии 1С, настроим дисковую подсистему следующим образом:

  1. Создаем один небольшой виртуальный диск C (System) размером, например, 60–80 ГБ. На нем будет установлена только операционная система Windows Server, платформа 1С:Предприятие и там же будут лежать файлы лицензий по умолчанию (каталог C:\ProgramData\1C\licenses). Параметры этого диска мы гарантированно никогда не будем изменять.
  2. Для баз данных SQL, логов, временных файлов tempdb и бэкапов создаем отдельные виртуальные диски (D, E, F), подключая их как независимые SCSI-устройства.
  3. При необходимости расширения дискового пространства мы безбоязненно увеличиваем размеры дисков D или E. Поскольку диск C остается абсолютно нетронутым, система защиты 1С не зафиксирует никаких изменений в ключевом системном накопителе, и лицензии продолжат работать в штатном режиме.

Способ 2. Привязка программных лицензий к аппаратному ключу защиты HASP

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

Этот метод идеально подходит для виртуальных машин, так как полностью нивелирует любые изменения процессоров, оперативной памяти, сетевых плат и дисков.

Проанализируем особенности этого метода:

Способ 3. Вынесение службы лицензирования в выделенный сервис (LicenseService)

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

Разберем этот процесс по шагам:

  1. Создаем отдельную, очень «легкую» виртуальную машину с минимальными ресурсами (1-2 ядра CPU, 2 ГБ RAM) и одним фиксированным системным диском. Назовем ее, например, SRV-LIC.
  2. Активируем все наши программные лицензии (как серверные, так и клиентские многопользовательские) только на этом сервере SRV-LIC.
  3. В консоли администрирования кластера серверов 1С регистрируем эту машину как дополнительный рабочий сервер кластера.
  4. Для основного рабочего сервера (где крутятся тяжелые рабочие процессы и базы данных) создаем требование назначения функциональности: «Сервис лицензирования — Не назначать».
  5. Для сервера SRV-LIC создаем требование: «Сервис лицензирования — Назначать», а для всех остальных сервисов (сервис баз данных, сервис транзакций и т. д.) устанавливаем запрет на исполнение на этом сервере.

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

Способ 4. Соблюдение правил администрирования в VMware vSphere / ESXi

Если ваши сервера 1С развернуты в виртуальной среде под управлением VMware vCenter, системным администраторам необходимо строго соблюдать два критически важных правила:

1. Использование технологии EVC (Enhanced vMotion Compatibility). При миграции виртуальной машины с сервером 1С между физическими хостами в кластере лицензия может мгновенно заблокироваться, если на хостах установлены процессоры разных поколений или моделей. Включение режима EVC на уровне кластера VMware принудительно приводит инструкции процессоров всех хостов к единому базовому уровню, что предотвращает ложное срабатывание защиты 1С при миграции vMotion.

2. Правильный выбор действия при перемещении ВМ. Если вы импортируете виртуальную машину из шаблона, восстанавливаете ее из бэкапа (например, через Veeam Backup) или переносите на другое хранилище, при первом запуске гипервизор VMware обязательно задаст вопрос в панели управления: «I moved it» (Я перенес ее) или «I copied it» (Я скопировал ее).

Всегда выбирайте вариант «I moved it»! В этом случае гипервизор сохранит оригинальный уникальный идентификатор виртуальной машины (UUID) и физические MAC-адреса виртуальных сетевых адаптеров. Выбор варианта «I copied it» сгенерирует новые UUID и MAC-адрес, что приведет к немедленному и полному аннулированию всех активированных на этой машине лицензий 1С.

← На главную