To enable the SR-IOV support, you must create virtual instances with SR-IOV ports.
To create virtual instances with SR-IOV ports:
Create a network and a subnet with a segmentation ID. For example:
neutron net-create --provider:physical_network=physnet3 \
--provider:segmentation_id=100 net04
neutron subnet-create net04 a.b.c.d/netmask
Request the ID of the Neutron network where you want the SR-IOV port to be created. For example:
net_id=`neutron net-show net04 | grep "\ id\ " | awk '{ print $4 }'`
Create an SR-IOV port with one of the available VNIC driver types that are
direct
, normal
, direct-physical
, and macvtap
:
port_id=`neutron port-create $net_id --name sriov_port \
--binding:vnic_type direct | grep "\ id\ " | awk '{ print $4 }'`
Create a virtual instance with the SR-IOV port created in step 3:
nova boot --flavor m1.large --image ubuntu_14.04 --nic port-id=$port_id test-sriov
See also
Using SR-IOV functionality in the official OpenStack documentation