Le principal objectif d’un hyperviseur est d’émuler les périphériques utilisés par les machines virtuelles au niveau du logiciel. Des périphériques tels que des contrôleurs virtuels, des disques, des lecteurs DVD, des cartes graphiques, des cartes réseau, des périphériques d’entrée, etc., sont créés dans une machine virtuelle. Mais que faire si vous souhaitez connecter une imprimante, un scanner, une clé USB, un disque dur USB, une carte à puce USB, des dongles de sécurité, des clés de licence USB, etc. ?
Pour les périphériques externes avec une interface USB, vous pouvez les connecter à une machine virtuelle exécutant VMware Workstation ou un hôte ESXi en utilisant la fonctionnalité de pass-through USB. Cet article de blog couvre l’utilisation de cette fonctionnalité dans VMware vSphere sur des hôtes ESXi,包括要求和使用步骤来连接USB设备。
Qu’est-ce que le Pass-through USB ?
Le pass-through USB est une fonctionnalité de VMware qui vous permet de connecter un périphérique USB physique connecté à un port USB sur un hôte ESXi physique à une machine virtuelle comme si le périphérique USB était directement connecté à la machine virtuelle. Le pass-through de VMware est une fonctionnalité disponible à partir de ESXi 4.1.
Les raisons d’utiliser le passage à travers pour un périphérique USB depuis l’hôte ESXi vers un système d’exploitation invité (OS) d’une machine virtuelle varient. Par exemple, si vous avez un scanner ou une imprimante plus ancienne qui ne dispose pas de pilotes pour les dernières versions du système d’exploitation Windows. Vous pouvez installer la version plus ancienne de Windows qui supporte le périphérique USB et connecter ce périphérique à une machine virtuelle. Une autre utilisation pratique de cette fonctionnalité est lorsque vous devez copier des fichiers à partir d’un disque dur USB vers ou depuis une machine virtuelle directement à haute vitesse. Il se peut que les utilisateurs aient besoin d’utiliser des logiciels protégés par des clés d’authentification matérielles USB dans les machines virtuelles.
Comment fonctionne le passage à travers USB
Il existe trois composants principaux nécessaires pour que le passage à travers USB fonctionne : l’arbitre, le contrôleur USB et le périphérique USB physique.
L’arbitre est un service dédié sur un serveur ESXi. L’arbitre scanne les périphériques USB physiques connectés au serveur physique et est responsable du routage du trafic de périphérique USB entre un hôte physique et une machine virtuelle. Seule une machine virtuelle peut accéder au périphérique USB à la fois. L’accès au périphérique USB connecté à une machine virtuelle est bloqué pour d’autres machines virtuelles. L’arbitre USB supporte jusqu’à 15 contrôleurs USB (vSphere 7.0). Le service Arbitrateur est activé par défaut dans ESXi.
Un contrôleur USB utilisé sur un serveur ESXi physique est le contrôleur à qui sont connectées les ports USB physiques. Le contrôleur USB physique fonctionne avec des périphériques USB physiques insérés dans les ports USB physiques du serveur. Les contrôleurs USB peuvent être intégrés (également appelés intégrés et fabriqués dans un circuit d’une carte mère) ou externes (implémentés sous forme de cartes PCI ou PCIe insérées dans les emplacements correspondants sur une carte mère de serveur). Le contrôleur USB intégré agit comme un pont entre un bus USB et un bus PCIe (ou PCI). Le contrôleur USB intégré est physiquement connecté via le nombre approprié de voies PCIe à un ensemble de circuits d’une carte mère.
Un contrôleur USB virtuel est un périphérique émulé créé spécifiquement pour une machine virtuelle exécutant un hyperviseur. Un contrôleur USB virtuel interagit avec un contrôleur USB physique lorsque un périphérique USB physique est transféré d’un hôte ESXi physique vers un OS invité dans la machine virtuelle. La présence d’un contrôleur USB virtuel est requise dans la configuration de la VM pour utiliser la fonction de pass-through USB dans la VM. jusqu’à huit contrôleurs USB virtuels peuvent être connectés à une machine virtuelle sur un hôte ESXi. Si vous devez retirer un contrôleur USB virtuel d’une configuration de VM, vous devez d’abord retirer tous les périphériques USB connectés à ce contrôleur. Le pilote USB de VMware est installé sur un système d’exploitation invité après l’ajout d’un contrôleur USB virtuel à la configuration de la machine virtuelle.
Un périphérique USB physique est n’importe quel périphérique doté d’une interface USB et d’un port USB pour se connecter à un ordinateur. Jusqu’à 20 périphériques USB peuvent être connectés à une seule machine virtuelle ou à un hôte ESXi.
Les normes USB et les modes de contrôleur sont :
- USB 2.0 et USB 1.1 (EHCI+UHCI)
- USB 3.0 (xHCI) Version de matériel virtuelle 8 ou plus élevée
Lorsque vous connectez un périphérique USB physique à une machine virtuelle à l’aide de la fonction de pass-through USB de VMware, vous pourriez avoir besoin d’installer des pilotes pour le périphérique USB connecté dans le système d’exploitation invité.
Exigences pour USB 3.0
USB 3.0 est disponible pour les serveurs ESXi à partir de VMware vSphere 5.5, patch 3. Cela nécessite le pilote USB xHCI dans la configuration de la machine virtuelle. Les exigences système d’exploitation pour utiliser le pass-through USB 3.0 sont : Windows 8.1 ou supérieur, Windows Server 2012 R2 ou supérieur, ou Linux avec un noyau Linux 2.6.35 ou supérieur. Les périphériques USB 3.1 sont pris en charge à leur vitesse maximale à partir de VMware vSphere 7.0.
Limitations du Pass-through USB
Il existe quelques limitations que vous devez connaître avant d’utiliser la fonction de pass-through USB :
- Un disque USB ne peut être utilisé comme disque d’amorçage pour une machine virtuelle.
- Si un disque USB est utilisé pour amorcer ESXi, ce disque USB ne peut pas être connecté à une machine virtuelle.
- Une version virtuelle de matériel 7 ou plus élevée est requise pour une machine virtuelle.
Certains périphériques USB peuvent ne pas être pris en charge par VMware :
- Hub USB
- Périphériques audio et caméras vidéo utilisant un transfert de données asynchrone
- Certaines souris et claviers USB (plus de détails dans l’article VMware 1021345).
- Certaines cartes intelligentes utilisant la norme CCID peuvent nécessiter une configuration supplémentaire pour se connecter à une machine virtuelle. Le
vMotion est possible pour les VM avec des périphériques USB passés à travers. Après avoir configuré correctement la VM et avoir activé le vMotion, les périphériques USB restent connectés à la VM après la migration vers un autre hôte ESXi.
Il existe des limitations de vMotion pour les ordinateurs virtuels utilisant des disques passés à travers USB :
- Le Gestionnaire de puissance distribué (DPM) n’est pas pris en charge parce qu’un hôte ESXi ne peut être éteint pour économiser de l’électricité sans déconnecter un périphérique USB de la VM (un périphérique USB est déconnecté si l’hôte est éteint en utilisant le DPM). Le DPM devrait être désactivé sur cet hôte.
- La tolérance aux pannes n’est pas prise en charge.
- Une VM ne peut être suspendue ou éteinte (sinon, les périphériques USB sont déconnectés de la VM et ne peuvent être reconnectés qu’après la migration de la VM vers l’hôte ESXi initial à qui les périphériques USB sont physiquement connectés). La VM doit être migrée manuellement vers l’hôte ESXi avec le périphérique USB connecté lorsque vous devez allumer cette VM. Les invités Linux qui ont été réveillés peuvent monter les périphériques USB à des points de montage différents après la reconnexion.
- Les hôtes ESXi qui ont des ordinateurs virtuels avec des périphériques USB passés à travers doivent être accessibles via l’interface noyau virtuelle machine (vmk0) (pour la gestion de la réseau) et le port TCP 902.
Déconnectez les périphériques USB d’une machine virtuelle avant d’utiliser la fonctionnalité de hot-add et d’ajouter des CPU, de la mémoire ou des périphériques PCI. Sinon, les périphériques USB sont automatiquement déconnectés et certaines données peuvent être perdues lors de l’utilisation de la fonctionnalité de hot-add. Si vous suspendez une VM et la recommencez ensuite, les périphériques USB sont déconnectés puis reconnectés à la VM.
En ce qui concerne la création d’un disque virtuel USB ou d’un lecteur de cartes flash virtuel pour être attaché à une machine virtuelle exécutant ESXi ou VMware Workstation, de même que pour monter un disque virtuel de disquette ou de CD/DVD, cette option n’est actuellement pas prise en charge.
Comment connecter un périphérique USB à une machine virtuelle
Maintenant que nous avons familiarisé nous-mêmes avec la théorie, nous pouvons passer à la partie pratique et voir la configuration dans VMware vSphere.
- Insérez un périphérique USB dans un port USB sur votre serveur ESXi. Dans mon cas, je vais insérer une clé USB.
- Vous pouvez ensuite vérifier si le périphérique USB est connecté à ESXi dans l’interface de ligne de commande ESXi :
lsusb
- Comme vous pouvez le voir dans l’capture d’écran suivante, ma clé USB est maintenant connectée au serveur ESXi.
- Le service de gestionnaire USB doit être en cours d’execution. Vous pouvez vérifier l’état du service avec la commande :
chkconfig usbarbitrator --list
- Si l’arbitre USB est arrêté, vous pouvez le démarrer avec la commande
/etc/init.d/usbarbitrator start
Note : Pour en savoir plus sur ESXiCLI, lisez le post de blog.
Le VM est hébergé sur l’hôte ESXi géré par vCenter Server dans mon exemple. Windows est installé en tant que système d’exploitation invité sur mon ordinateur virtuel. Ouvrez le client VMware vSphere, allez à Hôtes et Clusters. Dans la zone Navigateur, sélectionnez une machine virtuelle à laquelle vous souhaitez connecter le périphérique USB en utilisant la fonction passthrough. La machine virtuelle doit être arrêtée. Vous devez installer VMware Tools sur le système d’exploitation invité.
- Une fois que vous avez sélectionné la machine virtuelle, cliquez sur Actions > Éditer les paramètres.
- Dans la fenêtre Éditer les paramètres, vérifiez si il y a un contrôleur USB dans les paramètres de la machine virtuelle. Si le contrôleur USB est manquant, cliquez sur Ajouter un nouveau périphérique > Contrôleur USB, puis sélectionnez le type de contrôleur USB (USB 2.0 ou USB 3.0).
- Si le contrôleur USB est présent, vous devez ajouter le périphérique USB connecté à l’hôte ESXi à votre VM. Cliquez sur Ajouter un nouveau périphérique > Périphérique USB de l’hôte.
- Une nouvelle chaîne est ajoutée à la configuration de la machine virtuelle. Dans la chaîne Nouvel hôte USB, sélectionnez un périphérique USB que vous souhaitez connecter à la VM. J’ai désormais deux disques USB connectés à mon serveur ESXi physique et je connecte le disque USB Verbatim à ma VM (produit Verbatim 0x0302). Si vous devez activer l’appui à vMotion, élargissez Nouvel hôte USB et sélectionnez la case à cocher “Permettre vMotion lorsque le périphérique est connecté”. Notez les exigences et limitations de vMotion. Cliquez sur OK pour enregistrer les paramètres et fermer cette fenêtre.
- Démarrez une machine virtuelle. Une fois que l’OS invité est chargé, attendez qu’il s’initialise et installe le disque USB. Ensuite, ouvrez le Gestionnaire de périphériques Windows. Cliquez avec le bouton droit sur Mon ordinateur et, depuis le menu contextuel, cliquez sur Gérer. Dans la fenêtre Gestion des ordinateurs, cliquez sur Gestionnaire de périphériques et élargissez la section Disques dur (since nous avons connecté un disque USB, ce périphérique devrait apparaître dans cette catégorie de périphériques). Nous pouvons voir le périphérique USB Verbatim, qui est le nom de mon Stick USB connecté à la VM à l’aide de la fonction USB Passthrough de VMware.
- Ouvrir Gestionnaire de disques dans la fenêtre Gestionnaire de l’ordinateur et s’assurer que la clé USB a été assignée à un lecteur de disque. Dans mon cas, tout est correct et maintenant je peux copier des données de la clé USB vers le disque virtuel d’une machine virtuelle (VM) dans le guest Windows et l’inverse.
VMware PCI Passthrough
Si l’appareil USB que vous souhaitez connecter à une VM en utilisant la fonction USB passthrough de VMware n’est pas supporté par VMware, vous pouvez essayer de utiliser la fonction PCI passthrough et connecter l’ensemble du contrôleur USB physique avec l’interface PCI à une VM.
Si votre serveur ESXi a un contrôleur USB inséré dans une emplacement PCI, vous pouvez passer cet appareil PCI à une machine virtuelle. La fonction PCI passthrough de VMware est également appelée VMDirectPass. Cette méthode est moins pratique que l’utilisation de USB passthrough, mais elle peut vous aider à accomplir la tâche.
Exigences
La technologie Intel Directed I/O ou AMD I/O Virtualization Technology (AMD IOMMU) doit être supportée par l’appareil serveur et activée dans UEFI/BIOS. Si vous avez uniquement un seul contrôleur USB sur votre serveur, vous devez connecter un contrôleur USB supplémentaire pour éviter de perdre les connexions aux appareils USB utilisés par votre hôte ESXi physique.
Restrictions et Limitations :
- Vous ne pouvez pas suspendre une machine virtuelle.
- Une VM ne peut pas être migrée vers d’autres hôtes ESXi à l’aide de vMotion.
- Les instantanés de machine virtuelle ne sont pas pris en charge.
Examinons le flux de travail pour connecter un périphérique USB à une VM en utilisant le passage à travers PCI et connecter l’ensemble du contrôleur USB auquel est connecté le périphérique USB à une VM.
- Pour identifier le périphérique USB et le contrôleur USB auquel votre périphérique USB est connecté (si plusieurs contrôleurs USB sont installés sur votre serveur), utilisez ce commande :
lsusb -v | grep -e Bus -e iSerial
- Recherchez la chaîne contenant le nom de votre périphérique USB connecté au contrôleur USB et identifiez l’ID du contrôleur (par exemple bus002).
- Vous pouvez vérifier le journal du VMkernel lorsque vous connectez un périphérique USB à un serveur ESXi :
tail -f /var/log/vmkernel.log | grep -i USB
- Ouvrez le client VMware vSphere et allez à Hôtes et Clusters.
- Sélectionnez l’hôte ESXi sur lequel se trouve votre machine virtuelle (à laquelle vous devez connecter un périphérique USB).
- Allez à l’onglet Configurer et sélectionnez Périphériques PCI dans la section Matériel.
- Recherchez et sélectionnez le contrôleur USB requis à partir de la liste des périphériques PCI en utilisant l’ID que vous avez détecté plus tôt.
- Le statut du pilote sélectionné devrait maintenant changer en Disponible.
- Cliquez sur OK pour enregistrer les paramètres.
- Redémarrez l’hôte ESXi pour que les modifications prennent effet.
- Assurez-vous que votre machine virtuelle est éteinte. Allez aux paramètres de la machine virtuelle, cliquez sur Ajouter un nouvel appareil > Périphérique PCI > Ajouter. Sélectionnez votre contrôleur USB à partir de la liste déroulante en utilisant l’ID correct.
- Allumez la machine virtuelle. Vérifiez les appareils dans le système d’exploitation invité. Si Windows est installé sur la machine virtuelle, ouvrez le Gestionnaire des périphériques et vérifiez les pilotes et les périphériques de stockage.
USB Smart Card Connection
Certains périphériques USB dotés de la classe appropriée CCID peuvent ne pas être supportés par défaut pour se connecter aux machines virtuelles. Le message d’erreur “Impossible de connecter ‘path:0/1/6/1’ à cette machine virtuelle. L’appareil n’a pas été trouvé”. Dans les journaux, vous pouvez voir le message :
(vmx-vcpu-0) n’a pas revendiqué l’interface 0 avant l’utilisation
PCSCD est le démon ESXi qui contrôle les lecteurs de cartes smart. La connexion aux cartes USB smart est désactivée pour les machines virtuelles pour éviter les conflits, car un hôte ESXi nécessite une carte smart. En conséquence, le pas-à-travers USB ne peut pas être utilisé avec les paramètres par défaut pour les cartes USB smart. Vous devez modifier la configuration de l’hôte ESXi pour activer le pas-à-travers USB pour les cartes USB smart.
- Arrêtez la machine virtuelle. Ouvrez les paramètres de la machine virtuelle, sélectionnez l’onglet Options VM, puis cliquez sur Éditer la configuration.
- Dans la fenêtre Paramètres de configuration, cliquez sur Ajouter des paramètres de configuration.
De manière alternative, vous pouvez éditer le fichier de configuration VMX de la machine virtuelle dans l’interface en ligne de commande en vous connectant à la console ESXi avec un client SSH.
- Modifiez ou ajoutez cette ligne aux paramètres de la machine virtuelle si le paramètre est absent :
usb.generic.allowCCID = "TRUE"
- Enregistrez les paramètres de la machine virtuelle.
- Arrêtez le service PCSCD en utilisant ce commande sur la ligne de commande ESXi :
sudo /etc/init.d/pcscd stop
- Veuillez vous assurer que le service PCSCD n’est pas en cours d’exécution :
ps | grep pcscd
- Allumez la machine virtuelle et vérifiez les périphériques pour vérifier que le lecteur de cartes USB est connecté à la machine virtuelle.
Conclusion
Vous pouvez connecter les divers appareils branchés sur les ports USB des hôtes ESXi physiques directement aux machines virtuelles et utiliser ces périphériques USB dans les systèmes d’exploitation invitées des machines virtuelles exactement comme vous le feriez sur des ordinateurs physiques classiques. Vous pouvez même migrer des machines virtuelles utilisant des périphériques USB externes branchés sur l’hôte ESXi primaire vers un autre hôte avec vMotion. Malgré certaines limitations, la fonction de passage USB de VMware ajoute des capacités et une flexibilité supplémentaires dans diverses situations.
Les sauvegardes de machines virtuelles VMware sont importantes pour ceux qui utilisent VMware vSphere. Téléchargez NAKIVO Backup & Replication et essayez cette solution de protection de données universelle pour sauvegarder vos machines virtuelles VMware vSphere et d’autres données dans votre environnement.
Source:
https://www.nakivo.com/blog/vmware-administration-essentials-configuring-esxi-vm-networks-2/