HYPER-CONVERGED INFRASTRUCTURE (HCI) PLATFORM DEVELOPMENT WITH SMARTNIC-BASED HARDWARE SIMULATION
20230195983 · 2023-06-22
Assignee
Inventors
- Ciel Jinfeng LI (Shanghai, CN)
- Tianhe Li (Shanghai, CN)
- Shufang JI (Shanghai, CN)
- Joan Jun Xiong (Shanghai, CN)
Cpc classification
G06F30/331
PHYSICS
International classification
G06F30/331
PHYSICS
G06F13/12
PHYSICS
Abstract
A platform development system and method in which configuration information for an information handling resource type, e.g., a network interface card, is obtained by accessing a first instance of the resource type. The configuration information includes one or more fixed elements and a corresponding number of variable elements. Configuration information may include attribute-value pairs in which the attribute field of each pair is the fixed part of the configuration information and the corresponding value field is the variable part. A simulation policy, indicative of the fixed part of the configuration information, may then be defined for the resource type of interest. The simulation policy, in conjunction with user-specified values for the variable part of the configuration information, may define configuration information for a second instance of the resource type. A management server simulator may then simulate the second instance of the resource type based on the applicable configuration information.
Claims
1. A platform development method, comprising: obtaining configuration information for an information handling resource type by accessing a first instance of the resource type, wherein the configuration information includes one or more fixed elements and one or more corresponding variable elements; defining a simulation policy for the resource type, wherein the simulation policy is suitable to generate configuration information for a second instance of the resource type based on user-specified values for the variable elements of the configuration information; and providing a management server simulator configured to simulate the second instance in accordance with the user-specified values for the variable elements.
2. The platform development method of claim 1, wherein obtaining the configuration information includes obtaining the information from a baseboard management controller (BMC) communicatively coupled to the first instance of the information handling resource type.
3. The platform development method of claim 1, wherein the information handling resource type comprises one of a plurality of information handling resource types, wherein the plurality of information handling resource types include a network interface card (NIC) type, a storage device type, and a central processing unit (CPU) type.
4. The platform development method of claim 1, wherein the configuration information includes one or more attribute-value pairs, wherein each attribute-value pair includes a name field indicative of a configuration parameter and a value field indicative of a configuration parameter value.
5. The platform development method of claim 4, wherein the name field corresponds to the fixed element and the value field corresponds to the variable element.
6. The platform development method of claim 1, wherein the management server simulator comprises a Redfish simulator configured to provide Redfish services.
7. The platform development method of claim 6, wherein the Redfish simulator includes one or more simulator application programming interfaces (APIs) configured to receive requests from a Redfish client and inject user-specified values for the variable elements into responses provided to the Redfish client.
8. The platform development method of claim 1, wherein the management server simulator is implemented in a SmartNIC.
9. The platform development method of claim 8, wherein the SmartNIC is installed on a physical node and communicatively coupled to a baseboard management controller.
10. An information handling system, comprising: a central processing unit (CPU); one or more storage resources including processor-executable program instructions that, when executed by the CPU, cause the information handling system to perform platform development operations, wherein the operations include: obtaining configuration information for an information handling resource type by accessing a first instance of the resource type, wherein the configuration information includes one or more fixed elements and one or more corresponding variable elements; defining a simulation policy for the resource type, wherein the simulation policy is suitable to generate configuration information for a second instance of the resource type based on user-specified values for the variable elements of the configuration information; and providing a management server simulator configured to simulate the second instance in accordance with the user-specified values for the variable elements.
11. The information handling system of claim 10, wherein obtaining the configuration information includes obtaining the information from a baseboard management controller (BMC) communicatively coupled to the first instance of the information handling resource type.
12. The information handling system of claim 10, wherein the information handling resource type comprises one of a plurality of information handling resource types, wherein the plurality of information handling resource types include a network interface card (NIC) type, a storage device type, and a central processing unit (CPU) type.
13. The information handling system of claim 10, wherein the configuration information includes one or more attribute-value pairs, wherein each attribute-value pair includes a name field indicative of a configuration parameter and a value field indicative of a configuration parameter value.
14. The information handling system of claim 13, wherein the name field corresponds to the fixed element and the value field corresponds to the variable element.
15. The information handling system of claim 10, wherein the management server simulator comprises a Redfish simulator configured to provide Redfish services.
16. The information handling system of claim 15, wherein the Redfish simulator includes one or more simulator application programming interfaces (APIs) configured to receive requests from a Redfish client and inject user-specified values for the variable elements into responses provided to the Redfish client.
17. The information handling system of claim 10, wherein the management server simulator is implemented in a SmartNIC.
18. The information handling system of claim 17, wherein the SmartNIC is installed on a physical node and communicatively coupled to a baseboard management controller.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0011] A more complete understanding of the present embodiments and advantages thereof may be acquired by referring to the following description taken in conjunction with the accompanying drawings, in which like reference numbers indicate like features, and wherein:
[0012]
[0013]
[0014]
[0015]
[0016]
[0017]
DETAILED DESCRIPTION
[0018] Exemplary embodiments and their advantages are best understood by reference to
[0019] For the purposes of this disclosure, an information handling system may include any instrumentality or aggregate of instrumentalities operable to compute, classify, process, transmit, receive, retrieve, originate, switch, store, display, manifest, detect, record, reproduce, handle, or utilize any form of information, intelligence, or data for business, scientific, control, entertainment, or other purposes. For example, an information handling system may be a personal computer, a personal digital assistant (PDA), a consumer electronic device, a network storage device, or any other suitable device and may vary in size, shape, performance, functionality, and price. The information handling system may include memory, one or more processing resources such as a central processing unit (“CPU”), microcontroller, or hardware or software control logic. Additional components of the information handling system may include one or more storage devices, one or more communications ports for communicating with external devices as well as various input/output (“I/O”) devices, such as a keyboard, a mouse, and a video display. The information handling system may also include one or more buses operable to transmit communication between the various hardware components.
[0020] Additionally, an information handling system may include firmware for controlling and/or communicating with, for example, hard drives, network circuitry, memory devices, I/O devices, and other peripheral devices. For example, the hypervisor and/or other components may comprise firmware. As used in this disclosure, firmware includes software embedded in an information handling system component used to perform predefined tasks. Firmware is commonly stored in non-volatile memory, or memory that does not lose stored data upon the loss of power. In certain embodiments, firmware associated with an information handling system component is stored in non-volatile memory that is accessible to one or more information handling system components. In the same or alternative embodiments, firmware associated with an information handling system component is stored in non-volatile memory that is dedicated to and comprises part of that component.
[0021] For the purposes of this disclosure, computer-readable media may include any instrumentality or aggregation of instrumentalities that may retain data and/or instructions for a period of time. Computer-readable media may include, without limitation, storage media such as a direct access storage device (e.g., a hard disk drive or floppy disk), a sequential access storage device (e.g., a tape disk drive), compact disk, CD-ROM, DVD, random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), and/or flash memory; as well as communications media such as wires, optical fibers, microwaves, radio waves, and other electromagnetic and/or optical carriers; and/or any combination of the foregoing.
[0022] For the purposes of this disclosure, information handling resources may broadly refer to any component system, device or apparatus of an information handling system, including without limitation processors, service processors, basic input/output systems (BIOSs), buses, memories, I/O devices and/or interfaces, storage resources, network interfaces, motherboards, and/or any other components and/or elements of an information handling system.
[0023] In the following description, details are set forth by way of example to facilitate discussion of the disclosed subject matter. It should be apparent to a person of ordinary skill in the field, however, that the disclosed embodiments are exemplary and not exhaustive of all possible embodiments.
[0024] Throughout this disclosure, a hyphenated form of a reference numeral refers to a specific instance of an element and the un-hyphenated form of the reference numeral refers to the element generically. Thus, for example, “device 12-1” refers to an instance of a device class, which may be referred to collectively as “devices 12” and any one of which may be referred to generically as “a device 12”.
[0025] As used herein, when two or more elements are referred to as “coupled” to one another, such term indicates that such two or more elements are in electronic communication, mechanical communication, including thermal and fluidic communication, thermal, communication or mechanical communication, as applicable, whether connected indirectly or directly, with or without intervening elements.
[0026] Before describing disclosed features for monitoring and managing event messages in a distributed computing environment, an exemplary HCI platform suitable for implementing these features is provided. Referring now to the drawings,
[0027] The HCI platform 101 illustrated in
[0028] An HCI cluster 106, and the one or more HCI nodes 110 within the cluster, may represent or correspond to an entire application or to one or more of a plurality of micro services that implement the application. As an example, an HCI cluster 106 may be dedicated to a specific micro service in which multiple HCI nodes 110 provide redundancy and support high availability. In another example, the HCI nodes 110 within HCI cluster 106 include one or more nodes corresponding to each micro service associated with a particular application.
[0029] The HCI cluster 106-1 illustrated in
[0030] PRM 114 may be implemented with one or more servers, each of which may correspond to a physical server in a data center, a cloud-based virtual server, or a combination thereof. PRM 114 may be communicatively coupled to all HCI nodes 110 across all HCI clusters 106 in HCI platform 101 and to platform administrator 102. PRM 114 may include a resource utilization monitoring (RUM) service or feature with functionality to monitor resource utilization parameters (RUPs) associated with HCI platform 101.
[0031]
[0032] In some embodiments, RUA 202 is tasked with monitoring the utilization of virtualization, compute, storage, and/or network resources on HCI node 110. Thus, the node RUA 202 may include functionality to: monitor the utilization of: network resources 204 to obtain network resource utilization parameters (RUPs), compute resources 206 to obtain compute RUPs, virtual machines 210 to obtain virtualization RUPs, storage resources 222 to obtain storage RUPs. RUA 202 may provide some or all RUPs to environment resource monitor (ERM) 226 periodically through pull and/or push mechanisms.
[0033] Referring now to
[0034] Referring now to
[0035] In at least one embodiment, the configuration information includes one or more attribute-value pairs or another similar data structure, each of which includes a fixed element, indicated in the name field, and a variable element, indicated in the value field of the pair. As an illustrative example, configuration information for a NIC type may include a set of three attribute-value pairs identifying a vendor, model, and firmware version of the NIC. Although a NIC's state and configuration may not be fully described by these three parameters, these parameters may represent all NIC configuration information consumer and/or required by higher level programs. Each of the three attribute-value pairs would include information in the appropriate value field, identifying the vendor, make, and firmware version. In this example, the fixed portion of the configuration information includes the information indicated in the name field of each attribute-value pair, i.e., vendor, model, and firmware version, while the variable information is the information included in the value field of each attribute-value pair. An example for a NIC might be Qlogic, Intel, and 20.11.16 where Qlogic is the vendor, Intel is the model, and 20.11.16 indicates the firmware version.
[0036] The method 400 illustrated in
[0037] Thus, the illustrated method 400 provides (operation 406) a management server simulator to simulate a second instance of the resource type in accordance with the resource type's configuration parameters. The management server simulator may identify configuration parameters appropriate for the particular resource type from the fixed parts of configuration information obtained from an existing instance of a resource type, and simulate the presence of a different instance of the resource type and, most beneficially, the presence of a resource type instance that is not available to the platform developer by injecting user-specified information for the variable parts of the configuration information.
[0038] Turning now to
[0039] Redfish simulator server 501 includes and/or exposes one or more Redfish APIs 524. The one or more Redfish APIs 524 may be configured to accept user input indicative of a user-defined hardware configuration, which may be referred to herein as a “mocked” hardware configuration. In it least some embodiments, when a Redfish client 526 accesses Redfish server simulator 501 via Redfish APIs 524, the access is “hooked” by user-defined hardware configuration information 530. Redfish server simulator 501 may be configured to recognize the resource type, e.g., from information included in a request from Redfish client 526, and access a simulation policy 532 for the applicable resource type. The simulation policy for the applicable resource type may identify the fixed part of the configuration information and the Redfish server simulator 501 may then replace variable parts of the configuration with user specified values.
[0040]
[0041] This disclosure encompasses all changes, substitutions, variations, alterations, and modifications to the example embodiments herein that a person having ordinary skill in the art would comprehend. Similarly, where appropriate, the appended claims encompass all changes, substitutions, variations, alterations, and modifications to the example embodiments herein that a person having ordinary skill in the art would comprehend. Moreover, reference in the appended claims to an apparatus or system or a component of an apparatus or system being adapted to, arranged to, capable of, configured to, enabled to, operable to, or operative to perform a particular function encompasses that apparatus, system, or component, whether or not it or that particular function is activated, turned on, or unlocked, as long as that apparatus, system, or component is so adapted, arranged, capable, configured, enabled, operable, or operative.
[0042] All examples and conditional language recited herein are intended for pedagogical objects to aid the reader in understanding the disclosure and the concepts contributed by the inventor to furthering the art, and are construed as being without limitation to such specifically recited examples and conditions. Although embodiments of the present disclosure have been described in detail, it should be understood that various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the disclosure.