Red Hat Enterprise Virtualization 3.6

Similar documents
Red Hat Virtualization 4.1 Hardware Considerations for Implementing SR-IOV

Red Hat CloudForms 4.0

Red Hat Developer Studio 12.0

Red Hat CloudForms 4.5 Integration with AWS CloudFormation and OpenStack Heat

.NET Core 2.0 Release Notes for Containers

Red Hat OpenStack Platform 13

Red Hat CloudForms 4.1

Red Hat CloudForms 4.0

Red Hat Enterprise Virtualization 3.6

Red Hat JBoss Developer Studio 11.1

Red Hat Virtualization 4.0

Red Hat Virtualization 4.2

Red Hat Satellite 6.3

Red Hat Enterprise Virtualization 3.6

Red Hat Enterprise Virtualization 3.6 Introduction to the User Portal

Red Hat OpenStack Platform 13

Red Hat JBoss A-MQ 6.3

Red Hat JBoss A-MQ 6.0

Red Hat Application Migration Toolkit 4.0

Red Hat OpenStack Platform 13

Red Hat AMQ 7.2 Introducing Red Hat AMQ 7

Red Hat 3Scale 2.0 Terminology

Red Hat OpenStack Platform 8 Configure firewall rules for Red Hat OpenStack Platform director

Red Hat JBoss Fuse 6.1

Red Hat JBoss BRMS 6.0

Red Hat Virtualization 4.1 Product Guide

Red Hat Process Automation Manager 7.0 Executing a business process in Business Central

Red Hat Enterprise Linux OpenStack Platform 7 Fujitsu ETERNUS Back End Guide

Red Hat OpenStack Platform 9 Introduction to the OpenStack Dashboard

Red Hat JBoss Enterprise Application Platform 7.1

Red Hat Cloud Suite 1.1

Red Hat Application Migration Toolkit 4.2

Red Hat Cloud Infrastructure 1.1

Red Hat OpenStack Platform 12

Red Hat Process Automation Manager 7.0 Planning a Red Hat Process Automation Manager installation

Red Hat OpenStack Platform 10 CephFS Back End Guide for the Shared File System Service

Red Hat CloudForms 4.6

Red Hat Ceph Storage 3

Red Hat 3scale 2.3 Accounts

Red Hat JBoss Enterprise Application Platform 7.2

Red Hat Ceph Storage 2 Using Keystone to Authenticate Ceph Object Gateway Users

Red Hat JBoss Data Grid 7.1 Feature Support Document

Red Hat Security Data API 1.0

Red Hat JBoss Data Virtualization 6.2 Using the Dashboard Builder. David Sage

Red Hat Process Automation Manager 7.0 Managing and monitoring business processes in Business Central

Red Hat Mobile Application Platform Hosted 3

Red Hat JBoss Developer Studio Integration Stack 10.0 Installation Guide

Red Hat OpenStack Platform 13

Red Hat Ceph Storage 3

Red Hat JBoss Developer Studio Integration Stack 9.0 Installation Guide

Red Hat JBoss Developer Studio Integration Stack 8.0

Red Hat CloudForms 4.5

Red Hat CloudForms 4.5 Introduction to the Self Service User Interface

Red Hat Network Satellite 5.4

Red Hat OpenStack Platform 13

Red Hat JBoss Data Grid 6.4

Red Hat OpenStack Platform 10

Red Hat JBoss Enterprise Application Platform 7.0

Red Hat Development Suite 1.1 Installation Guide

Red Hat JBoss Enterprise Application Platform 7.2

Red Hat CloudForms 4.6

Red Hat JBoss Developer Studio 9.1

Red Hat Container Development Kit 3.0 Release Notes and Known Issues

Red Hat Developer Studio 12.9

Red Hat Decision Manager 7.0

Red Hat Decision Manager 7.0 Designing a decision service using guided rules

Red Hat JBoss Fuse 6.1

Red Hat JBoss Developer Studio 9.0

Red Hat Decision Manager 7.0 Migrating from Red Hat JBoss BRMS 6.4 to Red Hat Decision Manager 7.0

Red Hat OpenStack Platform 14

Red Hat Enterprise Linux 5 Global Network Block Device

Red Hat CloudForms 4.2

JBoss Enterprise Application Platform 5

Red Hat JBoss Data Virtualization 6.3 Getting Started Guide

3.6. How to Use the Reports and Data Warehouse Capabilities of Red Hat Enterprise Virtualization. Last Updated:

Red Hat JBoss Fuse 6.3

Red Hat OpenStack Platform 11 Monitoring Tools Configuration Guide

OpenShift Dedicated 3 Release Notes

Red Hat OpenShift Application Runtimes 1

Red Hat CloudForms 4.0

Red Hat Decision Manager 7.0 Migrating from Red Hat JBoss BRMS 6.4 to Red Hat Decision Manager 7.0

Red Hat JBoss BRMS 6.4

Red Hat CloudForms 4.6

Red Hat Development Suite 2.2

Red Hat Developer Studio 12.0

Red Hat JBoss BRMS 6.1

Red Hat Enterprise Linux 7 Getting Started with Cockpit

Red Hat Mobile Application Platform Hosted 3

Red Hat Decision Manager 7.0 Designing a decision service using guided rule templates

Red Hat CloudForms 4.6

Red Hat Certified Cloud and Service Provider Certification 1.0

Red Hat JBoss Data Virtualization 6.4 Quick Starts Guide

Red Hat Fuse 7.2 Fuse Online Sample Integration Tutorials

Red Hat Ceph Storage Release Notes

Red Hat Enterprise Linux Atomic Host 7 Getting Started with Cockpit

Red Hat OpenStack Platform 10 Product Guide

Red Hat JBoss BPM Suite 6.4

Red Hat JBoss Developer Studio 11.3

Red Hat OpenStack Platform 13

Red Hat Ceph Storage 3

Transcription:

Red Hat Enterprise Virtualization 3.6 Hardware Considerations for Implementing SR-IOV Hardware considerations for implementing SR-IOV with Red Hat Enterprise Virtualization Last Updated: 2017-09-27

Red Hat Enterprise Virtualization 3.6 Hardware Considerations for Implementing SR-IOV Hardware considerations for implementing SR-IOV with Red Hat Enterprise Virtualization Red Hat Enterprise Virtualization Documentation Team Red Hat Customer Content Services rhev-docs@redhat.com

Legal Notice Copyright 2017 Red Hat, Inc. The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. Linux is the registered trademark of Linus Torvalds in the United States and other countries. Java is a registered trademark of Oracle and/or its affiliates. XFS is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries. MySQL is a registered trademark of MySQL AB in the United States, the European Union and other countries. Node.js is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project. The OpenStack Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community. All other trademarks are the property of their respective owners. Abstract This guide outlines hardware considerations for implementing SR-IOV with Red Hat Enterprise Linux, and for device assignment with Red Hat Enterprise Virtualization.

Table of Contents Table of Contents. 1.. INTRODUCTION........................................................................................................... 2. 1.1. Summary of Hardware Considerations for SR-IOV 2. 2... ADDITIONAL.............. HARDWARE............. CONSIDERATIONS................... FOR..... USING....... DEVICE......... ASSIGNMENT....................................... 2. 2.1. Summary of Hardware Considerations for Device Assignment 3. A... REVISION........... HISTORY............................................................................................... 4. 1

Red Hat Enterprise Virtualization 3.6 Hardware Considerations for Implementing SR-IOV 1. INTRODUCTION Single Root I/O Virtualization (SR-IOV) is a hardware reference that enables a single PCI Express (PCIe) endpoint to be used as multiple separate devices. This is achieved through the introduction of two PCIe functions: Physical Functions (PFs) and Virtual Functions (VFs). Physical functions are traditional PCIe functions that include SR-IOV capability, possessing full configuration and control of the PCIe device, including data movement. Each PCIe device can have between one and eight independent PFs. Virtual functions are lightweight PCIe functions that contain the resources necessary for data movement and a minimized set of configuration resources. Multiple VFs can be created on each PF and each PF can support a different amount of VFs. The total number of VFs allowed is dependent on the PCIe device vendor, and is different between devices. The PCIe specification supports greater numbers of VFs through the implementation of Alternative Routing ID Interpretation (ARI), which reinterprets the device number field in the PCIe header allowing for more than eight functions. This translation relies on both the PCIe device and the port immediately upstream of the device, whether root port or switch, supporting ARI. The system firmware (BIOS or UEFI) allocates resources, including memory, I/O port apertures, and PCIe bus number ranges, for the PCIe topology. As such, SR-IOV must be supported and enabled by the firmware in order to allocate sufficient resources. 1.1. Summary of Hardware Considerations for SR-IOV Firmware (BIOS or UEFI) must support SR-IOV. Check if the extension is enabled by default. If not, enable it manually. This is similar to enabling the virtualization extension (VT-d or AMD-Vi). Refer to vendor manuals for specific details. Root ports, or ports immediately upstream of the PCIe device (such as a PCIe switch), must support ARI. PCIe device must support SR-IOV. Refer to vendor specification and datasheets to confirm that hardware meets these requirements. The lspci -v command can be used to print information for PCI devices already installed on a system. 2. ADDITIONAL HARDWARE CONSIDERATIONS FOR USING DEVICE ASSIGNMENT Device assignment provides the capacity to assign a virtual guest directly to a PCIe device, giving the guest full access and offering near-native performance. Implemented in conjunction with SR-IOV, a virtual guest is directly assigned a VF. In this way, multiple virtual guests can be directly assigned to VFs of a single PCIe device. SR-IOV does not need to be enabled to directly assign virtual machines to PCIe devices, nor is device assignment the only application for creating VFs, however the two features are complementary and there are additional hardware considerations if they are to be used together. 2

