The documentation set for this product strives to use bias-free language. For the purposes of this documentation set, bias-free is defined as language that does not imply discrimination based on age, disability, gender, racial identity, ethnic identity, sexual orientation, socioeconomic status, and intersectionality. Exceptions may be present in the documentation due to language that is hardcoded in the user interfaces of the product software, language used based on RFP documentation, or language that is used by a referenced third-party product. Learn more about how Cisco is using Inclusive Language.
This chapter includes the following sections:
Consider the following guidelines and prerequisites when configuring Kernel-based Virtual Machine (KVM):
Consider the following guidelines and prerequisites when configuring an SR-IOV topology:
Prepare the host server as described in Guidelines and Prerequisites for KVM.
Step 1 |
In Cisco UCS Manager, configure a service profile for VM-FEX for KVM. Create or modify a dynamic vNIC connection policy. For more information, see Configuring a Service Profile with VM-FEX. |
||
Step 2 |
In Cisco UCS Manager, define a port profile and associate it with a port profile client. Create a port profile to define the properties and settings used to configure the virtual interfaces. For KVM, you must select the default cluster as the port profile client. For more information, see Configuring Port Profiles. |
||
Step 3 |
On each KVM server, use virsh or virt-manager to create one or more virtual machines (VMs). For more information about installing VMs using these libvirt-based utilities, see the documents listed in KVM Components.
|
||
Step 4 |
For each VM, edit the domain XML descriptor file (and any network XML files, if present) to configure a vNIC interface that is directly attached to the VIC and uses the port profile defined in Cisco UCS Manager. For more information about configuring a VM interface, see Configuring the VM Interface. |
||
Step 5 |
On each VM, install the VirtIO paravirtualized network driver (virtio-net) for the guest operating system. Recent versions of most common operating systems provide default virtio-net drivers. For more information, contact Red Hat or the provider of the guest operating system. |
Prepare the host server as described in Guidelines and Prerequisites for KVM.
Step 1 |
In Cisco UCS Manager, configure a service profile for VM-FEX for KVM. Create or modify a dynamic vNIC connection policy. For more information, see Configuring a Service Profile with VM-FEX. |
||
Step 2 |
In Cisco UCS Manager, define a port profile and associate it with a port profile client. Create a port profile to define the properties and settings used to configure the virtual interfaces. For KVM, you must select the default cluster as the port profile client. For more information, see Configuring Port Profiles. |
||
Step 3 |
On each KVM server, use virsh or virt-manager to create one or more virtual machines (VMs). For more information about installing VMs using these libvirt-based utilities, see the documents listed in KVM Components.
|
||
Step 4 |
On each VM, install an enic driver that supports an SR-IOV VF. With RHEL 6.3 or later, use the inbox enic driver. |
||
Step 5 |
For each VM, edit the domain XML descriptor file (and any network XML files, if present) to configure a vNIC interface that is directly attached to the VIC and uses the port profile defined in Cisco UCS Manager. For more information about configuring a VM interface, see Configuring the VM Interface. |
||
Step 6 |
On the KVM host, activate the Intel VT-d extensions. For more information about activating the VT-d extensions, see Activating Intel VT-d in the Kernel. |
After creating a VM using a libvirt-based utility, you must manually edit the domain XML file of the VM to add and configure a direct attached interface for network connectivity.
For more information about the domain XML file components and attributes, see the libvirt documentation at http://libvirt.org/formatdomain.html#elementsNICS.
You can also compose a network XML file to specify a pool of devices. For more information about the network XML file components and attributes, see http://libvirt.org/formatnetwork.html.
This example shows an interface element added to the domain XML file of a VM for connection in SR-IOV with MacVTap (MacVTap Passthrough) topology:
<domain type='kvm'> <name>vm1-rhel6.2</name> ... <devices> ... <interface type='direct'> <mac address='01:23:45:67:89:ab' /> <source dev='eth4' mode='passthrough' /> <virtualport type='802.1Qbh'> <parameters profileid='my-port-profile-3' /> </virtualport> <model type='virtio' /> <driver name='vhost' /> </interface> ... </devices> ... </domain>
This list describes the components and attributes of the interface element:
Note |
We recommend that you do not assign a MAC address used by another VM, even if that VM is currently shut down or is no longer used. If you must reuse a MAC address from a previous VM, make sure that the retention timer has expired and ensure that the previous VM is no longer present in the Cisco UCS Manager view. |
This example shows an interface element that is added to the domain XML file of a VM for a connection in SR-IOV Passthrough topology:
<domain type='kvm'> <name>vm1-rhel6.3</name> ... <devices> ... <interface type='hostdev' managed='yes'> <source> <address type='pci' domain='0' bus='0x09' slot='0x0' function='0x01'/> </source> <mac address='01:23:45:67:89:ab' /> <virtualport type='802.1Qbh'> <parameters profileid='my-port-profile-3' /> </virtualport> </interface> ... </devices> ... </domain>
This list describes the components and attributes of the interface element that differ from those described in the SR-IOV with MacVTap mode example:
Note |
We recommend that you do not assign a MAC address used by another VM, even if that VM is currently shut down or is no longer used. If you must reuse a MAC address from a previous VM, make sure that the retention timer has expired and ensure that the previous VM is no longer present in the Cisco UCS Manager view. |
This example shows how to use a network XML file to specify a pool of devices. In RHEL 6.2 or later, create the network file in /etc/libvirt/qemu/networks. List the devices and define a portgroup:
<network> <name>macvtap_passthru_network</name> <forward mode='passthrough'> <interface dev='eth2' /> <interface dev='eth3' /> </forward> <portgroup name='engineering'> <virtualport type='802.1Qbh'> <parameters profileid='my-port-profile-3' /> </virtualport> </portgroup> </network>
Edit the domain XML file of the VM to reference the network file and portgroup:
<domain type='kvm'> <name>vm1-rhel6.2</name> ... <devices> ... <interface type='network'> <mac address='01:23:45:67:89:ab' /> <source network='macvtap_passthru_network' portgroup='engineering' /> <model type='virtio' /> </interface> ... </devices> ... </domain>
Use the virsh net-define <new-xml-filename> command to create the new network from the new network XML file.
Tip |
You can find the network-related virsh commands with virsh help | grep net- You can view help on any virsh command with virsh help <command-name> |
This list describes the components and attributes of the interface element that differ from those described in the SR-IOV with MacVTap mode example:
Perform this procedure on the KVM host to enable Intel VT-d extensions, which are required for SR-IOV passthrough.
For more information about this feature in Red Hat Enterprise Linux (RHEL) systems, see the Red Hat Virtualization Host Configuration and Guest Installation Guide.
Reboot the host.