Skip to content

Allow Express to implement SR-IOV #232

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 16 commits into
base: master
Choose a base branch
from
Open

Allow Express to implement SR-IOV #232

wants to merge 16 commits into from

Conversation

busterswt
Copy link
Contributor

This PR adds some bits to Express to allow the user/operator to implement SR-IOV on one or more hosts using host/group vars. There are some caveats that should probably be called out in the README, and I'll try to update them while this is reviewed.

Copy link
Contributor

@mmccarre mmccarre left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Few clean-up notes, questions, and possibly an invalid json payload for Neutron when SRIOV is not enabled.

become: true
roles:
- pre-flight-checks-openstack

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add comment header since previous one was modified to Pre-Flight checks

@busterswt busterswt removed their assignment Sep 17, 2019
@xagent003
Copy link

xagent003 commented Jan 13, 2020

Blocking issue: The VFs need to be persisted before hostagent is started. Or specifically, before pf9-neutron-sriov-agent is started. Otherwise things break after reboot.

On a customer, it was observed that the hosts were rebooted. When it came up, hostagent was started, which starts sriov-agent. At this time, no VFs were configured on the NIC. sriov-agent initializes some runtime state, and detected that NIC as having no VFs. Afterwards, per /var/log/messages, I saw the script /pf9-virtual-functions.sh being invoked and setting /sys/class/net/$1/device/sriov_numvfs

So those VFs were not monitored for changes later, when they were configured to VMs and neutron ports.

This can be fixed in 3 ways:

  1. Properly persisting the numvfs in /etc/network/interfaces (Ubuntu) or in ifup scripts for the NIC (RedHat/Centos). This is how the official Openstack docs say: https://docs.openstack.org/neutron/rocky/admin/config-sriov.html

  2. We can restart pf9-neutron-sriov-agent again in the script after setting numvfs parameter

  3. Change systemd service dependencies so pf9-sriov-vf-manager.service is started BEFORE pf9-hostagent.

Since this isn't committed, this needs to be changed whereever we're hosting it anyone else already using SRIOV

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants