다음을 통해 공유


Hyper-V и устройства, использующие порты USB/COM

Вопрос, наболевший для многих, поднимается вновь и вновь: можно ли использовать устройства USB с виртуальными машинами Hyper-V? А устройства, использующие порты COM?

Ответ обычно очень неутешителен. По соображениям безопасности серверные решения виртуализации не предполагают работы с такими устройствами. Не существует связки VSP/VSC для шины USB, а также портов COM и LPT. Если для портов COM еще есть обходной путь через именованные каналы (Named Pipes) и Hyper-V это поддерживает, то с USB все мрачно. А даже для серверов часто требуются ключи HASP (привет 1С), криптографические токены для шифрования, считыватели смарткарт, модемы и так далее. И как правило такие устройства работают только через шину USB.

Но если серверные платформы виртуализации отвергают поддержку шины USB, то появляются независимые поставщики, которым интересно на этом заработать. Есть целый ряд различных разработок, тем или иным образом решающих такие вопросы. Существуют аппаратные решения, реализующие концентратор USB, подключаемый к компьютеру по Ethernet. И, значит, работающий в виртуальных машинах. Примером такого решения является AnywhereUSB.

Но аппаратные решения не гибки, дороги и сложны в обслуживании. Здесь на помощь приходят программные решения. Просмотрев несколько вариантов, я остановился на USB over Network компании Fabulatech.

Первая часть решения устанвливается на физическом компьютере — самом сервере Hyper-V или любом другом в сети. Поддерживаются все версии Windows, включая 64-битную Windows Server 2008. Серверный компонент отслеживает подключаемые устройства и предоставляет их своим клиентам согласно заданным вами правилам. Вы можете указать, какие устройства предоставить клиентам или включить автоматическое предоставление любых подключаемых устройств. Можно ограничить типы подключаемых устройств или указать конкретно, с какими устройствами можно работать. Программа по умолчанию использует порт TCP 33000, но это гибко настраивается.

В виртуальной машине устанавливается клиентский компонент, указывается адрес сервера — и устройства подключаются. ОС уверена в том, что устройства реально подключены к локальной шине USB.

Никаких подводных камней я не заметил, хотя протестировал большое количество капризных устройств. Очень рекомендую. Правда, дороговато. Надеюсь, в свете массивной атаки технологий виртуализации Fabulatech предложит возможность лицензировать не каждую ВМ отдельно, а все ВМ на одном сервере разом.

Аналогичный функционал доступен для подключения устройств, использующих порты COM:

Также есть интересное решение, позволяющее эмулировать модем. Так, что ОС считает, что пользуется модемом, — а сетевые пакеты маршрутизируются на указанный сетевой интерфейс, и все работает по Ethernet. Быстро, надежно, без телефонной линии и помех, без старых устройств.

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

