Назад | Перейти на главную страницу

Ищете способ раскрыть и расширить сотни USB-подключений из кластера (ов) виртуальных машин

В настоящее время мы тестируем очень большое количество устройств, и у нас есть один ПК на 10 устройств или около того (мы используем два USB-концентратора на каждый ПК, чтобы подключиться к устройствам). У нас огромное количество компьютеров, и это превращается в кошмар для менеджмента. Я думал о том, как мы могли бы виртуализировать нашу инфраструктуру, но у меня возникла проблема, как получить много USB-подключения от виртуальной машины к USB-концентратору в другой комнате, к которой подключены устройства.

Я думал, что мы могли бы настроить серверную комнату для размещения кластера виртуальных машин, и это заменило бы ПК, но мне нужен способ получить 2 USB-соединения на виртуальную машину, доступную в других комнатах, где расположены все устройства. Я надеялся, что у людей появятся предложения (технологии / протоколы связи и т. Д.) О том, как я могу это сделать, потому что я нашел только подключенный к сети USB, что кажется выполнимым, но для одного поставщика, которого я нашел (digi.com) , он поддерживает только USB2. Кроме того, digi - единственный поставщик, предлагающий эту технологию, поэтому я очень нервничаю, когда мы наращиваем масштабы, о которых думаем. Я надеялся найти альтернативные средства подключения (PCIe через Ethernet?), Которые позволили бы мне сделать это более эффективно или, по крайней мере, получить более широкую поддержку. Кроме того, я хотел бы иметь возможность поддерживать USB3.

Лучшее, на что я надеюсь, - это виртуализированные USB-порты на виртуальных машинах, представленные как физические USB-порты в другой комнате - это то, что я действительно хочу. Я также думал о большом шасси с кучей USB-карт, переходя от карт к USB-адаптерам по оптоволокну, но это вводит много соединений. Другие мысли заключаются в том, как переместить внешнее шасси PCI в комнату с устройствами (PCIe через Ethernet?) С большим количеством установленных USB-карт и вытащить его оттуда? Я открыт для предложений!

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

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

Стек виртуализации де-факто в linux (kvm / qemu + libvirt) поддерживает перенаправление USB1,2,3 по сети. Так,

  • в комнате со всеми вашими USB-устройствами, подключенными к ящикам Linux, вы должны запустить сервер перенаправления на каждом ящике
  • в комнате с Linux-боксами, на которых запущены виртуальные машины, вы должны сопоставить (по сети) эти удаленные устройства с локальными виртуальными машинами.

Все это можно сделать программно (libvirt) или с помощью графического интерфейса (virt-manager).

  • KVM - это компонент ядра, который делает виртуализацию возможной и быстрой.
  • qemu - это программа userspance, эмулирующая различное оборудование
  • SPICE - это код и протокол, определенные для передачи клавиатуры, мыши, дисплея и других элементов взаимодействия в виртуальную машину и из нее, возможно, по сети.
  • libvirt - это набор инструментов, созданный поверх вышеупомянутого, чтобы склеить все вместе и абстрагироваться, чтобы вам не приходилось обрабатывать детали и взаимодействие между ними. Он предоставляет красивый интерфейс (командная строка или фактический API для программирования) для создания VMS, определения сетей, запуска / остановки машин и т. Д.
  • Virtual-manager - это инструмент с графическим интерфейсом, использующий libvirt.

Вот хорошее руководство по настройке этого с 2 машинами.

Дополнительная документация о перенаправлении USB в qemu

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

Позвольте мне описать возможное решение, и вы сможете адаптировать его под свои нужды:

Установка компьютера малого форм-фактора (например, Raspberry Pi) во многих формах обсуждается в Интернете. Вы можете выбрать предпочитаемый способ монтажа, например: установить их на готовую полку для монтажа в 19-дюймовую стойку и просверлить несколько отверстий для распорок или сделать из них стопку с распорками. Это будет разумным способом установки и масштабирования до множества хозяев.

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

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

Доступны программные решения для совместного использования USB-устройств. Есть поставщики, предлагающие проприетарное программное обеспечение с поддержкой, или вы можете выбрать решение с открытым исходным кодом, такое как USB / IP проект.

Преимущества по сравнению с вашими текущими решениями:

  • Маленькие компьютеры будет легче заменить, когда они выйдут из строя (замените оборудование, оставьте карту памяти).
  • Все программное обеспечение на всех устройствах будет идентичным, и его будет легко воспроизвести с помощью простого устройства чтения / записи карт.
  • Управлять мощностью будет проще.

Возможные недостатки:

  • Создание пользовательской схемы установки и дерева подключения для 19-дюймовой полки хостов и их концентраторов / устройств.
  • Скорость сети может быть узким местом.

Несмотря на то, что это самодельный продукт, состоящий из хорошо поддерживаемых компонентов (промышленные источники питания, стандартные, не привязанные к поставщику, заменяемые продукты), он по-прежнему настраивается индивидуально и не соответствует вашему поисковому «корпоративному» решению. Я очень сомневаюсь, что будет корпоративное решение, которое хорошо масштабируется, не зависит от поставщика и является экономически эффективным.