Procurando uma maneira de expor e estender centenas de conexões USB de cluster (s) de VM

4

Atualmente, testamos um número muito grande de dispositivos e temos um PC por 10 dispositivos ou mais (usamos dois hubs USB por computador para abrir os dispositivos). Temos um grande número de PCs e está se transformando em um pesadelo de gerenciamento. Tenho pensado em como podemos virtualizar nossa infraestrutura, mas estou com um problema de como obter muita conectividade USB da VM para um hub USB em outra sala à qual os dispositivos estão conectados.

Eu estava pensando que poderíamos configurar uma sala de servidores para hospedar o cluster de VMs e substituir os PCs, mas eu preciso de uma maneira de obter 2 conexões USB por VM disponíveis nas outras salas onde todos os dispositivos estão localizados. Eu estava esperando que as pessoas tivessem algumas sugestões (tecnologias / protocolos de comunicação / etc) sobre como eu poderia fazer isso porque eu só encontrei USB conectado à rede, o que parece factível, mas para o único fornecedor que encontrei (digi.com) , suporta apenas USB2. Além disso, a digi é o único fornecedor que oferece essa tecnologia, o que me deixa realmente nervoso quando estamos construindo na escala em que estamos pensando. Eu estava esperando encontrar meios alternativos de conectividade (PCIe over ethernet?) Que me permitiriam fazer isso de forma mais eficaz ou pelo menos ter um suporte mais amplo. Além disso, gostaria de poder também suportar o USB3.

O melhor que eu espero é portas USB virtualizadas nas VMs apresentadas como portas USB físicas na outra sala - é o que eu realmente quero. Eu também pensei em ter um chassi grande com um monte de cartões USB, indo dos cartões para adaptadores USB sobre fibra, mas isso introduz muitas conexões. Outros pensamentos são como mover um chassi PCI externo para a sala com os dispositivos (PCIe através de ethernet?) Com um monte de cartões USB instalados e quebrá-lo de lá? Estou aberto a sugestões!

Também estou aberto para colocar um cluster de VM na sala onde os dispositivos estão hospedados, se essa for realmente a única maneira de obter o I / O do rack de servidor para os dispositivos, mas eu realmente prefiro que o cluster morar em uma sala de servidores e então a E / S se ramifica a partir daí.

Só para esclarecer, gostaria de ter portas USB físicas em uma sala e portas USB virtuais aparecerem nas VMs. Como eu chego de um lugar para outro é completamente aberto à sugestão.

    
por Mike 15.11.2018 / 05:13

2 respostas

1

Você pode escolher usar computadores baseados em Linux de formato pequeno, hubs USB e uma solução de software para fornecer acesso aos dispositivos USB.

Deixe-me descrever uma solução possível e você pode adaptá-la às suas necessidades:

A montagem de um pequeno computador de fator de forma (como um Raspberry Pi ) é discutida de várias formas na Internet. Você pode escolher a forma de montagem preferida, por exemplo: montá-los em uma prateleira de 19 "de prateleira e perfurar alguns orifícios para espaçadores, ou fazer uma pilha deles com espaçadores. Isso seria uma maneira razoável de configurar e dimensionar até muitos hosts.

O poder de um computador de fator de forma pequeno é mais fácil de gerenciar. Isso exigiria apenas uma fonte de energia compartilhada para os hosts e, possivelmente, para fornecer energia extra para seus hubs USB. Uma fonte de alimentação industrial e alguma fiação personalizada criariam uma fonte de energia estável e a possibilidade de adicionar energia de failover. Muitas soluções são possíveis aqui.

Um computador baseado em Linux de pequeno formato pode executar uma distribuição simplificada (de propósito único) com apenas o software de compartilhamento USB instalado. Este agente de gerenciamento pode ser instalado para monitorar o funcionamento do host. Para minimizar a chance de corrupção, você deve comprar um cartão de memória adequado, tornar o sistema de arquivos do host somente leitura e não configurar nenhum espaço de troca.

Soluções de software estão disponíveis para compartilhar os dispositivos USB. Existem fornecedores que oferecem software proprietário com suporte ou você pode optar por uma solução de código aberto como o projeto USB / IP .

Vantagens em comparação com suas soluções atuais:

  • Os computadores pequenos são mais fáceis de trocar quando falham (substitua o hardware, deixe o cartão de memória).
  • Todo o software em todos os dispositivos será idêntico e fácil de replicar com um simples leitor / gravador de cartões.
  • O poder será mais fácil de gerenciar.

As possíveis desvantagens são:

  • Criando uma configuração personalizada e uma árvore de fiação para uma prateleira de 19 " hosts e seus hubs / dispositivos.
  • A velocidade da rede pode ser um gargalo.

Embora seja um produto caseiro de peças bem suportadas (energia industrial, pronta para uso, não-vendor-bloqueado, produtos substituíveis), ele ainda é uma configuração personalizada e não corresponde à sua pesquisa de solução 'corporativa'. Duvido muito que houvesse uma solução corporativa, que fosse bem dimensionada, independente de fornecedores e econômica.

    
por 22.11.2018 / 16:49
2

A pilha de virtualização defacto no linux (kvm / qemu + libvirt) suporta o redirecionamento USB1,2,3 na rede. Então,

  • na sala com todos os seus dispositivos usb conectados a caixas linux você executaria o servidor de redirecionamento em cada caixa
  • na sala com caixas de linux executando as VMs, você mapearia (através da rede) esses dispositivos remotos para sua vms local.

Isso tudo pode ser feito de forma programática (libvirt) ou com uma GUI (virt-manager).

  • O KVM é o material do lado do kernel para tornar a virtualização possível e rápida
  • qemu é o programa de atendimento ao usuário emulando vários hardwares
  • SPICE é o código e o protocolo definidos para transferir teclado, mouse, exibição e outras coisas de interconexão para dentro e para fora de uma VM, possivelmente pela rede
  • O libvirt é o conjunto de ferramentas construído acima para colar tudo junto e abstraí-lo, para que você não tenha que lidar com os detalhes e a interação entre eles. Ele fornece uma interface agradável (linha de comando ou API real para programar) para criar VMS, definir redes, iniciar / parar máquinas, etc.
  • O Virtual-manager é a ferramenta GUI que usa o libvirt.

Aqui está um guia para configurar isso com 2 máquinas .

Mais doc sobre redirecionamento usb qemu

    
por 24.11.2018 / 00:00