Systems and methods for scalable cloud computing by optimally utilizing management controller for host compute processing

In accordance with embodiments of the present disclosure, an information handling system comprising my include a host system comprising a host system processor, and a management controller communicatively coupled to the host system processor and configured to provide management of the information handling system via management traffic communicated between the management controller and a network external to the information handling system and allocate hardware processing resources of the management controller in order to provide compute processing support for the host system processor.

TECHNICAL FIELD

The present disclosure relates in general to information handling systems, and more particularly to methods and systems for enabling scalable cloud computing by utilizing a management controller for host compute processing.

BACKGROUND

Cloud computing is seeing an increase in users. Cloud computing may be broadly defined as a type of computing (often Internet-based) that provides shared information handling system processing resources and data to information handling systems and other devices on demand. It is a model for enabling ubiquitous, on-demand access to a shared pool of configurable information handling system resources (e.g., information handling system networks, servers, storage, applications and services), which can be rapidly provisioned and released, often with minimal management effort. Cloud computing and storage solutions provide users and enterprises with various capabilities to store and process their data in either privately-owned, or third-party data centers that may be located far from the user, ranging in distance from across a city to across the world.

Two of the most important features of cloud computing implementations are scalability and elasticity. Scalability is an ability of a system to increase its workload on its existing hardware resources, while elasticity is the ability of a system to increase its workload on existing hardware resources and additional hardware resources which may be dynamically added on demand. Thus, cloud computing offers users and enterprises the opportunity to scale their computing resources whenever they deem it necessary. This may be done by either increasing or decreasing resources to meet a demand, allowing a user or enterprise to pay only for the resources they are utilizing.

Cloud computing is often highly dependent on a host system processor which utilizes a significant number of processor cycles, which may also lead to slower performance for other applications in the system or degradation of system performance, or lead to increased spending for additional resources.

SUMMARY

In accordance with the teachings of the present disclosure, the disadvantages and problems associated with existing approaches for cloud computing may be reduced or eliminated.

In accordance with embodiments of the present disclosure, an information handling system comprising my include a host system comprising a host system processor, and a management controller communicatively coupled to the host system processor and configured to provide management of the information handling system via management traffic communicated between the management controller and a network external to the information handling system and allocate hardware processing resources of the management controller in order to provide compute processing support for the host system processor.

In accordance with these and other embodiments of the present disclosure, a method may include, in an information handling system comprising a host system having a host system processor and a management controller communicatively coupled to the host system processor and configured to provide management of the information handling system via management traffic communicated between the management controller and a network external to the information handling system, allocating hardware processing resources of the management controller in order to provide compute processing support for the host system processor.

In accordance with these and other embodiments of the present disclosure, a management controller configured to be disposed in an information handling system and communicatively coupled to a host system processor of a host system of the information handling system may be further configured to provide management of the information handling system via management traffic communicated between the management controller and a network external to the information handling system and allocate hardware processing resources of the management controller in order to provide compute processing support for the host system processor.

DETAILED DESCRIPTION

Preferred embodiments and their advantages are best understood by reference toFIGS. 1 and 2, wherein like numbers are used to indicate like and corresponding parts.

FIG. 1illustrates a block diagram of an example information handling system102, in accordance with embodiments of the present disclosure. In some embodiments, information handling system102may comprise a personal computer. In some embodiments, information handling system102may comprise or be an integral part of a server. In other embodiments, information handling system102may comprise a portable information handling system (e.g., a laptop, notebook, tablet, handheld, smart phone, personal digital assistant, etc.). As depicted inFIG. 1, information handling system102may include a processor103, a memory104communicatively coupled to processor103, a network interface108communicatively coupled to processor103, a management controller112communicatively coupled to processor103, and a shared memory114communicatively coupled to processor103and management controller112. In operation, processor103, memory104, and network interface108may comprise at least a portion of a host system98of information handling system102.

As shown inFIG. 1, memory104may have stored thereon an operating system106. Operating system106may comprise any program of executable instructions, or aggregation of programs of executable instructions, configured to manage and/or control the allocation and usage of hardware resources such as memory, processor time, disk space, and input and output devices, and provide an interface between such hardware resources and application programs hosted by operating system106. In addition, operating system106may include all or a portion of a network stack for network communication via a network interface (e.g., network interface108for communication over a data network). Active portions of operating system106may be transferred to memory104for execution by processor103. Although operating system106is shown inFIG. 1as stored in memory104, in some embodiments operating system106may be stored in storage media accessible to processor103, and active portions of operating system106may be transferred from such storage media to memory104for execution by processor103.

Network interface108may comprise any suitable system, apparatus, or device operable to serve as an interface between information handling system102and one or more other information handling systems via an in-band management network. Network interface108may enable information handling system102to communicate using any suitable transmission protocol and/or standard. In these and other embodiments, network interface108may comprise a network interface card, or “NIC.” In some embodiments, network interface108may comprise a 10 gigabit Ethernet network interface. In these and other embodiments, network interface108may be enabled as a local area network (LAN)-on-motherboard (LOM) card. In these and other embodiments, processor103and network interface108may be coupled via any suitable interface, including without limitation a Peripheral Component Interconnect Express (PCIe) bus/interface.

Management controller112may be configured to provide management facilities for management of information handling system102. Such management may be made by management controller112even if information handling system102is powered off or powered to a standby state. Management controller112may include a processor113, a coprocessor116communicatively coupled to processor113, and a management network interface118separate from and physically isolated from data network interface108. In certain embodiments, management controller112may include or may be an integral part of a baseboard management controller (BMC) or a remote access controller (e.g., a Dell Remote Access Controller or Integrated Dell Remote Access Controller). In these and other embodiments, management controller112may be referred to as a service processor or access controller.

Processor113may include any system, device, or apparatus configured to interpret and/or execute program instructions and/or process data, and may include, without limitation, a microprocessor, microcontroller, digital signal processor (DSP), application specific integrated circuit (ASIC), or any other digital or analog circuitry configured to interpret and/or execute program instructions and/or process data. In some embodiments, processor113may interpret and/or execute program instructions and/or process data stored in computer-readable media of information handling system102or management controller112. As shown inFIG. 1, processor113may be communicatively coupled to processor103. Although such coupling may be via a Universal Serial Bus (USB), System Management Bus (SMBus), and/or one or more other communications channels, communication via a general purpose input/output (GPIO) channel is explicitly depicted inFIG. 1.

As shown inFIG. 1, processor113may comprise a multi-core processor comprising a plurality of processing cores126. Each core126may comprise a single independent processing unit configured to read and execute program instructions. The multiple cores126may run multiple instructions at the same time, which may increase overall speed for programs amenable to parallel computing by multiple cores. In some embodiments, cores126may be integrated onto a single integrated circuit die. In other embodiments, cores126may be implemented using multiple dies in a single chip package.

Coprocessor116may comprise a special-purpose processor used to supplement functionality of processor113. For example, in some embodiments, coprocessor116may comprise an input/output (I/O) processor for providing I/O operations with respect to other devices. In these and other embodiments, operations performed by coprocessor116may include floating point arithmetic, graphics acceleration, signal processing, string processing, and/or encryption. Offloading of specialized tasks from processor113to coprocessor116may accelerate performance.

Shared memory114may be communicatively coupled to processor113and management controller112and may include any system, device, or apparatus configured to retain program instructions and/or data for a period of time (e.g., computer-readable media). Shared memory114may include RAM, EEPROM, a PCMCIA card, flash memory, magnetic storage, opto-magnetic storage, or any suitable selection and/or array of volatile or non-volatile memory that retains data after power to information handling system102is turned off.

As shown inFIG. 1, shared memory114may include a command buffer120, data buffer122, and a processed data buffer124. Command buffer120may comprise a portion of shared memory114for storing commands or instructions communicated from processor103for retrieval and execution by management controller112. Data buffer122may comprise a portion of shared memory114for storing data communicated from processor103for retrieval and use by management controller112in executing commands and instructions communicated from processor113. Processed data buffer124may comprise a portion of shared memory114for storing data communicated from management controller112for retrieval and use by processor112, wherein such data stored to processed data buffer124may be data generated by management controller112in connection with commands and instructions communicated from processor113.

