Stations de travail en ligne OnWorks Linux et Windows

Logo

Hébergement gratuit en ligne pour les postes de travail

<Précédent | Table des matières | Suivant>

1.5.3. Passthrough de périphérique / Hotplug


Si au lieu de la connexion à chaud décrite ici, vous souhaitez toujours passer par un appareil, ajoutez le contenu XML de l'appareil à votre représentation xml d'invité statique via par exemple virsh modifier. Dans ce cas, vous n'avez pas besoin d'utiliser attacher/détacher. Il existe différents types de passthrough. Les types disponibles dépendent de votre configuration matérielle et logicielle.

• Connexion à chaud/passthrough USB

• VF hotplug/passthrough


image

2 http://libvirt.org/uri.html

3 https://libvirt.org/migration.html#offline

4 https://libvirt.org/migration.html

5 http://wiki.qemu.org/Features/PostCopyLiveMigration

6 https://wiki.ubuntu.com/QemuKVMMigration


Mais les deux types sont gérés de manière très similaire et bien qu'il existe différentes manières de le faire (par exemple, également via le moniteur qemu), il est recommandé de conduire un tel changement via libvirt. De cette façon, libvirt peut essayer de gérer toutes sortes de cas particuliers pour vous et masque également quelque peu les différences de version.


En général, lorsque vous conduisez hotplug via libvirt, vous créez un extrait XML qui décrit le périphérique comme vous le feriez dans une description d'invité statique.7 Un périphérique USB est généralement identifié par les identifiants du fournisseur/produit :


Les fonctions virtuelles sont généralement attribuées via leur PCI-ID (domaine, bus, slot, fonction).



image

Obtenir la fonction virtuelle en premier lieu dépend beaucoup de l'appareil et ne peut donc pas être entièrement couvert ici. Mais en général il s'agit de mettre en place un iommu, de s'inscrire via VFIO8 et parfois demander un certain nombre de VF. Voici un exemple sur ppc64el pour obtenir 4 VF sur un appareil :


$ sudo modprobe vfio-pci

# identifier l'appareil

$ lspci -n -s 0005:01:01.3 0005:01:01.3 0200: 10df:e228 (rév 10)

# s'inscrire et demander des VF

$ écho 10df e228 | sudo tee /sys/bus/pci/drivers/vfio-pci/new_id

$ écho 4 | sudo tee /sys/bus/pci/devices/0005\:01\:00.0/sriov_numvfs


Vous attachez ou détachez ensuite l'appareil via libvirt en associant l'invité à l'extrait de code xml.


virsh attach-device

# Utilisez l'appareil dans l'invité

virsh detach-device


image

Il existe plusieurs problèmes connus associés à la protection de l'apparence qui protège « trop ». Vous devrez peut-être modifier les exceptions dans les profils d'apparmor jusqu'à ce que les bogues 15522419 (pour USB) et https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/1679704 (pour l'affectation VF) sont résolus. Pour vérifier si vous êtes concerné, regardez dmesg pendant que vous utilisez la fonction USB/VF passthrough/hotplug et vérifiez si vous voyez apparmor denies10.


image

7 https://libvirt.org/formatdomain.html

8 https://www.kernel.org/doc/Documentation/vfio.txt

9 https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1552241

10 http://wiki.apparmor.net/index.php/AppArmor_Failures#Messages_in_the_Log_files


Meilleur système d'exploitation Cloud Computing chez OnWorks :