Как обеспечить стабильную работу кластера 1С КОРП при использовании аппаратных USB-ключей на виртуальных машинах

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

При эксплуатации крупных инсталляций 1С:Предприятие 8 КОРП системные администраторы часто сталкиваются с проблемой: кластер из нескольких серверов становится полностью неработоспособен при временной потере связи всего с одним USB-ключом. Это особенно актуально для виртуальных сред, где проброс аппаратных токенов осуществляется через USB-over-IP концентраторы. В данной статье мы разберем, как правильно настроить кластер, чтобы он сохранял работоспособность даже при сбоях в системе лицензирования на отдельных узлах.

Анализ механизма отказоустойчивости кластера КОРП

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

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

Настройка уровня отказоустойчивости и центральных серверов

Разберем по шагам, как изменить конфигурацию кластера для повышения его живучести. Нам необходимо применить формулу N+1, где N — это уровень отказоустойчивости. Для того чтобы кластер пережил отключение одного сервера (или одного USB-ключа), выполним следующие действия:

  1. Откроем консоль администрирования кластеров 1С.
  2. Перейдем в свойства нашего кластера (Properties).
  3. Найдем параметр Уровень отказоустойчивости (Fault Tolerance Level) и установим значение 1.
  4. Проверим список рабочих серверов. Для работы с уровнем отказоустойчивости 1 у нас должно быть как минимум два центральных сервера.
  5. В свойствах второго сервера установим галочку Центральный сервер. Теперь реестр кластера будет дублироваться, и при сбое основного узла управление перейдет к резервному.

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

Управление сервисом лицензирования через требования функциональности

Выясним причину, по которой кластер может вести себя нестабильно даже при наличии нескольких ключей. В КОРП-версии существует специальный Сервис лицензирования. Он отвечает за проверку легальности использования функций КОРП во всем кластере. Если этот сервис не может "достучаться" до ключа, он блокирует работу узлов.

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

  1. В консоли администрирования выберем конкретный рабочий сервер.
  2. Перейдем в раздел Требования функциональности.
  3. Добавим новое требование: для объекта Сервис лицензирования установим тип требования Назначать.
  4. Для серверов, где ключей нет или они работают нестабильно, можно установить тип требования Не назначать.

Таким образом, мы локализуем работу с лицензиями и предотвратим ситуацию, когда весь кластер "ждет" ответа от проблемного USB-концентратора на случайном узле.

Проблема задержек (jitter) в виртуальной среде

Посмотрим на техническую сторону использования USB-ключей в виртуализации. Драйвер HASP крайне чувствителен к сетевым задержкам. Когда 1cv8 опрашивает ключ через сеть, микросекундная задержка может быть интерпретирована как отсутствие лицензии. Рассмотрим подробнее, как минимизировать эти риски:

Во-первых, следует убедиться, что ПО для проброса USB (USB-over-IP) настроено на минимальное время ожидания. Если ключ презентуется одновременно двум виртуальным машинам, это приведет к немедленной блокировке стека USB.

Во-вторых, стоит рассмотреть архитектурный подход: один ключ — один сервер. В вашем случае (7 серверов и 7 лицензий) каждый сервер должен видеть только свой ключ. Не пытайтесь "раздавать" один многопользовательский ключ на все 7 ВМ через один менеджер лицензий nhsrv.exe, если используете серверные лицензии КОРП — это создает лишнюю точку отказа в сети.

Миграция на программные лицензии как радикальное решение

Проанализируем перспективу использования программных лицензий. Фирма 1С официально рекомендует для виртуальных сред использовать именно пин-коды. Программная лицензия привязывается к параметрам виртуальной машины (CPU, RAM, ID диска) и не зависит от стабильности сетевого соединения с USB-концентратором.

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

  1. Обратитесь к партнеру 1С для обмена аппаратных ключей на программные лицензии (обычно это требует наличия действующей подписки ИТС).
  2. При активации программных лицензий на виртуальных машинах убедитесь, что параметры ВМ (динамическая память, миграция между хостами) настроены так, чтобы не менять "железный" профиль машины, иначе лицензия "слетит".
  3. Использование программных лицензий полностью снимает проблему jitter и отказов USB-шины, что для кластера на 500+ пользователей является критически важным фактором стабильности.

Резюме по настройке

Подводя итог, для решения проблемы "падения" кластера при отключении одного токена, мы должны:

Соблюдение этих правил позволит вашему кластеру 1С КОРП работать максимально эффективно, обеспечивая бесперебойную работу пользователей по всей стране.

← На главную