Workstation online OnWorks Linux e Windows

Logo

Hosting online gratuito per workstation

<Precedenti | Contenuti | Succ.>

1.5.3. Dispositivo Passthrough/Hotplug


Se invece dell'hotplug qui descritto vuoi passare sempre attraverso un dispositivo aggiungi il contenuto xml del dispositivo alla tua rappresentazione xml ospite statica tramite ad es. modifica virtuale. In tal caso non è necessario utilizzare allegare/staccare. Esistono diversi tipi di passthrough. I tipi disponibili dipendono dalla configurazione hardware e software.

• Hotplug/passthrough USB

• Hotplug/Passthrough VF


Immagine

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


Ma entrambi i tipi sono gestiti in modo molto simile e sebbene ci siano vari modi per farlo (ad esempio anche tramite monitor qemu) si consiglia di guidare tale modifica tramite libvirt. In questo modo libvirt può provare a gestire tutti i tipi di casi speciali per te e anche mascherare in qualche modo le differenze di versione.


In generale, quando si guida hotplug tramite libvirt si crea uno snippet xml che descrive il dispositivo proprio come si farebbe in una descrizione guest statica.7 Un dispositivo USB viene solitamente identificato dall'ID del fornitore/prodotto:


Le funzioni virtuali vengono solitamente assegnate tramite il loro PCI-ID (dominio, bus, slot, funzione).



Immagine

Ottenere la funzione Virtual in primo luogo è molto dipendente dal dispositivo e quindi non può essere completamente coperto qui. Ma in generale comporta la creazione di un iommu, la registrazione tramite VFIO8 e talvolta richiedendo un numero di VF. Ecco un esempio su ppc64el per ottenere 4 VF su un dispositivo:


$ sudo modprobe vfio-pci

# identificare il dispositivo

$ lspci -n -s 0005:01:01.3 0005:01:01.3 0200: 10df:e228 (rev 10)

# registrati e richiedi VF

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

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


Quindi collegare o scollegare il dispositivo tramite libvirt mettendo in relazione il guest con lo snippet xml.


dispositivo di collegamento virsh

# Usa il dispositivo nel Guest

virsh stacca-dispositivo


Immagine

Esistono diversi problemi noti associati alla protezione dell'abbigliamento che protegge "troppo". Potrebbe essere necessario modificare le eccezioni nei profili apparmor fino ai bug 15522419 (per USB) e https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/1679704 (per l'assegnazione VF) sono stati risolti. Per verificare se sei interessato, guarda dmesg mentre usi la funzione passthrough USB/VF/hotplug e verifica se vedi apparmor nega10.


Immagine

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


Il miglior sistema operativo cloud computing su OnWorks: