Как эффективно использовать несколько сетевых аппаратных ключей 1С?

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

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

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

Ограничения использования аппаратных ключей 1С одной серии на одном сервере

Прежде всего, давайте разберемся с ключевым ограничением, которое часто становится источником проблем. Сервер 1С:Предприятие, или даже расширение веб-сервера, при поиске клиентских лицензий по сети с помощью HASP License Manager (далее HASP LM), может получить лицензии только от одного аппаратного ключа защиты одной серии. Это означает, что если у нас есть, например, два сетевых ключа серии ORGL8 (скажем, на 100 и 50 пользователей), сервер 1С выберет один из них (произвольно) и будет использовать только его. При исчерпании лицензий в этом выбранном ключе, поиск других сетевых ключей той же серии выполняться не будет.

Однако существует важное исключение: сервер 1С может использовать локально установленный ключ и один сетевой ключ, даже если они принадлежат к одной серии. То есть, если один ключ ORGL8 (например, на 100 пользователей) физически установлен в сервер 1С, а другой ключ ORGL8 (например, на 50 пользователей) доступен по сети через HASP LM, то этот сервер 1С сможет объединить лицензии из обоих ключей, получив в общей сложности 150 лицензий. Это максимум, что мы можем "выжать" из ключей одной серии для одного сервера 1С при смешанной локально-сетевой схеме.

Для понимания полной картины, важно знать, что существуют разные серии многопользовательских клиентских ключей 1С:

  1. ORGL8: на 5, 10, 20, 50, 100 рабочих мест.
  2. ORG8A: на 300 рабочих мест.
  3. ORG8B: на 500 рабочих мест.

Сервер 1С осуществляет поиск лицензий в определенном порядке: сначала он ищет доступные локальные ключи всех серий. Затем, если локальных лицензий недостаточно, он приступает к поиску сетевых ключей. При поиске сетевых ключей, если обнаружено несколько ключей серии ORGL8, сервер 1С выберет один из них произвольно. После этого, если его лицензии будут исчерпаны, будет производиться поиск одного ключа ORG8A, затем одного ORG8B. Важно, что повторный поиск других ключей серии ORGL8 после выбора первого уже выполняться не будет.

Теоретически, согласно документации, один сервер 1С может использовать до 1800 аппаратных лицензий. Этот лимит достигается комбинацией локальных ключей разных серий (например, 100+300+500) и сетевых ключей разных серий (например, еще 100+300+500). То есть, локальные и сетевые лицензии разных серий считаются отдельно, и их можно суммировать. Для вашего случая, где все ключи относятся к серии ORGL8, это означает, что один сервер 1С сможет получить максимум лицензий от одного локального ключа ORGL8 и одного сетевого ключа ORGL8, что в вашем случае составит максимум 200 лицензий (100 локально + 100 по сети, если эти ключи по 100). Именно поэтому в вашей ситуации использование более 170 лицензий с одного сервера может быть результатом некорректного или специфического распределения лицензий, возможно, часть клиентов получают лицензии напрямую от HASP LM, минуя сервер 1С.

Вариант 1: Переход на программные лицензии 1С

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

Преимущества программных лицензий

Давайте рассмотрим, почему программные лицензии могут быть предпочтительнее аппаратных:

  1. Простота установки и использования: Программные лицензии устанавливаются через активацию пин-кода и не требуют наличия свободных USB-портов. Это особенно удобно для виртуальных сред, где проброс USB-ключей может быть затруднен или нестабилен.
  2. Меньшая требовательность к системе: Программные лицензии, как правило, менее требовательны к производительности системы по сравнению с аппаратными ключами, которые требуют работы HASP LM и могут создавать дополнительную нагрузку.
  3. Экономическая выгода: Часто программные лицензии стоят на 15-20% дешевле аналогичных аппаратных. Это может быть значимым фактором при большом количестве пользователей.
  4. Централизованное управление: Программные лицензии позволяют централизованно управлять выдачей лицензий, что упрощает администрирование и мониторинг.
  5. Возможность объединения (склеивания): В отличие от аппаратных ключей, которые не могут быть просто "сложены" для увеличения общего числа лицензий, программные лицензии легко объединяются. Например, две программные лицензии по 100 пользователей могут быть активированы как одна лицензия на 200 пользователей на одном сервере.

Недостатки программных лицензий

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

  1. Привязка к оборудованию: Программные лицензии жестко привязываются к параметрам компьютера или сервера, на котором они были активированы. При существенном изменении ключевых параметров (например, замена материнской платы, увеличение оперативной памяти, изменение сетевого имени, переустановка ОС) лицензия может стать недействительной.
  2. Повторная активация: В случае изменения оборудования потребуется повторная активация лицензии с использованием резервного пин-кода. Комплект поставки обычно включает несколько резервных пин-кодов (часто 2-3).
  3. Исчерпание резервных пин-кодов: Если все резервные пин-коды исчерпаны, потребуется бесплатно запросить дополнительный пин-код в Центре лицензирования 1С, что занимает некоторое время.

Сервис лицензирования 1С:Предприятия (для программных лицензий)

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

Рассмотрим ключевые особенности сервиса лицензирования:

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

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

Вариант 2: Оптимизация использования существующих аппаратных ключей

Если переход на программные лицензии по каким-то причинам невозможен или нежелателен, мы можем рассмотреть варианты оптимизации работы с текущими аппаратными ключами HASP. Для этого нам потребуется более глубоко понять, как сервер 1С и клиенты ищут и используют лицензии.

Комбинация локальных и сетевых ключей

Как мы уже выяснили, сервер 1С может использовать один локально установленный ключ ORGL8 и один сетевой ключ ORGL8. Это дает нам возможность на одном активно используемом сервере 1С объединить лицензии из двух ключей одной серии. Например, если у вас есть ключ на 100 пользователей и еще один на 50 пользователей, то, установив ключ на 100 пользователей локально на сервер 1С, а ключ на 50 пользователей сделав доступным по сети (через HASP LM на отдельном ПК), мы получим 150 лицензий на этом сервере. Если есть еще один ключ на 20 пользователей, то сервер 1С (при условии, что все они ORGL8) не сможет использовать два сетевых ключа ORGL8 (50 и 20) одновременно, а выберет только один из них (например, 50). Именно из-за этого ограничения вы, вероятно, не можете использовать более 170 лицензий (100 локально + 50 или 20 сетевой, а 170 получается, если к 100+50 добавились 20 клиентских напрямую).

Исходя из этого, можем рассмотреть следующие шаги:

  1. Идентификация ключей: Определите, какие ключи у вас есть, их серии (ORGL8, ORG8A, ORG8B) и номинал.
  2. Локальная установка: Установите самый большой ключ ORGL8 (например, на 100 пользователей) локально на ваш основной сервер 1С (например, Бух или Упр).
  3. Сетевые ключи: Оставьте остальные ключи (50 и 20 пользователей) доступными по сети через HASP LM на отдельных серверах или рабочих станциях (не серверах 1С).
  4. Распределение по сериям: Если бы у вас были ключи разных серий (например, ORGL8, ORG8A, ORG8B), вы могли бы установить по одному ключу каждой серии локально на сервер 1С и еще по одному ключу каждой серии сделать доступным по сети. Это позволило бы максимизировать количество лицензий на одном сервере.

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

Использование ключей разных серий

Еще один путь оптимизации, который может быть весьма эффективным, — это замена ваших текущих ключей ORGL8 на ключи других серий. Например, если у вас есть несколько ключей по 100 пользователей (ORGL8), вы можете попробовать обменять (или приобрести) их на один ключ ORG8A на 300 пользователей. Таким образом, у вас появятся ключи разных серий (например, 20 ORGL8, 50 ORGL8, 100 ORGL8 и 300 ORG8A), что позволит серверу 1С использовать один ключ каждой серии, существенно увеличивая общий пул доступных лицензий на одном сервере. Это потребует инвестиций, но решит проблему кардинально, если вы хотите оставаться на аппаратных ключах.

Настройка HASP License Manager (HASP LM) и nethasp.ini

Для корректной работы с множеством аппаратных ключей необходимо правильно настроить HASP License Manager и файлы конфигурации nethasp.ini. Давайте разберем этот процесс подробнее:

  1. Размещение HASP LM: Установите HASP LM на отдельных серверах или рабочих станциях, которые не являются серверами 1С. Это позволит разгрузить серверы 1С и централизовать выдачу лицензий. Каждый физический ключ должен быть воткнут в компьютер с запущенным HASP LM.
  2. Уникальные имена для HASP LM: Если у вас несколько HASP LM в сети, по умолчанию они могут иметь одинаковые имена, что приведет к конфликтам. Для решения этой проблемы отредактируйте файл nhsrv.ini, который находится в каталоге установки HASP LM. В этом файле вы можете присвоить каждому менеджеру лицензий уникальное имя NetBIOS. Например:
    
    [NHS_SERVER]
    NH_SERVER_NAME = HASPLM1
    
    Повторите это для каждого HASP LM, используя HASPLM2, HASPLM3 и т.д.
  3. Настройка nethasp.ini на серверах 1С: Чтобы сервер 1С знал, где искать лицензии, отредактируйте файл nethasp.ini на каждом сервере 1С. Этот файл должен находиться в каталоге с исполняемыми файлами платформы 1С:Предприятие (обычно в bin). В нем вы можете явно указать IP-адреса или NetBIOS имена серверов, где запущены HASP LM:
    
    [NH_COMMON]
    NH_SERVER_ADDR = 192.168.1.10, 192.168.1.11
    NH_SERVER_NAME = HASPLM1, HASPLM2
    NH_USE_BROADCAST = Disabled
    
    Мы рекомендуем отключать широковещательный поиск (NH_USE_BROADCAST = Disabled) и явно указывать адреса, чтобы ускорить поиск и избежать проблем в сложных сетевых окружениях.
  4. Настройка nethasp.ini на клиентах (если переход на клиентскую выдачу): Хотя вы не хотите использовать клиентскую выдачу лицензий, в качестве "запасного" или "крайнего" варианта, если все прочее не помогает, можно рассмотреть этот подход. В этом случае клиенты 1С:Предприятия самостоятельно ищут и получают лицензии. На каждом клиентском компьютере в файле nethasp.ini можно настроить порядок поиска ключей, что поможет распределить нагрузку:
    
    [NH_COMMON]
    NH_SERVER_ADDR = 192.168.1.10, 192.168.1.11
    NH_SERVER_NAME = HASPLM1, HASPLM2
    NH_USE_BROADCAST = Disabled
    
    Важно понимать последовательность поиска лицензий клиентом 1С:
    1. Локальный клиентский ключ (если установлен).
    2. Сетевой клиентский ключ (через HASP LM, согласно nethasp.ini).
    3. Локальный клиентский ключ сервера (если клиент подключен к серверу 1С).
    4. Сетевой клиентский ключ сервера (если клиент подключен к серверу 1С, который в свою очередь ищет сетевой ключ).
    5. Программная лицензия базовой конфигурации (если таковая имеется).
    Если клиент не нашел лицензию напрямую, он обращается за ней к серверу 1С. Сервер, в свою очередь, выполняет свой собственный поиск и занятие лицензии.

Проблема нехватки лицензий при использовании нескольких сетевых ключей может усугубляться, если при аварийном завершении сеанса 1С:Предприятия оно подключается к другому HASP License Manager, выдающему новую лицензию, тогда как предыдущая может оставаться занятой до 36 часов. Тщательная настройка nethasp.ini помогает избежать такого "залипания" лицензий.

Балансировка нагрузки через кластер серверов 1С

Использование кластера серверов 1С:Предприятие помогает распределить пользовательские подключения между рабочими серверами, повышая отказоустойчивость и производительность системы в целом. Однако важно понимать, что сам по себе кластер не отменяет ограничений на получение лицензий *каждым отдельным* рабочим сервером 1С от аппаратных ключей. Каждый рабочий сервер в кластере будет искать лицензии согласно описанным выше правилам (1 локальный + 1 сетевой ключ одной серии, плюс по одному ключу каждой уникальной серии). Поэтому, если вы используете кластер, все равно необходимо применять остальные методы оптимизации для каждого рабочего сервера, чтобы обеспечить достаточный пул лицензий.

В заключение, проблему использования нескольких сетевых аппаратных ключей 1С одной серии на одном сервере можно решить несколькими путями. Наиболее перспективным является переход на программные лицензии с использованием сервиса лицензирования 1С:Предприятия, что обеспечивает максимальную гибкость и масштабируемость. Если же аппаратные ключи остаются вашим выбором, то тщательная организация ключей по сериям, их локальная и сетевая установка, а также детальная настройка HASP License Manager и файла nethasp.ini помогут оптимизировать использование доступных лицензий и минимизировать ошибки.

← На главную