Проблема «слета» программных лицензий 1С на виртуальных машинах (VM) — одна из самых досадных задач для системного администратора. Ситуация осложняется тем, что внешне конфигурация сервера не меняется: никто не добавлял память, не расширял диски и не перемещал машину между хостами, однако после обычной перезагрузки система защиты 1С сообщает об изменении параметров оборудования. Разберем детально, почему это происходит в среде VMware ESXi и как стабилизировать систему раз и навсегда.
Программная лицензия 1С:Предприятие 8 жестко привязывается к ключевым параметрам сервера. В виртуальной среде VMware эти параметры могут меняться динамически без прямого участия администратора. 1С опрашивает оборудование через BIOS виртуальной машины и драйверы операционной системы. Проанализируем, какие именно изменения вызывают аннулирование лицензии:
Рассмотрим пошагово методы фиксации этих параметров.
Для начала нам необходимо гарантировать, что внутренние идентификаторы виртуальной машины останутся неизменными при любых манипуляциях в консоли vSphere. Рассмотрим настройку файла конфигурации .vmx. Выясним причину, по которой VMware может сбросить идентификаторы: по умолчанию система настроена на гибкость, а нам нужна жесткая стабильность.
Откроем настройки виртуальной машины (Edit Settings) и перейдем в раздел VM Options -> Advanced -> Edit Configuration. Нам необходимо убедиться в наличии и правильности следующих параметров:
uuid.action = "keep"
uuid.bios = "56 4d 22 be 34 3f 00 00-00 00 00 00 00 00 00 00"
Параметр uuid.action = "keep" принудительно заставляет гипервизор сохранять текущий UUID BIOS при перемещении или копировании папки с машиной, не задавая лишних вопросов пользователю. Это первый и важнейший рубеж защиты нашей лицензии.
Сетевой интерфейс является для 1С одним из «якорных» устройств. По умолчанию VMware часто назначает MAC-адрес в режиме Automatic. Проанализируем ситуацию: при пересоздании адаптера или изменении настроек сети адрес может измениться, что приведет к слету лицензии. Рассмотрим, как это исправить:
Важный момент: если у сервера несколько сетевых адаптеров, лицензия привязывается к ним всем. Отключение или удаление даже неиспользуемого «виртуального» хвоста приведет к ошибке лицензирования.
В тексте ошибки часто можно увидеть, что 1С «видит» удаление старых дисков и добавление новых, хотя физически файлы vmdk остались прежними. Разберем, как стабилизировать представление дисков:
Во-первых, рекомендуется использовать диски типа Thick Provision Eager Zeroed (толстые диски с немедленным обнулением) для системного раздела. «Тонкие» диски (Thin Provision) могут изменять свои метаданные при расширении на физическом хранилище, что иногда некорректно интерпретируется драйверами ОС как изменение геометрии диска.
Во-вторых, обратим внимание на виртуальные контроллеры. Если у вас несколько дисков, распределите их по портам строго последовательно (0:0, 0:1, 0:2) на одном контроллере. Посмотрим на пример: если системный диск находится на SCSI 0:0, а диск с данными на SCSI 0:3, при определенных обновлениях VMware Tools порядок инициализации может измениться. Старайтесь держать их «плотно» друг к другу.
Функции CPU Hot Add и Memory Hot Plug позволяют добавлять ресурсы без выключения сервера. Однако само наличие этой возможности модифицирует ACPI-таблицы виртуального BIOS. Проанализируем ситуацию: 1С воспринимает это как изменение характеристик материнской платы. Выясним решение:
Зайдем в Edit Settings -> VM Options -> RAM/CPU Hot Plug и убедимся, что галочки Enable сняты. Если вам действительно нужно добавить память, лучше выключить сервер, изменить параметры и заново активировать лицензию один раз, чем рисковать внезапным слетом в рабочее время.
Обновление VMware Tools обновляет драйверы виртуальных устройств (например, pvscsi или vmxnet3). Система защиты 1С фиксирует версию драйвера. Если вы обновили «Тулзы», будьте готовы к тому, что лицензию придется активировать повторно.
Также не рекомендуется обновлять Hardware Compatibility (версию оборудования ВМ) без веской причины. Прыжок с версии 11 на 15 меняет чипсет виртуальной машины, что гарантированно приведет к недействительности лицензии.
Если ваша инфраструктура подразумевает частые миграции (vMotion), использование кластеров и динамическое управление ресурсами, классическая привязка к параметрам ВМ становится «бомбой замедленного действия». В платформе 1С:Предприятие (начиная с 8.3.5) предусмотрено штатное решение — Сервер лицензирования.
Разберем этот механизм подробнее:
В этом случае рабочие серверы 1С могут мигрировать, менять объем памяти или процессоров — они просто обращаются по сети к стабильному серверу за лицензией. Сама лицензия при этом «не видит» изменений на рабочих узлах.
Рассмотрим еще один радикальный, но эффективный способ. Если программные лицензии доставляют слишком много хлопот в вашей виртуальной среде, рассмотрите переход на USB-ключи (HASP).
Для работы с ними в VMware существует механизм USB Passthrough. Вы вставляете ключ в физический хост и «пробрасываете» его в конкретную виртуальную машину. Однако более надежным методом является использование сетевых USB-концентраторов (например, AnywhereUSB). Это позволяет не привязывать ключ к конкретному физическому серверу и сохраняет возможность vMotion для виртуальной машины с 1С.
Резюме: для стабильной работы программной лицензии 1С на VMware необходимо в первую очередь зафиксировать uuid.bios, установить статический MAC-адрес и отключить функции Hot-Add. Если же инфраструктура слишком динамична, единственным надежным выходом будет вынос лицензий на отдельный сервер лицензирования или использование аппаратных ключей защиты.