Hardkey em ambiente virtualizado

Quem trabalha com automação e atende a diferentes clientes/projetos certamente já se deparou com a necessidade de trabalhar com máquinas virtuais, seja por conta das diferentes versões de software usados em casa projeto, seja pela necessidade de se isolar o escopo. Nesses casos é necessario recorrer a uma ferramenta de virtualização.

Existem 2 tipos de ferramentas de virtualização: Virtualizadores nível I e II.

Virtualizadores de nível I são utilizados geralmente por profissionais da área de TI em ambientes corporativos, exigem maior conhecimento específico para configurar e rodar máquinas virtuais, em contrapartida interagem diretamente com o hardware do host e com isso conseguem apresentar maior performance.

Virtualizadores de nível II são os mais comumente utilizados por desenvolvedores, dentre eles podemos destacar o VMware e Virtual Box. Esse tipo de ferramenta geralmente é mais amigável ao usuário não necessitando de amplo conhecimento técnico para configuração, em contrapartida introduzem problemas significativos de performance uma vez que são gerenciados pelo SO e não tem controle direto sobre o hardware do host.

Por muito tempo utilizei virtualizadores nível II como o VMware no Windows e o Parallels no MacOS. Ambos atendem bem o seu propósito, porém exigem hardware de maior capacidade, principalmente quando se deseja rodar mais de uma VM no mesmo host.

Rescentemente montei um novo pc workstation e resolvi explorar novas ferramentas de virtualização, com foco na performance da VM. Resolvi testar o Hyper-v do Windows que além de ser totalmente gratuito também é um virtualizador nível I. Logo me surpreendi pela performance de suas VMs que parecem apresentar extamente a mesma performance que o SO que roda no host. Outro ponto que me surpreendeu fortemente é que o hyper-v consegue gerenciar de forma dinâmica os recursos utilizados por cada VM, não alocando recursos desnecessários quando não são exigidas.

Apenas para terem uma ideia, com um processador Inter Core i5-13600k e 32GB de memória DDR5 eu consigo rodar 5 VMs com Windows 10 sem nenhuma perda de performance em nenhuma delas, rodando softwares complexos como por exemplo o TIA Portal da Siemens.

Entretanto o Hyper-v apresentou uma única grande desvantagem em relação ao VMware e Parallels utilizados anteriormente, que é o uso da hardkey dentro das VMs. O Hyper-v não permite utilizar esse tipo de dispositivo no interior das VMs de forma nativa como em virtualizadores nível II que geralmente possuem funcionalidades que simplificam esse processo.
Para contornar esse tipo de cenário existem 2 opções, uma baseada em software e outra baseada em hardware, sendo essa última indicada pela própria Elipse no artigo: https://kb.elipse.com.br/guia-de-virtualizacao-elipse-software.

Soluções baseadas em software geralmente exigem pagamento de assinatura mensal ou anual em dolar, já as soluções baseadas em hardware são bastante caras para aquisição. Para contornar o problema eu andei pesquisando e cheguei a uma solução baseada em software Open Source totalmente funcional e gratuita: https://github.com/cezanne/usbip-win. Trata-se de uma implementação para ambientes Windows baseada na solução https://usbip.sourceforge.net já bem conhecida, porém que funciona apenas em host com SO Linux.

Testei o USBIP-WIN em um host Windows 11 Professional, porém por problemas relacionados a diretivas de assinatura de driver, que á partir do W11 passaram a ser mais rígidas, não funcionou. Entretanto em um host com Windows 10 Professional funcionou perfeitamente. Com isso hoje consigo trabalhar com máquinas virtuais baseadas tanto em Windows 10 e Windows Server compartilhando totalmente minhas Hardkeys da Elipse e GE, com VMs apresentando performance similar a um ambiente “bare metal” (instalado diretamente no pc, sem virtualização).

Se alguém tentar usar essa solução e tiver alguma dificuldade, basta comentar abaixo que eu ficarei feliz em ajudar.

Espero que esse artigo possa ajudar a outros desenvolvedores que, como eu, sempre sofreram com trabalho em ambiente virtualizado.

5 Likes

Olá, eu gostaria de complementar a informação e acrescentar que apesar do artigo destacado fazer menção ao uso do equipamento AnywhereUsb/14 do fornecedor Digi para acesso a Hardkeys em ambientes virtualizados, hoje a indicação da Elipse para esse tipo de ambiente é o uso de Softkey. Em todos os nossos testes a Softkey foi a que apresentou a melhor confiabilidade e segurança. Inclusive, temos a opção de troca de Hardkey por Softkey.
Segue um artigo que explica mais sobre as diferenças entre Hardkeys e Softkeys: https://kb.elipse.com.br/utilizando-uma-softkey-com-os-produtos-elipse-software/.