2.2 Configuring PCI Pass Through over Openstack Cloud

Perform the following steps to configure PCI pass through over cloud:

  1. Configure nova-scheduler (controller).
    Add PciPassthroughFilter filter to nova.conf with the following command:
    [filter_scheduler]
    enabled_filters = <your filters>, PciPassthroughFilter
    available_filters = nova.scheduler.filters.all_filters
    
  2. Locate vendor_id and product_id of the eLynx card (compute).

    Execute the following lspci commnd to show vendor_id and product_id:

    lspci -vvv -nn | grep -i "10ee:7035" -A 11

    Sample Output:

    [root@host2 ~]$  lspci -vvv -nn | grep -i "10ee:7035"  -A 2
    07:00.0 Network controller [0280]: Xilinx Corporation Device [10ee:7035] (rev 10)
            Subsystem: Xilinx Corporation Device [10ee:0007]
            Physical Slot: 2
    In the above output:
    • 07:00.0 is the PCI address of the eLYNX card.
    • The value “10ee:7035” represents Vendor ID (10ee) and Product ID (7035)
    • Physical Slot: 2 indicates the physical PCIe slot where the eLYNX card is inserted.
  3. Configure nova-api (controller).

    Add eLynx card to nova.conf file on the controller:

    The type of the card must be type-PCI. Name can be anything.

    Example:

    [pci] 
    pci_passthrough_whitelist = "{"vendor_id":"10ee","product_id":"7035"}"
    alias = "{"vendor_id":"10ee","product_id":"7035",”device_type”:”type-PCI”,”name”:”elynx1}"

    In this example the card name is eLynx1:

    Note: If multiple eLynx cards are connected to a host, multiple alias needs to be created.

  4. Update flavor with the card name (controller or cli box).

    Execute the following command:

    openstack flavor set elynx_flavor --property
            "pci_passthrough:alias"="elynx1:1"
  5. Restart the controller and compute services.
    1. Restart the controller services with the following command:
      systemctl restart openstack-nova-api.service
        openstack-nova-conductor.service
        openstack-nova-consoleauth.service
       openstack-nova-metadata-api.service
       openstack-nova-scheduler.service
    2. Restart the compute services with the following command:

      systemctl restart openstack-nova-compute.service