View RSS Feed

pbojczuk

[Xen] Przekazywanie urządzeń PCI z hosta do guesta

Rate this Entry
Bardzo pożyteczny i szczegółowy opis:

- wiki.xenproject.org/wiki/Xen_PCI_Passthrough

Poniżej nie ma więcej niż jest pod tym linkiem. Mi niniejszy wpis się przyda, by mieć pod ręką minimalną listę niezbędnych kroków.

W obecnej chwili nie wiem jeszcze, jakie urządzenia PCI będę chciał przekazywać do docelowych wiemek na Xen. Jednak chciałbym wytestować, jakie konfiguracje będą mi odpowiadać, a jakie nie.

Do testowania póki co sprawdzają mi się następujące elementy:

1. Identyfikacja oznaczenia BDF (bus.device.function)

Oczywiście wystarczy zwykły lspci, jednak można lepiej.

W momi przypadku będę przekazywał do gościa, czyli hostowanej wiemki, interfejsy sieciowe. Kartę sieciową z czterema intefrejsami można o wiele czytelniej zidentyfikować w ten sposób:
Code:
lspci -tv
Pomoże to również szybciej ustalić kolejność gniazd na niej:



2. Możliwość przypisywania urządzeń PCI do wiemek

W tym celu będzie potrzbny moduł xen-pciback. Jeżeli nie jest załadowany, to należy go załadować:
Code:
modprobe xen-pciback
Wybraną kartę sieciową dodajemy do listy urządzeń, które można przypisać do wiemek:
Code:
xl pci-assignable-add 04:00.1
Jeżeli została poprawnie dodana, będzie można ją wylistować:
Code:
xl pci-assignable-list
W zasadzie tyle wystarczy, by powyższa konfiguracja hosta zadziałała w przypadku poniższej konfiguracji wiemki:


I daje to rezultat:


Oczywiście to nie jest trwała konfiguracja. Niemniej do początkowego testowania przypisań - a może raczej przekierowań - urządzeń, zanim się zdecydujemy na ostateczny układ, zupełnie wystarczy.

3. Posprzątanie po sobie

Po testach urządzenie można usunąć z listy urządzeń do przekierowania poniższym poleceniem:
Code:
xl pci-assignable-remove 04:00.1

Submit "[Xen] Przekazywanie urządzeń PCI z hosta do guesta" to Digg Submit "[Xen] Przekazywanie urządzeń PCI z hosta do guesta" to del.icio.us Submit "[Xen] Przekazywanie urządzeń PCI z hosta do guesta" to StumbleUpon Submit "[Xen] Przekazywanie urządzeń PCI z hosta do guesta" to Google Submit "[Xen] Przekazywanie urządzeń PCI z hosta do guesta" to Facebook Submit "[Xen] Przekazywanie urządzeń PCI z hosta do guesta" to Twitter

Updated 04-Nov-2022 at 12:23 by pbojczuk

Categories
Uncategorized

Comments

  1. pbojczuk's Avatar
    Nie wiem jeszcze jaki jest best practice, by po każdym rebucie hosta wybrane urządzenia PCI mogły być przypisane do wiemek.

    Póki co poradziłem sobie tak:

    /usr/local/bin/passQaudNicCard.sh

    Code:
    #!/bin/sh
    
    # a script to allow passing four NICs of the quad network card to Xen hosts
    # created, 11/04/2022
    
    #   +-1d.0-[02-05]----00.0-[03-05]--+-02.0-[04]--+-00.0  Intel Corporation 82576 Gigabit Network Connection
    #   |                               |            \-00.1  Intel Corporation 82576 Gigabit Network Connection
    #   |                               \-04.0-[05]--+-00.0  Intel Corporation 82576 Gigabit Network Connection
    #   |                                            \-00.1  Intel Corporation 82576 Gigabit Network Connection
    
    PCIDEVLIST="
        04:00.0
        04:00.1
        05:00.0
        05:00.1
    "
    
    for i in $PCIDEVLIST; do
        xl pci-assignable-add $i
    done
    /etc/systemd/system/pass-quad-nic-card.service
    Code:
    [Unit]
    Description=a service to allow passing quad nic card to Xen vms
    
    [Service]
    ExecStart=/usr/local/bin/passQaudNicCard.sh
    
    [Install]
    WantedBy=multi-user.target
    I po restarcie hosta zwraca mi:


    więc póki co może być.