Как использовать USB-ключ HASP для сервера 1С на Linux в виртуальной среде ESXi

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

При переходе с программных лицензий 1С на аппаратные USB-ключи в виртуализированной среде (например, на базе VMware ESXi) системные администраторы часто сталкиваются с проблемой: программные лицензии крайне чувствительны к изменению параметров «железа». Миграция виртуальной машины между хостами, изменение версии гипервизора или даже обновление прошивки процессора могут привести к аннулированию лицензии. В этой статье мы подробно разберем, как правильно организовать работу серверного ключа HASP в сети для Linux-сервера, чтобы обеспечить стабильность и мобильность инфраструктуры.

Анализ проблемы: почему HASP License Manager не видит серверный ключ

Первое, что нам необходимо усвоить: существует принципиальная разница в механизмах работы клиентских и серверных лицензий. Разберем эту ситуацию подробнее. Программа HASP License Manager (lmmanager) предназначена исключительно для раздачи клиентских лицензий по сети. Она позволяет пользователям запускать информационные базы, получая «билеты» на запуск с удаленного сервера.

Однако серверная лицензия (ключ на 32-битный или 64-битный сервер) работает иначе. Платформа 1С:Предприятие ожидает, что серверный ключ подключен локально к той машине, на которой запущен процесс сервера (ragent). Сервер 1С не умеет опрашивать сеть в поиске серверного ключа через менеджер лицензий. Именно поэтому стандартная установка ключа в другой компьютер с запущенным lmmanager не решит задачу для серверной части.

Решение №1: Использование технологий USB-over-IP

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

1. Аппаратные USB-хабы (например, Digi AnywhereUSB).
Это наиболее надежное и промышленное решение. Устройство подключается к сети Ethernet, а в его порты вставляются ключи HASP. На Linux-сервере устанавливается специальный драйвер, который создает виртуальные USB-порты. Для операционной системы это выглядит так, будто ключ вставлен непосредственно в материнскую плату. Мы рекомендуем этот вариант для высоконагруженных систем, так как он обеспечивает максимальную стабильность соединения.

2. Программные решения (VirtualHere, USB Network Gate).
Если покупка отдельного устройства нецелесообразна, проанализируем программные методы. Например, VirtualHere отлично зарекомендовал себя при работе с Linux. На машине, где физически стоит ключ (сервер-донор), запускается серверная часть, а на виртуальном сервере 1С — клиентская часть (сервис). Процесс настройки выглядит следующим образом:

  1. Устанавливаем клиентскую часть на Linux-сервер 1С.
  2. Настраиваем автоматическое монтирование устройства при старте системы.
  3. Проверяем наличие ключа командой lsusb.

Важно помнить, что серверный ключ монопольно захватывается одной ОС. Мы не можем «раздать» один физический ключ на два разных экземпляра сервера 1С одновременно.

Настройка драйверов на стороне Linux

После того как мы обеспечили физическую или виртуальную видимость ключа, нам нужно заставить Linux-версию 1С работать с ним. За взаимодействие с ключами HASP отвечает демон aksusbd. Проверим его состояние и конфигурацию.

Рассмотрим настройку файла nethasp.ini. Несмотря на то, что он больше относится к клиентским лицензиям, его правильная конфигурация помогает избежать задержек при старте сервера. Файл обычно располагается по пути /opt/1C/v8.3/x86_64/conf/nethasp.ini (путь может отличаться в зависимости от разрядности и версии).

Проанализируем ключевые параметры в секции [NH_TCPIP]:


[NH_COMMON]
NH_TCPIP = Enabled

[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.100 ; IP-адрес машины с клиентскими ключами
NH_USE_BROADCAST = Disabled    ; Отключаем широковещательный опрос для ускорения

Отключение NH_USE_BROADCAST крайне полезно в распределенных сетях, чтобы сервер не тратил ресурсы на поиск ключей в чужих сегментах сети.

Решение №2: Маскировка оборудования в VMware ESXi (EVC Mode)

Если вы все же решили оставить часть лицензий программными, или ваш USB-over-IP сервер зависит от специфики процессора, разберем механизм Enhanced vMotion Compatibility (EVC). В сообщении №8 темы упоминалось, что марка процессора «просвечивает» внутрь ВМ. Это основная причина слета программных лицензий при миграции на другой хост в кластере.

Как мы можем это исправить:

  1. Переведем хосты в кластере в единый режим EVC. Это создаст общий знаменатель инструкций CPU для всех серверов.
  2. В настройках виртуальной машины 1С обязательно отключим функции CPU Hot Add и Memory Hot Add. Динамическое добавление ресурсов 1С воспринимает как изменение конфигурации оборудования, что мгновенно блокирует программную лицензию.
  3. Зафиксируем UUID виртуальной машины. В файле конфигурации .vmx параметр uuid.action = "keep" позволит избежать вопросов гипервизора о том, была ли машина скопирована или перемещена.

Приоритет поиска лицензий в Linux

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

Если вы переходите с программных лицензий на USB, мы рекомендуем временно переместить старые файлы лицензий из папок:

Это гарантирует, что сервер сразу начнет использовать HASP-ключ, не пытаясь восстановить привязку к старым программным файлам.

Централизованный сервис лицензирования (8.3.11+)

Начиная с современных версий платформы, мы можем использовать специальный компонент — Сервис лицензирования. Он позволяет вынести управление лицензиями на отдельный узел кластера. Рассмотрим, чем это полезно:

Однако помните: этот сервис ориентирован на работу с программными лицензиями. Для аппаратных USB-ключей серверного типа связка «USB-over-IP + драйвер aksusbd» остается единственным надежным решением.

Итоги настройки

Для успешной работы сервера 1С на Linux с сетевым USB-ключом мы должны выполнить три условия:

  1. Обеспечить локальную видимость ключа в ОС Linux через проброс порта (USB-over-IP).
  2. Настроить демон aksusbd и убедиться, что устройство определено (lsusb).
  3. Исключить конфликты с программными лицензиями и оптимизировать nethasp.ini.

Такой подход позволяет сохранить все преимущества виртуализации (vMotion, Snapshot, High Availability), не нарушая условий лицензионного соглашения и обеспечивая стабильную работу системы 1С:Предприятие.

← На главную