Microsoft hyper-v і usb-ключі 1c

При перенесенні серверів додатків у віртуальне середовище MicrosoftHyper-V часто виникає цілий ряд нетривіальних технічних завдань. Вибір способу підключення USB-пристроїв (зокрема, ключів апаратного захисту HASP) до віртуальних машин став для нас однією з перших таких завдань, що виникла відразу з впровадженням послуг оренди додатків 1С (SaaS) на віртуальних серверах в інфраструктурі компанії IT-Lite.

Підтримка підключення фізичних USB-пристроїв до віртуальних машин начисто відсутня в MicrosoftHyper-V. Як вихід із ситуації напрошується підключення ключів через Hasp License Manager по мережі, але такий підхід не вирішує проблему остаточно зважаючи на існуючі обмежень: тільки один клієнтський ключ захисту можна підключити до одного сервера Hasp License Manager.

У процесі роботи ми розглянули кілька варіантів підключення USB-пристроїв до віртуальних машин в середовищі Hyper-V, і тут я розповім про три таких рішення, з описом їх переваг і недоліків.

Рішення 1. Belkin Network USB Hub

Microsoft hyper-v і usb-ключі 1c
Мал. 1 Комплект Belkin
Network USB Hub
Microsoft hyper-v і usb-ключі 1c
Мал. 2 Belkin Network
USB Hub, вид сзадіРіс. 3 Web-інтерфейс
Microsoft hyper-v і usb-ключі 1c
Мал. 4 Belkin Network USB
Hub Control Center

Програмно-апаратне рішення, призначене для SOHO-сегмента, що складається з невеликої коробочки розміром 165х165х19мм з п'ятьма USB2.0-портами, одним портом 10 / 100Base-TX (auto-sensing and auto-uplink RJ45). Блок живлення зовнішній 12В 2А, або 5В 4А, що вселяє сумніви в можливості отримати стандартні 0,5 А на всіх пятіUSB-портах одночасно (хоча для ключів HASP це і не потрібно) і ПО Belkin Network USB Hub Control Center під Windows 32bit / 64bit і MacOSX.

На жаль, офіційно в Росію пристрій не поставляється. У комплекті йде сам пристрій, блок живлення, інструкція по установці, диск з ПО і патч-корд 0,5м (див. Рис. 1).

Розглянемо апаратну частину (рис. 2): пристрій чорного кольору виконано з глянсового чорного пластика (дуже легко дряпається). На задній стороні є три USB-порту, мережевий інтерфейс, роз'єм живлення і кнопка скидання. На передній - два USB-порту і індикатор живлення. USB-порти Ніяк не пронумеровані.

ПО Belkin Network USB Hub Control Center відрізняється досить зручною реалізацією (див. Рис. 4), воно дозволяє управляти відразу декількома пристроями, переглядати інформацію про подключеннихUSB-ключах, і, що важливо, дозволяє роздавати різні ключі з одного хаба різним клієнтським серверів (зрозуміло , один фізичний ключ одночасно можна віддати тільки одного сервера). Є можливість автоматичного підключення USB-пристроїв на завантаження Windows і перепідключення USB-пристроїв автоматично при збоях мережі (число спроб перепідключення явно ніде не встановлюється і дорівнює нескінченності). Підключення USB-пристрою прив'язуються до USB-портів хаба, тобто старе пристрій в новому порту трактується як новий пристрій і автоматично не перепідключатися. Зручна можливість задати будь-якого USB-пристрою індивідуальне ім'я, яке, однак, також прив'язується до порту: якщо, наприклад, назвати HASP-ключ в порту 1 ім'ям «key1», то при підключенні його в порт 2, він не буде пізнаний як «key1 ».

Особливості застосування пристрою в промисловому середовищі:

Повністю відсутня аутентифікація при підключенні USB-пристроїв до цільової системі - хто перший встиг підключити, той і правий. Проблема не дуже критична зважаючи на присутність функції автоматичного підключення пристроїв на завантаженні програми Network USB Hub Control Center - перепідключити вже підключений пристрій до іншого хосту можна тільки відключивши його на першому.

При числі USB-ключів захисту більше трьох на один хаб спостерігається випадкове зависання Belkin Network USB Hub Control Center. Причому сам Control Center продовжує працювати і бачить ключі, але сервіс Hasp License Manager ключів вже не бачить. Допомагає перезапустити Belkin Network USB Hub Control Center. Відстежити момент зависання можливо лише за відмови роботи 1С через відсутність ключа захисту.

У зв'язку з вищевказаними проблемами було знайдено наступне рішення.

Рішення 2. Digi AnywhereUSB

Мал. 5 DigiAnywhereUSB
вигляд спереду

Microsoft hyper-v і usb-ключі 1c
Мал. 6 AnywhereUSB
Remote Hub
Configuration Utility

У лінійці AnywhereUSB представлені три продукти: AnywhereUSB® / 2, AnywhereUSB® / 5 і AnywhereUSB® TS.Первие два продукти мають по два і п'ять USB1.1 портів відповідно, а останній - чотири USB і чотири RS-232 (роз'єм RJ-45 ). Блок живлення у всіх пристроїв зовнішній, 5В, 2.9А (виробником заявлено 0.5А на кожен USB-порт).

Як приклад розглянемо AnywhereUSB® / 5. Решта пристрої лінійки відрізняються тільки розміром і числом портів. Пристрій являє собою коробку розміром 110,5х182,9х26,1мм. На передній панелі розташовані пронумеровані індикатори активності кожного USB-порту і індикатор статусу системи (блимає при нормальній роботі). На задній панелі розташовані: роз'єм живлення (у AnywhereUSB® / 2 є фіксація за допомогою гайки), порт 10/100 Base-T Ethernet і п'ять пронумерованих портів USB (див. Рис. 5). Пристрій не має web-інтерфейсу і управляється повністю через додається ПЗ.

Варто відзначити досить дивне відповідність номерів логічних портів фізичним, представлене в таблиці 1 для DigiAnywhereUSB® / 5:

Використання цього пристрою: після підключення USB-хаба до цільової системі він працює тільки за допомогою встановлених драйверів, без будь-яких додаткових програм, так, як ніби це звичайний USB-хаб, підключений до локальномуUSB-порту. Що дозволяє, без будь-яких маніпуляцій і налаштувань, підключати до нього USB-пристрої, і вони будуть відразу виявлені операційною системою. Перепідключення при обриві зв'язку відбувається автоматично з інтервалом, який налаштовується через AnywhereUSBRemoteHubConfigurationUtility, 5секунд за замовчуванням. Проблем типу «зависання» і «зникнення» ключів в процесі експлуатації виявлено не було.

Істотним недоліком є ​​той факт, що один хаб повністю підключається до однієї системи (можна підключати до системи одночасно більше одного хаба), і те, що немає можливості ділити порти хаба на кілька систем.

Рішення 3. Fabula Tech USBoverNetwork

Microsoft hyper-v і usb-ключі 1c
Мал. 7 Серверна
інтерфейс
Microsoft hyper-v і usb-ключі 1c
Мал. 8 Клієнтський
інтерфейс

Рішення повністю програмне, являє собою клієнт-серверний додаток: сервер під Window 32bit / 64bit, Linux, WindowsCE, а клієнт поки тільки під Windows. Є 15-ти денна ознайомлювальна версія. Дистрибутиви клієнта і сервера є окремі пакети. Установка сервера USBovernetwork проблем не викликає, а перезавантаження ОС не потрібно. Однак, для того, щоб сервер бачив USB-пристрої в системі, повинні бути встановлені їх драйвера.