Although the foregoing contemplates use of shared memory114to facilitate communication between host system98and management controller112, in some embodiments, techniques other than traditional shared memory communication may be employed for communication between host system98and management controller112via shared memory114. For example, in some embodiments, an intelligent gateway may execute as a utility on operating system106of host system98. Using such an intelligent gateway, commands and data communicated via shared memory114may include specific headers and/or payloads for dynamically switching among the various modes for compute processing of by management processor112, as such modes are described below.

In operation, as described in greater detail below, management controller112may operate in a plurality of support modes for use as a supplementary compute processor to host system processor103. When operating in a mode in which management controller112supports supplementary compute processing of processor103, processor103may issue commands to management controller112by writing commands to command buffer120and data associated with such command to data buffer122, and issuing an interrupt to management controller112(e.g., via the GPIO bus shown inFIG. 1). In response to receiving the interrupt, management controller112may retrieve commands from command buffer120and associated data from data buffer122, and execute the instructions on one or more cores126and/or coprocessor116. After completing a command, management controller112may write any resulting data to processed data buffer124and issue an interrupt to processor103. In response to receiving the interrupt, processor103may retrieve data from data buffer124, and perform any other additional processing required.

As mentioned above, management controller112may operate at any given time in one or a plurality of compute support modes. For instance, in a full server management mode, all management features of management controller112may be enabled and management controller112may not provide any compute support for processor103. As another example, in a dual mode, some management features of management controller112may be enabled and management controller112may provide some compute support for processor103. As a further example, in a full compute support mode, only an absolute minimum of management features of management controller112may be enabled and management controller112may provide a maximum level of compute support for processor103.

In some embodiments, management controller112may have multiple dual modes. For example, in a first dual mode, priority may be given to compute processing support of processor103such that only a small amount of management features of management controller112may be enabled and management controller112may provide a high level of compute support for processor103. For instance, in such a first dual mode, cores126and coprocessor116of management controller112may be mainly allocated to compute processing support of processor103while only a small number of management features of management controller112are carried out with a small process or thread executing on processor113.

As another example, in a second dual mode, equal priority may be given to management features of management controller112and compute support for processor103. For instance, in such a second dual mode, one core126may be allocated to management features of management controller112while another core126and coprocessor116may be allocated to compute processing support of processor103.

As a further example, in a third dual mode, priority may be given to management features of management controller112such that only a small portion of the compute resources of management controller112are allocated to compute support for processor103, and a large portion of the management features are enabled.

In operation, management controller112may also be switched among modes responsive to processing demands of information handling system102, such that higher priority is given by management controller112to compute processing support of processor103for higher processing demands, and lower priority is given by management controller112to compute processing support of processor103for lower processing demands.

FIG. 2illustrates system200comprising multiple information handling systems102for workload distribution across a pool of management controllers112in system200, in accordance with embodiments of the present disclosure. InFIG. 2, an inter-management controller network206(e.g., implemented in Ethernet or any other suitable interface) may couple management controllers112of system200to one another. Accordingly, the compute processing support described above with respect toFIG. 1may be extended such that compute support processing for a single host system98may be distributed among all management controllers112of coupled information handling systems102. To enable such distributed compute support processing, an embedded hypervisor204may execute on each management controller112(e.g., on processor113), each embedded hypervisor204managing one or more virtual machines202(e.g., also executing on processor113), wherein each virtual machine202carries out compute processing support for a host system98local to the information handling system102on which the virtual machine202is instantiated, or for a host system98remote to the information handling system102on which the virtual machine202is instantiated.

Advantageously, the solutions described herein may provide efficient utilization of cloud server without increasing hardware requirement of an existing cloud, instead using an individual management controller or a group of management controllers as additional compute resources dynamically depending upon a workload.