The present invention relates generally to the data processing field, and more particularly, relates to a method, system and computer program product for implementing dynamic virtualization of a Single Root Input/Output Virtualization (SRIOV) capable Serial Attached Small-Computer System-Interface (SAS) adapter.
A low cost enterprise class storage environment is characterized by the use of Host Bus Adapters (HBAs) to directly attach Storage devices using the Serial Attached SCSI (SAS) or Serial ATA (Advanced Technology Attachment) (SATA) protocols. As technology has become denser, the number of storage devices that can be attached to a single HBA has grown from single digits to the order of hundreds.
At the same time the physical size of Host System Central Electronics Complexes (CECs) has decreased, the processor horsepower has increased, and the number of System Bus slots available for HBAs has been reduced. This increase in compute density has spawned the growth of system partitioning in which multiple system images run independently on the same physical system without knowing about each other.
Traditional HBAs have provided Application Programming Interfaces (APIs), or views seen by a System Image's I/O Driver Software Stack, that show a single, monolithic view of the HBA and all logical and physical resources associated with that HBA. This necessitates a minimum of one physical HBA for each System Image.
Single root input/output (IO) virtualization (SRIOV) is a PCI standard, providing an adapter technology building block for I/O virtualization within the PCI-Express (PCIe) industry. Single root input/output (IO) virtualization (SRIOV) was developed by the industry PCI Special Interest Group as the basis of splitting a physical HBA into multiple virtual HBAs. The PCI technology only deals with describing the host bus level access to one Physical Function (PF) and multiple Virtual Functions (VFs). It does not deal with any HBA APIs or Models and as such is a stepping stone, but not a complete solution. This SRIOV technology is an emerging technology in this storage space. The SAS architecture does not have any explicit virtualization models.
A need exists for an effective mechanism to enable dynamic virtualization of a Single Root Input/Output Virtualization (SRIOV) capable Serial Attached Small-Computer System-Interface (SAS) adapter. It is desirable that such mechanism allows the single adapter to be shared by multiple System Images. It is desirable that such mechanism enables relatively the same performance level for each Virtual Function that a dedicated HBA would have for its single host. It is desirable that such mechanism preserves the existing APIs to the System Image's I/O Driver Software Stacks to avoid the development cost of rewriting numerous Driver stacks for different operating systems. It is desirable that such mechanism provides resource/function isolation and hiding on a per Virtual Function basis.
Principal aspects of the present invention are to provide a method, system and computer program product for implementing dynamic virtualization of a Single Root Input/Output Virtualization (SRIOV) capable Serial Attached SCSI (SAS) adapter. Other important aspects of the present invention are to provide such method, system and computer program product substantially without negative effects and that overcome many of the disadvantages of prior art arrangements.
In brief, a method, system and computer program product are provided for implementing dynamic virtualization of a Single Root Input/Output Virtualization (SRIOV) capable Serial Attached SCSI (SAS) adapter. The SRIOV SAS adapter includes a plurality of virtual functions (VFs). Each individual Host Bus Adapter (HBA) resource is enabled to be explicitly assigned to a virtual function (VF); and each VF being enabled to be assigned to a system partition. Multiple VFs are enabled to be assigned to a single system partition.
In accordance with features of the invention, system partition read/write performance for each VF is substantially equivalent to performance achieved for a dedicated HBA.
In accordance with features of the invention, a single physical HBA resource optionally is subdivided into multiple virtual resources, then each of the subdivided multiple virtual resources optionally is assigned to a different system partition.
In accordance with features of the invention, configuration and management Application Programming Interfaces (APIs) are disabled on the virtual functions (VFs), and only are enabled on a Physical Function of the SRIOV SAS adapter.
In accordance with features of the invention, the assignment of Host Bus Adapter (HBA) resources to VFs is determined by a Resource Manager and the assignments are communicated from the Resource Manager to the SRIOV SAS adapter using the Physical Function of the SRIOV SAS adapter.
In accordance with features of the invention, commands to Read or Write data are sent directly from the system partition to the HBA resource via the respective VF without any intermediary.
In accordance with features of the invention, a host or system partition is prevented from issuing any commands to the HBA resource that could adversely affect another host partition.
The present invention together with the above and other objects and advantages may best be understood from the following detailed description of the preferred embodiments of the invention illustrated in the drawings, wherein:
In the following detailed description of embodiments of the invention, reference is made to the accompanying drawings, which illustrate example embodiments by which the invention may be practiced. It is to be understood that other embodiments may be utilized and structural changes may be made without departing from the scope of the invention.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
In accordance with features of the invention, a method, system and computer program product are provided for implementing dynamic virtualization of a Single Root Input/Output Virtualization (SRIOV) capable Serial Attached SCSI (SAS) adapter. The SRIOV SAS adapter includes a plurality of virtual functions (VFs). Each individual Host Bus Adapter (HBA) resource is explicitly assigned to a virtual function (VF); and each VF being assigned to a system partition. Multiple VFs optionally are assigned to a single system partition. A system or host partition is prevented from issuing any commands to the SRIOV SAS adapter that could adversely affect another host partition.
Having reference now to the drawings, in
Computer system 100 is partitioned into a number of logical partitions (LPs) 104, 106, 108. Computer system 100 includes a plurality of processors 1-N, 110, or central processor units (CPUs) 110 and a hypervisor 112. Each logical partition LPs 104, 106, 108 represents a division of resources in the system and operates as an independent logical system. An example of logical partitions 104, 106, 108 is the partitioning of the multiprocessor computer system 100 into multiple independent servers, for example, each with one or more processors, main storage, and I/O devices.
Computer system 100 includes the Single Root Input/Output Virtualization (SRIOV) SAS adapter 102. The SRIOV SAS adapter includes a plurality of virtual functions (VFs) 114, 116, 118, 120.
The SRIOV SAS adapter 102 has an I/O adapter virtualization architecture that allows the single SRIOV adapter to be concurrently shared across many different logical partitions LPs 104, 106, 108.
Referring to
As shown
In accordance with features of the invention, each individual HBA resource or each of the LRs 124, 126128, 130, for example, a RAID protected volume, can be explicitly assigned to a Virtual Function of the illustrated virtual functions VFs 114, 116, 118, 120. Multiple HBA resources or one or more LRs 124, 126128, 130 can be explicitly assigned to a single Virtual Function of the illustrated virtual functions VFs 114, 116, 118, 120. Each of the illustrated virtual functions VFs 114, 116, 118, 120 can be assigned to a system partition of the illustrated LPs 104, 106, 108. Multiple virtual functions VFs 114, 116, 118, 120 can be assigned to a single system partition of the illustrated LPs 104, 106, 108.
As shown
Computer system 100 is shown in simplified form sufficient for understanding the present invention. The illustrated computer system 100 is not intended to imply architectural or functional limitations. The present invention can be used with various hardware implementations and systems and various other internal hardware devices.
As shown
Initially no logical resources LRs 124, 126128, 130 are assigned to any of the virtual functions VFs 114, 116, 118, 120. Assignment of LRs to VFs is determined by the resource manager 142 in accordance with preferred embodiments. These assignments are communicated from the resource manager 142 to the SRIOV SAS adapter 102 using the physical function PF 122. Note that this communication method is in-band and does not require a separate, management console physical port. This is an improvement over most if not all of the known Storage Area Network (SAN) arrangements that require a separate Ethernet port for a conventional management console.
The partition supervisor 140 initially discovers the SRIOV SAS adapter 102 and queries the adapter through the PF 122 to determine the capabilities, such as number of VFs supported. The partition supervisor 140 communicates this information to the resource manager 142. Information about devices connected to the SRIOV SAS adapter 102 and the LRs are also communicated via this same in-band path. The resource manager 142 then provides information via a User Interface (UI), such as a GUI, CLI, API or otherwise.
In accordance with features of the invention, in a preferred implementation of system 100 the resource manager 142 would run an assignment process every time the adapter 102 is reset and the resource manager 142 persistently remembers the assignments. This feature of the invention eliminates any Host Assignment policy from the SRIOV SAS adapter 102 and centralizes it in the resource manager 142. Alternatively, the SRIOV SAS adapter 102 could be implemented to persistently remember the assignments; however, this has the drawback of potentially being out of sync with the system 100 due to any maintenance or reconfiguration actions.
A user or other entity can then manage the logical resources LRs 124, 126128, 130 and assign LRs to VFs of the virtual functions VFs 114, 116, 118, 120 via the resource manager 142. The assignments configuration is communicated to the partition supervisor 140 then to the SRIOV SAS adapter 102 via the physical function PF 122. This can be accomplished via a mechanism similar to that used to assign physical adapters to the LPs today. For example, the resources assigned are storage resources, such as a volume set, instead of a physical adapter but the information about them is persisted in a similar fashion. For example, the WWID (world wide unique ID) of the volume set is used as identifier to persistently and consistently identify the specific storage resources.
In accordance with features of the invention, in a preferred implementation of system 100 the APIs provided by a dedicated HBA are split. The configuration and management APIs are only enabled on the physical function PF 122. Read/Write APIs are enabled on the PF until the resource is assigned to a VF by the Resource Manager 142. Read/Write APIs are enabled only on respective VFs 114, 116, 118, 120 after they are assigned to the VFs. Query APIs to the PF 122 return information about the entire SRIOV SAS adapter 102. Query APIs to the VF return only the information about LRs assigned to the VF. Normal HBA and physical device maintenance actions are not available to the VF and are only made available to the PF, hiding isolation which prevents one VF from corrupting the PF or any other VF.
An LP, such as logical partitions LPs 104, 106, 108, continues to discover the logical resources LRs 124, 126128, 130 assigned to it by using an existing Query API to the respective one or more of the virtual functions VFs 114, 116, 118, 120 it owns. Once a particular LP of logical partitions LPs 104, 106, 108 has discovered its logical resources LRs 124, 126128, 130, commands to Read or Write data are sent directly from the LP to the LR via the respective virtual functions VFs 114, 116, 118, 120 without any intermediary. Data is transferred directly to/from the LR/VF from/to the LP buffers without any intermediary. This allows Read/Write performance equivalent to a conventional dedicated HBA. This also allows the investment in existing device drivers to be preserved, as the interfaces are the same.
Referring to
System 200 includes a plurality of operating system (OS) partitions 202, each OS partition 202 including a respective user 204 and a VF driver 206 associated with a respective virtual function VR of respective VFs 114, 116, 118, 120. System 200 includes a hypervisor 112 or other virtualization intermediary, including a configuration interface 210 and a physical function driver 212 associated with the physical function PF 122 of the SRIOV SAS adapter 102. For example, as shown in
System 200 is shown in simplified form sufficient for understanding the present invention. The illustrated system 200 is not intended to imply architectural or functional limitations. The present invention can be used with various hardware implementations and systems and various other internal hardware devices.
Referring to
In
Referring now to
Referring now to
A sequence of program instructions or a logical assembly of one or more interrelated modules defined by the recorded program means 505, 506, 508, and 510, direct the computer system 500 for implementing dynamic virtualization for an I/O adapter, such as a Single Root Input/Output Virtualization (SRIOV) adapter of a preferred embodiment.
While the present invention has been described with reference to the details of the embodiments of the invention shown in the drawing, these details are not intended to limit the scope of the invention as claimed in the appended claims.
This application is a continuation application of Ser. No. 14/087,330 filed Nov. 22, 2013.
Number | Date | Country | |
---|---|---|---|
Parent | 14087330 | Nov 2013 | US |
Child | 14840351 | US |