Como usar dispositivos USB com um virtual machine VMware vSphere

O principal funcionamento de um hypervisor é simular os dispositivos usados por máquinas virtuais no nível do software. Dispositivos, como controladores virtuais, discos, leitores de DVD, placas de vídeo, cartões de rede, dispositivos de entrada etc., são criados dentro de uma máquina virtual. Mas e se você quiser conectar uma impressora, scanner, drive USB, disco rígido USB, leitor de cartão USB, chave de segurança, cartões de licença USB etc.?

Para dispositivos físicos com interface USB, você pode conectá-los à uma máquina virtual executando no VMware Workstation ou em um host ESXi usando a funcionalidade de passagem USB. Este post de blog abrange o uso desta funcionalidade no VMware vSphere em hosts ESXi, incluindo os requisitos e passos para conectar dispositivos USB.

O que é Passagem USB?

A passagem de dispositivos USB do VMware é uma funcionalidade que permite conectar um dispositivo físico USB ligado a um porto USB em um host ESXi físico à uma máquina virtual como se o dispositivo USB estivesse conectado diretamente à máquina virtual. A funcionalidade de passagem do VMware está disponível a partir da versão ESXi 4.1.

As razões para usar a passagem (passthrough) para um dispositivo USB a partir do host ESXi para o sistema operacional (OS) de um guest de máquina virtual variam. Por exemplo, se você tiver um scanner ou impressora mais antiga que não tem drivers para as versões mais recentes do sistema operacional Windows. Você pode instalar a versão antiga do Windows que suporta o dispositivo USB e conectar este dispositivo a uma máquina virtual. Outro uso prático desta funcionalidade é quando você precisa copiar arquivos de/para um disco rígido USB de/para uma máquina virtual diretamente com alta velocidade. Pode acontecer que os usuários precisem usar software protegido por hardware de chaves de licença USB em máquinas virtuais.

Como Funciona a Passagem USB

Existem três componentes principais necessários para a passagem USB funcionar: o arbitrador, o controlador USB e o dispositivo USB físico.

O arbitrador é um serviço dedicado em um servidor ESXi. O arbitrador escaneia dispositivos USB físicos conectados ao servidor físico e é responsável por encaminhar tráfego de dispositivos USB entre um host físico e uma máquina virtual. Apenas uma máquina virtual pode acessar o dispositivo USB de uma vez. O acesso ao dispositivo USB conectado à máquina virtual é bloqueado para outras máquinas virtuais. O arbitrador de USB suporta até 15 controladores USB (vSphere 7.0). O serviço Arbitrador está habilitado por padrão no ESXi.

Um controlador USB usado em um servidor físico ESXi é o controlador para o qual os portos USB físicos estão conectados. O controlador USB físico funciona com dispositivos USB físicos inseridos nos portos USB físicos no servidor. Os controladores USB podem ser embutidos (também chamados de integrados e construídos em um chip na placa-mãe) ou externos (implementados como cartões PCI ou PCIe que são inseridos em slots correspondentes na placa-mãe do servidor). O controlador USB embutido atua como um ponte entre um barramento USB e um barramento PCIe (ou PCI). O controlador USB embutido está fisicamente conectado via o número apropriado de faixas PCIe para um chipset da placa-mãe.

Um controlador USB virtual é um dispositivo virtualizado criado especificamente para uma máquina virtual executando em um hipervisor. Um controlador USB virtual interage com um controlador USB físico quando um dispositivo USB físico é passado de um anfitrião físico ESXi para um guest OS na máquina virtual. A presença de um controlador USB virtual é necessária na configuração da VM para usar a funcionalidade de passagem USB na VM. Até oito controladores USB virtuais podem ser conectados a uma máquina virtual em um anfitrião ESXi. Se você precisar remover um controlador USB virtual da configuração da VM, você deve primeiro remover todos os dispositivos USB conectados a esse controlador. O driver USB do VMware é instalado no sistema operacional convidado após o adicionar um controlador USB virtual à configuração da máquina virtual.

Um dispositivo USB físico é qualquer dispositivo com interface USB e porta USB para conectar-se a um computador. Até 20 dispositivos USB podem ser conectados a uma única máquina virtual ou anfitrião ESXi.

As normas USB e os modos de controlador são:

  • USB 2.0 e USB 1.1 (EHCI+UHCI)
  • USB 3.0 (xHCI) Versão de hardware de VM 8 ou superior

Após conectar um dispositivo USB físico a uma máquina virtual usando a funcionalidade de passagem USB do VMware, você pode precisar instalar驱动程序 para o dispositivo USB conectado no sistema operacional de convidado.

Requisitos para USB 3.0

O USB 3.0 está disponível para servidores ESXi a partir da versão VMware vSphere 5.5 com correção 3. Isso requer o driver USB xHCI na configuração da VM. As exigências de sistema operacional para usar a passagem USB 3.0 são: Windows 8.1 ou superior, Windows Server 2012 R2 ou superior, ou Linux com o kernel Linux 2.6.35 ou superior. Os dispositivos USB 3.1 são suportados a sua velocidade máxima a partir da versão VMware vSphere 7.0.

Limitações do Passthrough USB

Há algumas limitações que você deve saber antes de começar a usar a funcionalidade de passagem USB:

  • Um disco USB não pode ser usado como drive de boot para uma máquina virtual.
  • Se um disco USB for usado para iniciar ESXi, este disco USB não pode ser conectado a uma máquina virtual.
  • É necessária a versão virtual de hardware 7 ou superior para uma máquina virtual.

Alguns dispositivos USB podem não ser suportados pelo VMware:

  • Hub de USB
  • Dispositivos de áudio e câmeras de vídeo que usam transferência de dados assíncrona
  • Algumas teclas de computador e ratos USB (detalhes podem ser encontrados no artigo do VMware 1021345).
  • Algumas cartões inteligentes que usam CCID podem necessitar de configurações adicionais para se conectarem a uma máquina virtual.

vMotion é possível para VMs com dispositivos USB pass-through conectados. Depois de configurar corretamente o VM e habilitar o vMotion, os dispositivos USB permanecem conectados ao VM após a migração para outro host ESXi.

Há limitações de vMotion para máquinas virtuais que usam discos pass-through USB:

  • O Gerenciamento de Energia Distribuído (DPM) não é suportado porque um host ESXi não pode ser desligado para poupar energia sem desconectar um dispositivo USB de uma máquina virtual (um dispositivo USB é desconectado se o host for desligado usando DPM). O DPM deve ser desabilitado neste host.
  • O Tolerância a Faltas não é suportada.
  • Um VM não pode ser suspenso ou desligado (caso contrário, os dispositivos USB são desconectados de um VM e só podem ser reconectados depois de migrar o VM para o host ESXi inicial ao qual os dispositivos USB estão fisicamente conectados). O VM deve ser migrado manualmente para o host ESXi com o dispositivo USB conectado quando você precisar ligar este VM. Convidados Linux que foram reiniciados podem montar dispositivos USB em pontos de montagem diferentes após a reconexão.
  • Hosts ESXi que têm máquinas virtuais com dispositivos USB pass-through devem ser acessíveis através da interface de kernel de máquina virtual vmk0 (para rede de gerenciamento) e porta TCP 902.

Desconecte dispositivos USB de uma máquina virtual antes de usar a funcionalidade de adicionar hot-add e adicionar processadores, memória ou dispositivos PCI. Caso contrário, os dispositivos USB são desconectados automaticamente e podem perder algumas informações quando a funcionalidade de adicionar hot-add for usada. Se você suspender uma VM e depois a retomar, os dispositivos USB são desconectados e depois reconectados à VM.

Quanto a criar um drive virtual USB ou drive virtual de cartão de memória para anexar a uma máquina virtual rodando ESXi ou VMware Workstation, assim como você montaria um disco virtual de floppy ou CD/DVD, essa opção não é suportada atualmente.

Como conectar um dispositivo USB a uma máquina virtual