Comments

  • Anonymous
    January 01, 2003
    Ну, вам виднее. Это понижает безопасность ВМ, превращая изолированную тестовую среду в нечто совмещенное с production network. Расскажите, что за сотни гигабайт вы хотите передавать в ВМ? Shared Folder в VPC имеет жесткий лимит в 4 ГБ.

  • Anonymous
    January 01, 2003
    Спасибо. Я проверял кроме стандартной переферии - ключи 1С, ключи Алладин, банковские ключи Citibank, работающие с COM "таблетки" Аккорд итд.

  • Anonymous
    January 01, 2003
    Это увы ваша проблема, т.к. Exchange в виртуальной среде not supported. Поддержка будет объявлена в августе. Ни о какой VMware разумеется речи не шло ни в статье, ни про поддержку. Unsupported платформа.

  • Anonymous
    January 01, 2003
    Здравствуйте я так и не понял а виртуальный com можно подключить к физическому и как это с делать?

  • Anonymous
    January 01, 2003
    The comment has been removed

  • Anonymous
    January 01, 2003
    COM-порт в виртуальной машине можно использовать только для именованных каналов. Для других сценариев нужно использовать решения, описанные Алексом в этой статье.

  • Anonymous
    January 01, 2003
    Я все таки не соглашусь. Для большинства пользователей не нужно 5 устройств. Нужно 1-2, и софтовое гораздо дешевле. Также абсолютная неправда про "не привязана к операционной системе". Попробуйте поработать со своей железкой из Linux, а лучще из Mac OS. Драйверы нужны, а это привязка к ОС. Похлеще установки софта. Ну и для серверного сценария (Hyper-V таки ориентирован не на домашних пользователей, а на серверные), лишние железки не rack формата недопустимы (имею в виду приличные серверные). А такое устройство rack формата стоит (в Москве) от 30000

  • Anonymous
    January 01, 2003
    Бррр. Не понял. Куски РЕЕСТРА из хост машины в гостевую машину можно передавать автоматом через ICs. 4 параметра уже настроены за вас, вы можете добавить. Data Exchange не особо поменялся с VS2005. Что касается передачи ФАЙЛОВ, то: Microsoft рекомендует изолировать хост систему от виртуальных машин. На для передач файлов, ни сетевых интерфейсов.. Машинами вы управляете с клиентской ОС, а не с хоста (по идеологии, хост это Core, там нет инструментария управления). Если вам нужно получить доступ с ВМ до файлов на клиенте. есть два способа: доступ по сети, или монтирование ISO образа как CD (IMG образа как fdd).

  • Anonymous
    January 01, 2003
    Мне непонятно ваше слово "Записать ISO" Пишущий привод не нужен, это делается на лету. Есть куча сторонних програм, которые жмулируют пакетную запись на виртуальный CD, то есть на вашем ПК есть софт, который эмулирует CD, куда вы можете бросать файлы. Файловая система UDF. Этот виртуальный CD вы можете подключить (как будто это ваш локальный фиическмй CD) для ВМ - и она будет его видеть. Никакой сети к ВМ в этом случае делать не придется.

  • Anonymous
    April 29, 2008
    Во-первых, огромное спасибо за прекрасный блог, к тому который выходит постоянно! Во-вторых уже ближе к теме, вы сказали "Никаких подводных камней я не заметил, хотя протестировал большое количество капризных устройств." Скажите, а ключи от 1С там были? И работали ли они?

  • Anonymous
    April 30, 2008
    Добрый день. Спасибо за этот познавательный блог. У меня вопрос по поводу Integration Services. Предусмотрен ли в них механизм обмена host и guest систем напрямую (аналог Shared Folders в продуктах VMWare)? Там имеется компонент Data Exchange. Это он предоставляет такой функционал? Если да, то реализовано ли его использование в RC0 или ещё нет?

  • Anonymous
    May 04, 2008
    То-есть фактически мне придется на guest-систему устанавливать дополнительный сетевой адаптер, который будет смотреть в подсеть, где находится сервер с Hyper-V?

  • Anonymous
    May 05, 2008
    Я передачу файлов имел ввиду. Просто в виртуалке создана сеть, изолированная от производственной и в нее надо данные передавать (записать ISO образ не получится). Буду тогда в этой изолированной виртуальной сети делать хост с двумя сетевыми интерфейсами раз другого выхода нет.

  • Anonymous
    May 05, 2008
    крайне сомневаюсь, что такие программы смогут обработать файлы размером не несколько сотен гигабайт =) к тому же мне места жалко под временные файлы такого объема. гораздо проще настроить то, что я описал выше.

  • Anonymous
    May 06, 2008
    Бэкапы. Восстановление баз эксченджа в виртуальной среде. Не знаю как в VPC, а в VMWare server я через shared folder подключал диск, подключенный в свою очередь через net use. Ни на какие ограничения при этом я не натыкался. Hyper-V заинтересовал прежде всего в связке с Server Core. В таком виде у меня и работает.

  • Anonymous
    March 15, 2009
    "Но аппаратные решения не гибки, дороги и сложны в обслуживании." - Это вы откуда взяли??? Вот пример мне требовалась подключить 3 ключа к виртуалке. Приведеный вами же девайс AnywhereUSB от digi стоит (в Хабаровске) 14 т.р. и на нем 5 usb портов. А софтовое решение Fabulatech на 4 usb устройства стоит (http://www.fabulatech.com/usb-over-network-purchase.html) 369$ (примерно 1200р.). Другое софтварное решение так же работающее с Hyper-V стоит  (http://www.virtualserialport.com/purchase/usb-over-network/) чуть дешевле 319$ за устройство (примерно 11200 р.). В итоге экономия при софтварном решении 2-3 т.р., никаких сложностей с железкой у меня не было. Обслуживание? Да какое там обслуживание - поставил и забыл. И главный плюс железка не привязана к операционной системе. Такие дела.

  • Anonymous
    May 18, 2009
    У меня не сработала эта программа. Я так и не смог настроить синхронизацию кпк с Vista, которая в виртуалке.

  • Anonymous
    March 18, 2010
    Есть весьма недорогие железные решения: ST-Lab N-330 4 port USB Server - 1560 руб. ST-Lab / ST-Lab N-320 1 port USB Server - 1212 руб.

  • Anonymous
    March 18, 2010
    или http://www.virtualserialport.com/products/

  • Anonymous
    March 23, 2010
    Вот ещё контролер хардовый LevelOne FPS-3003

  • Anonymous
    April 18, 2010
    на версии 4.1, хасп ключь видит, а вот 1с8.2 отказыывается, говорит не обнаружен ключь защиты. Кто какую версию юзал?

  • Anonymous
    May 10, 2010
    Вопрос немного не по теме... На всех демо роликах и скриншотах от MS на рабочем столе отображается некая информация о хосте, что это за тула такая?

  • Anonymous
    May 10, 2010
    Вроде таки нарыл Это случаем у вас не BGInfo ?

  • Anonymous
    November 08, 2010
    Столкнулся вот с такой проблемой--одновременно можно подключиться к рассшаренному usb-устройству только одному пользователю(через USB over Network)..есть ли  варианты это исправить

  • Anonymous
    September 08, 2014
    Ткните пожалуйста носом меня в статью... нигде не могу найти... как настроить "Если для портов COM еще есть обходной путь через именованные каналы (Named Pipes) и Hyper-V" у нас встала "сложная" задачка, терминальный сервер находится на хосте Hyper-v 2012R2 , сам сервер 2003Р2СП2, на него подключается клиент с ККМ, и ещё чем то... должны подключаться 2 ком порта которые у клиента... Вопрос: как организовать это для 1-го клиента и последующих... я так понял что это нужно делать через Named Pipes...

  • Anonymous
    September 08, 2014
    Ткните пожалуйста носом меня в статью... нигде не могу найти... как настроить "Если для портов COM еще есть обходной путь через именованные каналы (Named Pipes) и Hyper-V" у нас встала "сложная" задачка, терминальный сервер находится на хосте Hyper-v 2012R2 , сам сервер 2003Р2СП2, на него подключается клиент с ККМ, и ещё чем то... должны подключаться 2 ком порта которые у клиента... Вопрос: как организовать это для 1-го клиента и последующих...

  • Anonymous
    January 20, 2017
    Добрый день всем. Установил на Hyper-V (Windows server 2012R2) клиента, на свою машину (Win 8.1) сервер. итого: eToken "видит", только мне надо, чтоб он с него сертификаты поставил... а вот КриптоПРО (CSP 4.0) его не видит.. В чем проблема? Как раз для 1С и отчетности.