1. INTRODUCTION Device assignment requires I/O Memory Management Unit (IOMMU) support in the CPU and firmware. The IOMMU translates between I/O Virtual Addresses (IOVA) and physical memory addresses. This allows the virtual guest to program the device with guest physical addresses, which are then translated to host physical addresses by the IOMMU. IOMMU groups are sets of devices that can be isolated from all other devices in the system. IOMMU groups represent the smallest sets of devices with both IOMMU granularity and isolation from all other IOMMU groups within the system. This allows the IOMMU to distinguish transactions to and from the IOMMU group while restricting direct memory access (DMA) between devices outside of the IOMMU group and the control of the IOMMU. Isolation of transactions between the virtual guest and the virtual functions of the PCIe device is fundamental to device assignment. Access Control Service (ACS) capabilities defined in the PCIe and server specifications are the hardware standard for maintaining isolation within IOMMU groups. Without native ACS, or confirmation otherwise from the hardware vendor, any multifunction device within the IOMMU group risks exposing peer-to-peer DMA between functions occurring outside of the protection of IOMMU, extending the IOMMU group to include functions lacking appropriate isolation. Native ACS support is also recommended for the root ports of the server, otherwise devices installed on these ports will be grouped together. There are two varieties of root ports, processor-based (northbridge) root ports and controller hub-based (southbridge) root ports. As above, if device assignment is used in conjunction with SR-IOV, and virtual guests are being assigned to VFs, then these ports must support both ACS and ARI. Intel s Xeon Processor E5 Family, Xeon Processor E7 Family, and High End Desktop Processors include native ACS support on the processor-based root ports. Intel devices do not typically include native ACS support on controller hub-based root ports, however the Red Hat Enterprise Linux 7.2 kernel includes some flexibility to enable ACS-equivalent isolation on those root ports for X99, X79, and 5-series through 9-series chipsets. Refer to vendor specification for determining processor-based and controller hub-based root ports when installing PCIe devices to ensure the root port supports ACS. In addition, any PCIe switch or bridge within the I/O topology also requires ACS support, otherwise it may extend the IOMMU group. 2.1. Summary of Hardware Considerations for Device Assignment CPU must support IOMMU (for example, VT-d or AMD-Vi). IBM POWER8 supports IOMMU by default. Firmware must support IOMMU. CPU root ports used must support ACS or ACS-equivalent capability. PCIe device must support ACS or ACS-equivalent capability. It is recommended that all PCIe switches and bridges between the PCIe device and the root port should support ACS. For example, if a switch does not support ACS, all devices behind that switch share the same IOMMU group, and can only be assigned to the same virtual machine. Refer to vendor specification and datasheets to confirm that hardware meets these requirements. The lspci -v command can be used to print information for PCI devices already installed on a system. 3

Red Hat Enterprise Virtualization 3.6 Hardware Considerations for Implementing SR-IOV A. REVISION HISTORY Revision 3.6-3 Tue 01 Mar 2016 Red Hat Enterprise Virtualization Documentation Team Initial revision for Red Hat Enterprise Virtualization 3.6 general availability. Revision 3.6-2 Fri 12 Feb 2016 Red Hat Enterprise Virtualization Documentation Team Made minor updates to the section on device assignment. Revision 3.6-1 Tue 9 Feb 2016 Red Hat Enterprise Virtualization Documentation Team Initial creation for the Red Hat Enterprise Virtualization 3.6 release. 4