Como nós já familiarizámos-nos com a teoria, podemos passar para a parte prática e ver a configuração no VMware vSphere.

  1. Insira um dispositivo USB the um porto USB em seu servidor ESXi. No meu caso, eu vou inserir um cartão de memória USB.
  2. Você pode então verificar se o dispositivo USB está conectado ao ESXi na interface de linha de comando ESXi:

    lsusb

  3. Como você pode ver na captura de tela abaixo, o meu cartão de memória USB agora está conectado ao servidor ESXi.

  4. O serviço de árbitro USB deve estar em execução. Você pode ver o status do serviço com o comando:

    chkconfig usbarbitrator --list

  5. Se o arbitrador USB for parado, você pode iniciá-lo com o comando

    /etc/init.d/usbarbitrator start

    Nota: Leia mais sobre o ESXiCLI no post do blog.

    A VM reside no host ESXi que é gerenciado pelo vCenter Server no meu exemplo. O Windows está instalado como um Sistema Operacional Convidado na minha máquina virtual. Abra o VMware vSphere Client, vá para Hosts e Clusters. No painel Navegador, selecione uma máquina virtual para a qual você deseja conectar o dispositivo USB usando a funcionalidade de passando pelo. A máquina virtual deve estar desligada. Você deve instalar o VMware Tools no Sistema Operacional Convidado.

  6. Uma vez selecionada a máquina virtual, clique em Ações > Editar configurações.

  7. Na janela Editar Configurações, verifique se existe um controlador USB na configuração da máquina virtual. Se o controlador USB estiver faltando, clique em Adicionar Novo Dispositivo > Controlador USB, e selecione o tipo de controlador USB (USB 2.0 ou USB 3.0).
  8. Se o controlador USB estiver presente, você precisa adicionar o dispositivo USB que está conectado ao host ESXi para sua VM. Clique em Adicionar Novo Dispositivo > Dispositivo USB do Host.
  9. Uma nova string é adicionada à configuração da máquina virtual. Na string Novo Anfitrião USB, selecione um dispositivo USB que você deseja conectar à VM. Eu agora tenho dois pendrives USB conectados ao meu servidor físico ESXi e estou conectando o pendrive Verbatim à minha VM (Produto Verbatim 0x0302). Se você precisar habilitar o suporte a vMotion, expanda o dispositivo Novo Anfitrião USB e selecione a caixa de seleção “Permitir vMotion enquanto o dispositivo está conectado”. Note os requisitos e limitações do vMotion. Clique em OK para salvar as configurações e fechar esta janela.
  10. Inicie uma máquina virtual. Assim que o Sistema Operacional convidado for carregado, aguarde para ele inicializar e instalar o pendrive USB. A seguir, abra o Gerenciador de Dispositivos do Windows. Clique com o botão direito do mouse em Minha Computadora e, a partir do menu de contexto, clique em Gerenciar. Na janela Gerenciamento de Computador, clique em Gerenciador de Dispositivos e expanda a seção Unidades de Disco (pois conectamos um pendrive USB, este dispositivo deve aparecer nesta categoria de dispositivos). Podemos ver o dispositivo USB Verbatim, que é o nome do meu pendrive USB conectado à VM usando a funcionalidade de Passagem de USB do VMware.
  11. Abra Gerenciamento de Discos na janela Gerenciamento de Computador e certifique-se de que a memória USB tenha um drive de disco atribuído. Em meu caso, tudo está correto, e agora eu posso copiar dados da memória USB para o disco virtual de uma VM no convidado Windows e vice-versa.

VMware PCI Passthrough

Se o dispositivo USB que você quer conectar a uma VM usando a funcionalidade de passthrough USB do VMware não for suportado pelo VMware, você pode tentar usar a funcionalidade de passthrough PCI e conectar todo o controlador físico de USB que tem a interface PCI a uma VM.

Se o seu servidor ESXi tiver um controlador de USB inserido em um slot PCI, você pode passar este dispositivo PCI para uma máquina virtual. O VMware PCI passthrough também é chamado de VMDirectPass. Este método é menos conveniente do que usar o passthrough USB, mas pode ajudá-lo a concluir a tarefa.

Requisitos

A tecnologia de E/S direcionada por Intel ou tecnologia de virtualização de E/S por AMD (AMD IOMMU) deve ser suportada pelo hardware do servidor e habilitada em UEFI/BIOS. Se você tiver apenas um controlador de USB em seu servidor, você deve conectar um controlador de USB adicional para evitar perder as conexões com os dispositivos USB usados pelo seu host físico ESXi.

Restrições e Limitações:

  • Você não pode suspender uma máquina virtual.
  • Uma VM não pode ser migrada para outros hosts ESXi usando vMotion.
  • As cópias de snapshot de máquina virtual não são suportadas.

Vamos olhar para o workflow de conexão de um dispositivo USB com uma VM usando PCI passthrough e conectar todo o controlador USB para o qual um dispositivo USB está conectado a uma VM.

  1. Para identificar o dispositivo USB e o controlador USB ao qual seu dispositivo USB está conectado (se houver múltiplos controladores USB instalados no seu servidor), use esse comando:

    lsusb -v | grep -e Bus -e iSerial

  2. Encontre a string com o nome de seu dispositivo USB conectado ao controlador USB e identifique o ID do controlador (por exemplo, bus002).
  3. Você pode verificar o log do VMkernel quando você conecta um dispositivo USB the um servidor ESXi:

    tail -f /var/log/vmkernel.log | grep -i USB

  4. Abra o cliente VMware vSphere e vá para Hosts e Clusters.
  5. Selecione o host ESXi no qual sua máquina virtual reside (para a qual você precisa conectar um dispositivo USB).
  6. Vá para a aba Configurar e selecione Dispositivos PCI na seção Hardware.
  7. Encontre e selecione o controlador USB necessário da lista de dispositivos PCI usando o ID detectado anteriormente.
  8. O status do driver selecionado deveria agora mudar para Disponível.
  9. Clique em OK para salvar as configurações.
  10. Reinicie o host ESXi para que as mudanças tenham efeito.
  11. Certifique-se de que sua máquina virtual esteja desligada. Vá para as configurações da VM, clique em Adicionar Novo Dispositivo > Dispositivo PCI > Adicionar. Selecione o seu controlador USB da lista suspensa usando o ID correto.
  12. Ligue a máquina virtual. Verifique os dispositivos no sistema operacional convidado. Se o Windows está instalado na máquina virtual, abra o Gerenciador de Dispositivos e verifique os drivers e dispositivos de armazenamento.

Conexão de cartão inteligente USB

Alguns dispositivos USB que possuem a classe apropriada CCID podem não ser suportados por padrão para se conectarem a VMs. A mensagem de erro “Não é possível conectar ‘path:0/1/6/1’ a esta máquina virtual. O dispositivo não foi encontrado”. Nas logs, você pode ver a mensagem:

(vmx-vcpu-0) não reivindicou a interface 0 antes de usá-la

PCSCD é o deamon ESXi que controla os leitores de cartões inteligentes. Acesso a cartões inteligentes USB está desabilitado para máquinas virtuais para evitar conflitos, já que um host ESXi require um cartão inteligente. Como resultado, o passthrough USB não pode ser usado com as configurações padrão para cartões inteligentes USB. Você deve editar a configuração do host ESXi para habilitar o passthrough USB para cartões inteligentes USB.

  1. Parar a máquina virtual. Abra as configurações da máquina virtual, selecione a aba Opções da VM e clique em Editar Configuração.

  2. Na janela Configurações de Parâmetros, clique em Adicionar Parâmetros de Configuração.

    Alternativamente, você pode editar o arquivo de configuração VMX da máquina virtual através da interface de linha de comando, conectando-se à consola ESXi com um cliente SSH.

  3. Edite ou adicione esta linha à configuração da máquina virtual se o parâmetro não estiver presente:

    usb.generic.allowCCID = "TRUE"

  4. Salve as configurações da máquina virtual.
  5. Pare o serviço PCSCD usando o seguinte comando na linha de comando ESXi:

    sudo /etc/init.d/pcscd stop

  6. Certifique-se de que o serviço PCSCD não está em execução:

    ps | grep pcscd

  7. Ligue a máquina virtual e verifique os dispositivos para confirmar se o leitor de cartões USB está conectado à máquina virtual.

Conclusão

Você pode conectar diferentes dispositivos ligados a portas USB em hosts físicos ESXi diretamente às máquinas virtuais e usá-los em ambientes de operação em guests de máquinas virtuais, exatamente como você faria com esses dispositivos USB em computadores físicos normais. Até pode migrar máquinas virtuais com dispositivos externos USB conectados ao host primário ESXi com vMotion para outro host. Apesar de algumas limitações, o recurso de passagem de USB do VMware adiciona mais funcionalidades e flexibilidade em diferentes situações.

As cópias de segurança das máquinas virtuais VMware são importantes para aqueles que usam o VMware vSphere. Baixe o NAKIVO Backup & Replication e teste essa solução universal de proteção de dados para proteger suas máquinas virtuais do vSphere e outros dados em seu ambiente.

Source:
https://www.nakivo.com/blog/vmware-administration-essentials-configuring-esxi-vm-networks-2/