Серверна частина працює як сервіс - USBoverNetwork (Server) service. Основне і єдине вікно програми представлено на рис. 7. Програма дозволяє переглядати підключення USB-пристрою і надавати до них доступ. У налаштуваннях програми можна включити опцію надання доступу до всіх підключеним пристроям автоматично і задати виключення. Кожному підключеного пристрою призначається унікальний послідовний номер - ID, він прив'язується до пари «пристрій-порт» - тобто при підключенні певного пристрою тільки в певний порт його ID не змінюється.

При «расшаріваніє» пристрою в системі з'являється новий пристрій Shared USB Device в групі Fabula Tech Shared USB Devices. В його властивості можна подивитися логічні номери хаба і порту, до якого підключений. Однак з огляду на те, що всі пристрої називаються однаково, однозначно ідентифікувати до якого порту який пристрій підключено можливо тільки методом проб і помилок підключення пристроїв. Завдання ідентифікації пристроїв ще більш ускладнюється при підключенні ключів захисту, оскільки у них часто бувають однакові назви. У властивостях пристрою, в панелі USBoverNetworkServer, можна задати кожному пристрою nickname. Однак подивитися nickname можна тільки в властивостях пристроїв в серверній або клієнтської частини програми.

Передбачена можливість дозволити підключення одного пристрою відразу до декількох клієнтам, але ця функція нами не використовувалася і не тестувалася на увазі непотрібності.

У налаштуваннях програми можна встановлювати порт для з'єднання з клієнтською частиною (за замовчуванням TCP 33000). також є підтримка SSL-шифрування трафіку.

Клієнтська частина також працює як сервіс, що отримав назву USBoverNetwork (Client) service.

Після з'єднання з сервером можна переглядати всі підключені до нього пристрої, до яких дозволений доступ, підключати та відключати їх, змінювати їх nickname, також як в серверній частині. Можна персонально для кожного пристрою в його властивостях задати Автопідключення по ID пристрою і автоматичне перепідключення за фактом його доступності. Також є можливість автоматичного підключення всіх пристроїв з певного сервера (задається у властивостях сервера).

В процесі експлуатації USBoverNetwork були виявлені такі особливості:

  1. Відсутність аутентифікації при підключенні пристроїв, крім як глобально - на рівні підключення до сервера при використанні SSL. Уже зайняте пристрій без можливості спільного доступу до нього можна підключити до нового клієнта тільки відключивши його на тому клієнті, до якого було підключено раніше;
  2. При підключенні пристроїв через USB-хаб на 7 портів, частина пристроїв може не виявлятися після перезавантаження фізичного сервера, на якому встановлений USBoverNetworkServer. Проблема, швидше за все, була саме в хабі і вирішувалася послідовним відключенням хаба від сервера і харчування від хаба, перезавантаженням сервера з подальшим підключенням хаба після завантаження ОС. Однак в нормальному режимі роботи, без перезавантажень сервера, ніяких проблем, наприклад, зависання клієнтської або серверної частини, або не виявлення ключів 1С, виявлено не було.
  3. Вкрай незручно з причин, описаних вище, підтримувати актуальною інформацію про те, який USB-ключ до якого USB-порту підключений.

USBoverNetwork ліцензується за кількістю USB-пристроїв. Обмеження числа пристроїв на сервері визначається тільки числом куплених ліцензій, а число клієнтів не обмежена. Ми підключаємо не більше восьми ключів до сервера з міркувань продуктивності та відмовостійкості.

На закінчення зазначу, що в даний час ми використовуємо USBoverNetwork, як найбільш гнучке і зручне з усіх розглянутих нами пристроїв. Досвід експлуатації позитивний. Основними перевагами USBoverNetwork перед програмно-апаратними рішеннями є можливість швидкого масштабування числа USB-ключів шляхом покупки додаткових ліцензій через Інтернет і економія портів комутатора (за рахунок відсутності апаратної частини), а також простота настройки і експлуатації.

Михайло Басенін
технічний експерт
www.IT-Lite.ru

Схожі статті