Managing power budget of multiple computing node clusters in a computing rack system

Managing power consumption of multiple computing node clusters of a computing rack system is described. An example system may include a plurality of computing node clusters each comprising a respective plurality of computing nodes, and a power management system. The power management system is configured to determine respective power budget rules associated with each of the plurality of computing node clusters based on a maximum power consumption limit, and to provide the respective power budget rules to an associated one of the plurality of computing node clusters. The power management system is further configured to receive respective power consumption data from each of the plurality of computing node clusters and to adjust the respective power budget rules associated with at least one of the plurality of computing node clusters based on the respective power consumption data associated with each of the plurality of computing node clusters.

TECHNICAL FIELD

This disclosure is related to power management systems. Examples of managing power consumption of multiple computing nodes in a hyper-converged computing system are described.

BACKGROUND

In hyper-converged computing systems, performance may be affected by available power available power. In some examples, power is provided to a server rack via one or more uninterrupted power system (UPS). Each UPS operates according to a power limit (e.g., controlled by a circuit breaker) such that total power consumption by the server rack is limited by power limit of the UPS. Because a server rack may have a variable number of operational computing node clusters, with consumption by each computing node cluster dynamically may dynamically change based on changes in operation. Due to this variability, operators may over-allocate the server rack power budget to improve performance, save rack room cost, equipment lease cost, etc., based on an assumption that all of the computing node clusters installed in the server rack will not reach the maximum power consumption simultaneously. However, in some examples, a power outage may occur when the power consumption of the server rack exceeds limits of a circuit breaker installed in the power distribution system. Power outages may prove expensive and limiting power consumption of a computing node cluster when additional power is available may reduce efficiency of the computing node cluster.

DETAILED DESCRIPTIONS

Certain details are set forth herein to provide an understanding of described embodiments of technology. However, other examples may be practiced without various of these particular details to avoid unnecessarily obscuring the described embodiments. Other embodiments may be utilized, and other changes may be made, without departing from the spirit or scope of the subject matter presented here.

FIG. 1is a block diagram of a computing rack system100in accordance with some embodiments of the disclosure. The computing rack system100may include a power management system104, a power supply unit (PSU)106, computing node clusters110(1)-(N) and power distribution units120(1)-(N). Each of the computing node clusters110(1)-(N) may include respective computing nodes111(11)-(Nk).

Each of the computing nodes111(11)-(Nk) may include a server, such as a web server, a database server, or an application server. Each of the computing nodes111(11)-(Nk) may also include any computing device, for example, a server on the cloud, or a virtual machine. Each of the computing nodes111(11)-(Nk) may be connected to respective PDUs120(1)-(N) to receive power therefrom. While each of the computing nodes clusters110(1)-(N) is shown with a common number of computing nodes111(11)-(Nk), the number of computing nodes111(11)-(Nk) may vary among the computing node clusters110(1)-(N). The PDU(s)120(1)-(N) may be connected to the PSU106to receive supplied. The PSU106may receive power from a UBS or some other external power source. In some scenarios, each of the PDU(s)120(1)-(N) may have a maximum power consumption limit. The power limit may be defined in terms of watts, or may be derived from a maximum current, such as 24 amps. In some examples, the computing rack system100may implement power supply redundancy such that each of the PDU(s)120(1)-(N) includes more than one separate PDU to allow a respective computing cluster110(1)-(N) to remain operational in the event of failure of one of the redundant PDUs. In examples with redundant PDUs, each PDU may be capable of some level of power to the respective computing node cluster110(1)-(N) that is less than a maximum power possible consumption of the respective computing node cluster110(1)-(N). For example, an individual PDU in a redundant PDU system may be capable of providing 50%-75% of the maximum power possible consumption of the respective computing node cluster110(1)-(N).

The power management system104may communicate with the computing node clusters120(1)-(N) and the PSU106via a wired or wireless network. The power management system104may receive power consumption data from each of the computing node clusters120(1)-(N) and may provide respective power budget limits to each of the computing node clusters120(1)-(N). In some examples, the power management system104may be hosted on one of the computing nodes111(11)-(Nk) as a service or application and may communicate over a local area network (LAN), an intranet network, or combinations thereof. In other examples, the power management system104may be hosted on a remote computing node and may be connected to the computing rack system100via a LAN, a wide area network (WAN), intranet, Internet, or combinations thereof. For example, one of the computing nodes111(11)-(Nk) may include a master controller virtual machine (CVM) or hypervisor that acts as an administrator for the computing rack system100. In some examples, the power management system104may also receive power consumption data from the106and/or from the PDU(s)120(1)-(N).

In operation, the computing node clusters120(1)-(N) may be operating contemporaneously and independently within the computing rack system100. The computing rack system100may be configured to provide power to the computing node clusters120(1)-(N) via the PSU and the PDU(s)120(1)-(N). The PSU106may have an aggregate power consumption limit and each of the PDU(s)120(1)-(N) may have a respective maximum power limit. The power limits of the PSU106and the PDU(s)120(1)-(N) may be controlled or set via a circuit breaker, software, or some other control mechanism. The computing rack system100may be designed such that the aggregate power consumption limit of the PSU106is less than a sum of the power consumption limits of all of the PDU(s)120(1)-(N) based on an assumption that all of the computing node clusters110(1)-(N) would not be operating at full capacity contemporaneously.

The power management system104may receive power consumption data from each of the computing node clusters110(1)-(N) and manage power consumption of the computing node clusters110(1)-(N) based on the power consumption data. The management may include setting power budget rules for each of the computing nodes111(11)-(Nk). A power budget rule may define a maximum amount of power allocated to the respective computing node111(11)-(Nk) at a particular time. The power budget rules may be defined in terms of a maximum current of the computing node, such as 10 amps, or in terms of wattage, such as 1000 watts. In some examples, the power budget rules may be represented by one or more data blocks that are stored in a memory or storage of the respective computing node111(11)-(Nk). For example, a power budget rule that has a power budget of 1000 watts may be represented by a 16-bit data block. The individual computing nodes111(11)-(Nk) may use the respective power budget rules to control internal configuration and operation of the respective computing node, such as processor speeds, memory speeds, network throughput, active applications or services, etc. For example, each of the computing nodes111(11)-(Nk) may host a power management service that is configured to receive and store a respective power budget rule from the power management system104. In some examples, the aggregate of all of the power budget rule limits of the computing nodes111(11)-(Nk) at a given time may exceed the maximum power consumption limit of the106based on an assumption that all of the computing nodes111(11)-(Nk) would not be operating at full capacity contemporaneously.

In some examples, the power management system104may dynamically adjust the respective power budget rules for the computing nodes111(11)-(Nk) of the computing node clusters110(1)-(N) based on instantaneous consumption changes among the computing node clusters110(1)-(N). In some examples, the power management system104may dynamically adjust the respective power budget rules for the computing nodes111(11)-(Nk) of the computing node clusters110(1)-(N) based on historical consumption patterns among the computing node clusters110(1)-(N), such as based on a time of day or day of the week or some other criteria. In some examples, the power management system104may dynamically adjust the respective power budget rules for the computing nodes111(11)-(Nk) of the computing node clusters110(1)-(N) based on a cluster priority. Cluster priority may be time based, day based, fixed, or based on some other criteria. In some examples, the power management system104may dynamically adjust the respective power budget limits for the computing nodes111(11)-(Nk) of the computing node clusters110(1)-(N) in response to a failure of one of the PDU(s)120(1)-(N). In some scenarios, the power budget rules for the computing nodes111(11)-(Nk) of the computing node clusters110(1)-(N) may correspond to the power consumption limit of the corresponding PDU(s)120(1)-(N). For example, if the computing node cluster110(1) has two associated PDUs120(1), each with a power consumption limit of 24 amps, the aggregate power budget limits for the computing nodes111(11)-(1k) may be set to 48 amps when both PDUs are active and 24 amps when only one PDU is active. In some examples, the aggregate power budget limits for the computing nodes111(11)-(1k) may be greater than 48 amps or 24 amps in scenarios where it is assumed that the computing nodes111(11)-(1k) would not operate at full capacity contemporaneously. The power management system104may also adjust power budget rules across the computing node clusters110(1)-(N) when computing node clusters are added to (e.g., adjust power budget rules to reduce power budget limits for one or more of the computing nodes111(11)-(1k) of one or more of the existing computing node clusters10(1)-(N)) or removed from (e.g., adjust power budget rules to increase power budget limits for one or more of the computing nodes111(11)-(1k) of one or more of the existing computing node clusters110(1)-(N)) the computing rack system100.

The power management service running on each of the computing nodes111(11)-(1k) may also be configured to collect power consumption data to provide to the power management system104. Each computing node may adjust respective power consumption by comparing the collected power consumption data with the power budget limit of the associated power budget rule. For example, the computing nodes111(11)-(1k) may be coupled to a power meter that measures respective instant power consumption. The computing node may be configured to determine the instant power consumption and store the instant power consumption in a local storage. In some scenarios, the power meter may be configured to generate an analog signal that indicates the power consumption to which the power meter is coupled. In some scenarios, the power meter may be configured to convert the analog signal to a digital value that can be accessed and/or stored. The power management system104may assess instantaneous power consumption and/or power consumption patterns of the computing node clusters120(1)-(N), and adjust the power budget rules associated with the computing node clusters120(1)-(N) based in the assessed power consumption. The power management system104may further provide the updated power budget rules to the respective computing nodes111(11)-(1k).

FIG. 2is a block diagram of a hyper-converged computing system200implementing various embodiments in accordance with embodiments described herein. The hyper-converged computing system200may be implemented in any of the computing node clusters110(1)-(N) ofFIG. 1. The hyper-converged computing system200may include multiple computing nodes202,212, and storage240, all of which may be in communication with a network222. The network222may be any type of network capable of routing data transmissions from one network device (e.g., computing node202, computing node212, and storage240) to another. The network222may include wired or wireless communication links.

The storage240may include local storage224, local storage230, cloud storage236, and networked storage238. The local storage224may include, for example, one or more solid state drives (SSD226) and one or more hard disk drives (HDD228). Similarly, the local storage230may include SSD232and HDD234. The local storage224and the local storage230may be directly coupled to, included in, and/or accessible by a respective computing node202and/or computing node212without communicating via the network222. Other nodes, however, may access the local storage224and/or the local storage230using the network222. The cloud storage236may include one or more storage servers that may be stored remotely to the computing node202and/or computing node212and accessed via the network222. The cloud storage236may generally include any suitable type of storage device, such as HDDs SSDs, or optical drives. The networked storage238may include one or more storage devices coupled to and accessed via the network222. The networked storage238may generally include any suitable type of storage device, such as HDDs SSDs, and/or NVM Express (NVMe). In various examples, the networked storage238may be a storage area network (SAN). Any storage in the storage240may contain power management data, which includes various data that may be accessed by a power management system201. In some examples, the power management data may include block(s) of data representing respective power budgets rules and power consumption data for each of the computing nodes202,212, as well as power consumption rules and power consumption data from other computing node clusters within a computing rack system, such as the computing rack system100ofFIG. 1. The power consumption data may be used by the power management system201to adjust respective power budget rules for each of the computing node202,212.

The computing nodes202,212may include, for example, a server, such as a server in data center. In some examples, the computing node202,212may include a computing device for hosting virtual machines (VMs). For example, the computing node202may be configured to execute a hypervisor210, a controller VM (CVM)208and one or more user VMs, such as user VMs204,206. The computing node212may be configured to execute a hypervisor220, a controller VM (CVM)218and one or more user VMs, such as user VMs214,216. The user VMs204,206,214,216, are virtual machine instances executing on the computing nodes202,212, respectively. The user VMs204,206,214,216may share a virtualized pool of physical computing resources such as physical processors and storage (e.g., storage240). The user VMs204,206,214,216may each have their own operating system, such as Windows or Linux. While a certain number of user VMs are shown, generally any suitable number may be implemented. User VMs may generally be provided to execute any number of applications which may be desired by a user.

The CVMs208, CVM218, which may provide services for the respective user VMs204,206,214,216of the computing nodes. The CVMs208,218may each execute a variety of services and may coordinate, for example, through communication over the network222. In some examples, the CVM208and the CVM218may communicate with one another via the network222. Services running on the CVMs208,218may utilize an amount of local memory240to support their operations. For example, services running on CVM208may utilize memory in local memory242. Services running on CVM218may utilize memory in local memory244. The local memory242and local memory244may be shared by VMs on computing node202and computing node212, respectively, and the use of local memory242and/or local memory244may be controlled by the hypervisor210and the hypervisor220, respectively. Moreover, multiple instances of the same service may be running throughout the hyper-converged computing system200, e.g., a same services stack may be operating on each controller VM. For example, an instance of a service may be running on CVM208and a second instance of the service may be running on CVM218.

The hypervisors210,220may implement certain functions performed in computing nodes202,212. The hypervisors210,220may be of any suitable type of hypervisor. For example, hypervisors210,220may be ESX, ESX(i), Hyper-V, KVM, or any other type of hypervisor. The hypervisors210,220may be the same, or may be different from each other. The hypervisors210,220may manage the allocation of physical resources (such as storage240and physical processors) to VMs (e.g., user VMs204,206, and CVM208or user VMs214,216, and CVM218, respectively) and perform various VM related operations, such as creating new VMs and cloning existing VMs. Each type of hypervisor may have a hypervisor-specific API through which commands to perform various operations may be communicated to the particular type of hypervisor. The commands may be formatted in a manner specified by the hypervisor-specific API for that type of hypervisor. For example, commands may utilize a syntax and/or attributes specified by the hypervisor-specific API.

The hypervisors210,220may communicate with the CVMs208,218using Internet protocol (IP) requests. In some examples, the CVM208and the hypervisor210may each implement certain functions. WhileFIG. 2depicts the power management system201and the power management service running on the CVM208, one or both of the power management system201and the power management service may run on the hypervisor210. The computing node212may have a similar structure as that in computing node202.

Note that CVMs208,218are provided as virtual machines utilizing the hypervisors210,220. The CVMs208,218that run “above” the hypervisors210,220in the examples described herein may be implemented within any virtual machine architecture, since the CVMs208,218may be used in conjunction with generally any hypervisor from any virtualization vendor.

In some examples, the CVM208may be configured to host the power management system201. The power management system201is configured to monitor and manage power consumption across multiple hyper-converged computing systems, including the hyper-converged computing system200, within a computing rack system (e.g., such as the computing rack system100ofFIG. 1) in accordance with aggregate power consumption limits of the computing rack system. Thus, the power management system201may receive power consumption data from each of the hyper-converged computing systems and manage power consumption of the hyper-converged computing systems based on the power consumption data. The power management system201may also communicate the computing nodes of each of the hyper-converged computing systems, including the computing nodes202,212of the hyper-converged computing system200, via a communication link, such as the network222. In some examples, the power management system201may also communicate with certain components of a computing node, such as the power management service209,219of the CVM208,218. In some scenarios, the power management service209,219may be configured to transmit certain power consumption data associated with that computing node202,212to the power management system201. The power management system201may also adjust power budget rules across the hyper-converged computing systems (e.g., including the hyper-converged computing system200) when the hyper-converged computing systems are added to (e.g., adjust power budget rules to reduce power budget limits for one or more of the computing nodes of one or more of the existing the hyper-converged computing systems or removed from (e.g., adjust power budget rules to increase power budget limits for one or more of the computing nodes of one or more of the existing the hyper-converged computing systems) the computing rack system.

The management by the power management system201may include setting power budget rules for each of the computing nodes of the hyper-converged computing systems, including the computing nodes202,212of the hyper-converged computing system200. A power budget rule may define a maximum amount of power allocated to the respective computing node at a particular time. The power budget rules may be defined in terms of a maximum current of the computing node, such as 10 amps, or in terms of wattage, such as 1000 watts. In some examples, the power budget rules may be represented by one or more data blocks that are stored in a memory or storage of the respective computing node (e.g., anywhere within the storage240). For example, a power budget rule that has a power budget of 1000 watts may be represented by a 16-bit data block. The individual computing nodes, including the computing nodes202,212may use the respective power budget rules to control internal configuration and operation of the respective computing node, such as processor speeds, memory speeds, network throughput, active applications or services, etc.

In determining the power budget rule, the power management system201may determine an initial power budget rule for all of the computing nodes of the hyper-converged systems, including the computing nodes202,212of the hyper-converged system200. For example, the initial power budget rule may include an initial power budget based on the maximum power of a corresponding PSU. In some scenarios, the initial power budget may be the maximum power of the PSU divided by the number hyper-converged systems or a number of computing nodes that are connected to the PSU. As not all computing nodes may reach its respective power budget at the same time, the power management system201may set the initial power budget for each computing node slightly higher, for example, by increasing the initial power budget limit for each computing node such that the aggregate total is some amount (e.g., 10%, 20%, 30%, etc.) over the power limit of the PSU. In some examples, the power management system201may determine the power budget rules for each respective computing node of the hyper-converged computing systems based on a respective power model of the respective computing node. The power model of each computing node may be obtained using machine learning or some other training technique. The power model may also be provided to the power management system201.

In some examples, the power management system201may dynamically adjust the respective power budget rules for the computing nodes202,212based on instantaneous consumption changes across all of the hyper-converged computing systems. For example, the power management system201may assess the power consumption of all of the hyper-converged computing systems, and update the respective power budget rules for computing nodes of the hyper-converged computing systems based on the assessment. The power management system201may determine whether the power consumptions among the multiple hyper-converged computing systems that share the PSU are properly balanced. The assessment may include determining a usage ratio, which is a ratio of actual consumed power relative to the power budget limit for the computing node. In some scenarios, a first hyper-converged computing system consume more power consumption than a second hyper-converged computing system. In this example, the power management system201may be configured to increase budget limits of the power budget rules associated with computing nodes of the first hyper-converged computing system and decrease budget limits of the power budget rules associated with computing nodes of the second hyper-converged computing system.

In some examples, the amount of increase or decrease may be based on the usage ration (e.g., based on how close the power consumption is to the power budget limit or to a current operating power consumption). The amount of increase may be disproportional to the usage ratio. For example, if the respective usage ration is 90%, the power management system201may determine to increase the power budget by 10%. If the power consumption has reached a 95% usage ratio, the power management system201may increase the power budget by 15% if the power consumption has reached an 85% usage ratio, the power management system201may increase the power budget by 5%, etc. The power management system201may also monitor aggregate increases relative to the maximum power consumption limit of the PSU.

In some examples, the power management system201may also determine that certain hyper-converged computing systems are underutilizing the allocated power budgets, such that the respective power consumption for the associated computing nodes is below the respective power budget limit. For example, when the power consumption of a hyper-converged computing system is at 60%, 50% or lower the allocated power budget, the power management system201may decrease the power budgets for computing nodes of these hyper-converged computing systems by an amount. For example, the decrease amount may be determined based on the usage ratio (e.g., based on how much these hyper-converged computing systems are underutilizing their aggregate power budgets) and determine the decrease amount in proportion to the usage ratio. In an example, if the power consumption of a hyper-converged computing system has reached a 50% usage ratio, the power management system201may determine to decrease the power budget of the computing nodes of that hyper-converged computing system by 20%. If the power consumption has reached a 40% usage ratio, the power management system201may decrease the assigned aggregate power budget limit by 30%, if the power consumption has reached a 60% usage ratio, the power management system may decrease the power budget by 10%, etc.

The power management system201may also track a total power budget decrease among the underutilized hyper-converged computing systems and a total power budget increase among the high-use hyper-converged computing systems to determine available margin for allocating power budget increases to other hyper-converged computing systems. Prior to making any budget changes, the power management system201may evaluate a proposed aggregated increase amount against a proposed aggregated decrease amount and determine whether the increase amount in power budgets is offset by the decrease amount. For example, if the aggregated increase amount in the power budgets is totaled 500 watts and the aggregated decrease amount is less than the aggregated increase amount, e.g., 600 watts, then the power management system201may update the power budgets by the increase or decrease amount for certain hyper-converged computing systems. In another example, if the aggregated increase amount in the power budgets is less than the aggregated decrease amount, the power management system201may re-allocate the power budgets among the high-use hyper-converged computing systems to cover the deficiency.

In some examples, the power management system201may dynamically adjust the respective power budget rules for the computing nodes of the hyper-converged computing systems, including the computing nodes202,212, based on historical consumption patterns among the hyper-converged computing systems and/or historical consumption patterns of the hyper-converged computing system200, such as based on a time of day or day of the week or some other criteria. In some examples, the power management system201may dynamically adjust the respective power budget rules for the computing nodes202,212based on hyper-converged computing system priority. Cluster priority may be time based, day based, fixed, or based on some other criteria. In some examples, the power management system201may dynamically adjust the respective power budget limits for the computing nodes202,212in response to a failure of a PDU(s) coupled to the hyper-converged computing system200, or failure of a PDU coupled to another of the hyper-converged computing systems. In some scenarios, the power budget rules for the computing nodes202,212may correspond to the power consumption limit of a corresponding PDU(s).

In some examples, the power management system201may communicate with each hyper-converged computing system to receive a workload priority. In some scenarios, the priorities of workloads for each of the hyper-converged computing systems may be known in advance. The power management system201may update the power budget rules based on the priorities of the workloads in of the hyper-converged computing systems. For example, the priority of workloads on a first hyper-converged computing system may be higher than that on a second hyper-converged computing system. In such case, the power management system201may adjust the power budget rules for the computing nodes of the first hyper-converged computing system to be higher than that for the computing nodes of the second hyper-converged computing system As a result, the higher priority workloads on the first hyper-converged computing system may be more likely and/or guaranteed to run at full power consumption mode. On the other hand, the hyper-converged computing system that do not have higher priority workloads may give away power budget to higher priority workloads on other hyper-converged computing systems.

In some scenarios, the priority of workloads may be represented by one or more data values. For example, the priority of workloads for a hyper-converged computing system may include a single value data. In one example, the higher the value the higher the priority is. In some scenarios, the power management system201may update the power budget for a hyper-converged computing system based on the priorities of workloads. The power management system201may also update power budget rules based on a combination of priorities of workloads and other factors. For example, the power management system201may update power budgets for certain hyper-converged computing systems based on a combination of power consumptions and priorities of workloads for those hyper-converged computing systems. For example, when the power management system201determines that the power consumption for a hyper-converged computing system is approaching its power budget, the power management system201may determine the increase amount in the power budget based on the priority of workloads in that hyper-converged computing system. For example, if the priority of workloads for a hyper-converged computing system has a high value, the power management system201may set the increase amount at a higher value so that the computing nodes of that hyper-converged computing system will be less likely to hit the power budget. On the other hand, if the priority of workloads for a hyper-converged computing system has a low value, the power management system201may set the increase amount for that computing nodes of the hyper-converged computing system to a lower value.

The power management system201may determine the actual computation loads of one or more computing nodes of the hyper-converged computing systems and update the power budget rule(s) for the one or more computing nodes based on the actual computation loads. In some examples, the power management system201may determine the computation load associated with a computing node (e.g., the computing node202,212) via an IO peripheral of the computing node by monitoring the data flow in the IO peripheral. In other examples, the power management system201may communicate with each computing node to receive the computation load associated with that computing node. In updating the power budget rule(s), the power management system201may adjust the power budget rule for the computing node with higher computation loads by increasing the power budget for that node. Alternatively, the power management system201may adjust the power budget for the computing node with lower computation loads by decreasing the power budget for that computing node.

To receive, monitor, and manage power consumption at each computing node of the hyper-converged computing systems, including the hyper-converged computing system200, the computing nodes may host a power management service. That, each of the CVMs208,218may be configured to host a respective power management service209,219. The respective power management services209,219may be configured to manage collection, storage and transmission of the power consumption data to the power management system201. In other examples, the hypervisor210may host the power management system201and/or the hypervisors210,220may host the power management services209,219, respectively.

The respective power management services209,219may also be configured to receive the respective power budget rule corresponding to the respective computing node202,212from the power management system201and to manage configuration of the respective computing node202,212to comply with the corresponding power budget rule. The power management services209,219may determine an instant power consumption of the respective computing node202,212, and compare the instant power consumption with the power budget of the respective power budget rule. If the difference between the respective instant power consumption and the respective power budget has met the criteria, the respective computing node202,212may adjust the power consumption. For example, the computing node202,212may each include one or more processor units. The power management service209running on the CVM208may communicate with the one or more processor units of the computing node202to cause the one or more processor units to operate at a power state that corresponds to the corresponding power budget rule, such as operating in a state that results in higher or lower power consumption. The respective one or more processor units of the computing nodes202,212may operate at a core executing state (e.g., C0), in which the core is executing instructions. When the power consumption of the computing nodes202,212approach the respective power budget limit defined in the power budget rule, the power management services209,219may cause the one or more processor units to operate at a power conserving state (e.g., p-state). In some or other examples, the one or more processor units may operate at various power conserving states from conserving state to more extensive conserving state, e.g., from C1to C2to C6. In some examples, the power management services209,219may communicate with the VMs204,206,214,216to cause the respective one or more processor units of the computing nodes202,212to operate at a lower or higher power consumption state. In an example, the power management services209,219(via the CVM208,218and/or the hypervisor210,220) may communicate with the one or more processor units via a firmware, e.g., basic input and output system (BIOS) of the operating system on the respective computer node202,212. In another example, the power management services209,219(via the CVM208,218and/or the hypervisor210,220) may communicate directly with the processor via an interface, e.g., ACPI.

In some examples, the CVMs208,218may provide a variety of services (e.g., may include computer-executable instructions for providing services). WhileFIG. 2depicts a power management service209,219on each of the computing nodes202,212, a single power management service may be implemented to manage power consumption for multiple computing nodes. In some examples, one instance of the power management service (e.g., power management service209or219) may serve as a “master” service and may provide coordination and/or management of other power management services across the hyper-converged computing system100. For example, the power management service209associated with the CVM208of the computing node202may receive power budget rules associated with the computing node202and/or, additionally, the power budget rule associated with the computing node212. The power management service209may communicate the corresponding power budget rules to the power management service219associated with the CVM218of the computing node212. As power manage services may be implemented in a hypervisor or a CVM, the hypervisor210,220may communicate with the respective CVM208,218using Internet protocol (IP) requests. A hypervisor in one computing node may also communicate with other hypervisors in other computing nodes via the network222.

The hyper-converged computing system200may further include an administrator system258. The administrator system258may be implemented using, for example, one or more computers, servers, laptops, desktops, tablets, mobile phones, or other computing systems. In some examples, the administrator system258may be wholly and/or partially implemented using one of the computing nodes202,212of a hyper-converged computing system200. However, in some examples, the administrator system258may be a different computing system from the virtualized system and may be in communication with a CVM of the virtualized system (e.g., the CVM208) using a wired or wireless connection (e.g., over the network222).

The administrator system258may host one or more user interfaces, e.g., such as user interface260. The user interface260may be implemented, for example, by displaying a user interface on a display of the administrator system258. The user interface260may receive input from one or more users (e.g., administrators) using one or more input device(s) of the administrator system258, such as, but not limited to, a keyboard, mouse, touchscreen, and/or voice input. The user interface260may provide input to CVM208and/or may receive data from the CVM208. For example, a user may set the priority of workload in a computing node by transmitting a value that indicates the priority of workload to the CVM residing in that computing node. The user interface260may be implemented, for example, using a web service provided by the CVM208or one or more other CVMs described herein. In some examples, the user interface260may be implemented using a web service provided by CVM208and information from CVM208(e.g., from power management service248) may be provided to admin system258for display in the user interface260.

FIG. 3is a flow diagram of method for managing power in across multiple computing node clusters in a computing rack system in accordance with embodiments described herein. The method300may be performed by the computing rack system100ofFIG. 1, the hyper-converged computing system200ofFIG. 2, or combinations thereof.

The method300may include receiving, at a power management system, respective power consumption data corresponding to each of a plurality of computing node clusters of a computing rack system, at310. The power management system may include the power management system104ofFIG. 1and/or the power management system201ofFIG. 1. The plurality of computing node clusters may include the computing node clusters110(1)-(N) ofFIG. 1and/or the hyper-converged computing system200ofFIG. 2. The power consumption data may be provided from a power management service, such as the power management services209or219ofFIG. 2.

The method300may further include determining respective power consumption of each of the plurality of computing node clusters relative to a respective power consumption budget limit based on the respective power consumption data to determine a respective usage ratio, at320. The respective power budget limit may be included in a respective power budget rule associated with each computing node of a computing node cluster.

The method300may father include, in response to a determination that the respective usage ratio of a first computing node cluster of the plurality of computing node clusters is less than a first threshold, at330; increasing the respective power budget limit of the first computing node cluster, at340, and decreasing the respective power budget limit associated with a second computing node cluster of the plurality of computing node clusters in response to a determination that the respective usage ratio of the second computing node cluster is less than a second threshold, at350. The first threshold may be greater than the second threshold. In some examples, the method300may further include, in response to the increase of the respective power budget limit of the first computing node cluster exceeding the decrease of the respective power budget limit of the second computing node cluster, decreasing the respective power budget limit associated with a third computing node cluster of the plurality of computing node clusters in response to a determination that the respective usage ratio of the third computing node cluster is less than the second threshold.

In some examples, the method300may further include, prior to increasing the respective power budget limit associated with the first computing node cluster and decreasing the respective power budget limit associated with the second computing node cluster, determining whether increasing the respective power budget limit associated with the fist computing node cluster in aggregate with all existing respective power budget limits associated with the other computing node clusters of the plurality of computing node clusters exceeds a maximum power consumption threshold, and reducing the increase of the respective power budget limit associated with the fist computing node from a first amount to a second amount in response to a determination that the increase of the first amount in aggregate with all existing respective power budget limits associated with the other computing node clusters of the plurality of computing node clusters exceeds the maximum power consumption threshold.

The increase of respective power budget limit of the first computing node cluster may be by a first amount. The method300may further include increasing the respective power budget limit of the first computing node cluster by a second amount in response to a determination that the respective usage ratio of the first computing node cluster is greater than a third threshold that is greater than the first threshold. In some examples, the amount of increase may be disproportional to the usage ratio. For example, if the respective usage ratio is above a 90% threshold, the power budget limit may be increased by 10%. If the power consumption has reached a 95% usage ratio, the power budget limit may be increased by 15%; if the power consumption has reached an 85% usage ratio, the power budget limit may be increased by 5%, etc.

The decrease of respective power budget limit of the second computing node cluster may be by a first amount. The method300may further include decreasing the respective power budget limit of the second computing node cluster by a second amount in response to a determination that the respective usage ratio of the second computing node cluster is less than a fourth threshold that is less than the second threshold. In an example, if the usage ratio has reached a 50%, the power budget limit of the second computing node cluster may be reduced by 20%. If the power consumption has reached a 40% usage ratio, the power budget limit may be decreased by 30%; if the power consumption has reached a 60% usage ratio, the power budget limit may be reduced by 10%, etc.

FIG. 4is a block diagram of components of a computing node400in accordance with embodiments described herein. Any of the computing nodes111(11)-(Nk) and/or the power management system104ofFIG. 1, any of the computing nodes202,212, or combinations thereof, may implement the computing node400. The computing node400may be configured to implement at least some of the method300ofFIG. 3, in some examples. It should be appreciated thatFIG. 4provides only an illustration of one implementation and does not imply any limitations with regard to the environments in which different embodiments may be implemented. Many modifications to the depicted environment may be made.

The computing node400may include a communications fabric402, which provides communications between one or more processor(s)404, memory406, local storage408, communications unit410, I/O interface(s)412. The communications fabric402can be implemented with any architecture designed for passing data and/or control information between processors (such as microprocessors, communications and network processors, etc.), system memory, peripheral devices, and any other hardware components within a system. For example, the communications fabric402can be implemented with one or more buses.

The memory406and the local storage408are computer-readable storage media. In this embodiment, the memory406includes random access memory RAM414and cache416. In general, the memory406can include any suitable volatile or non-volatile computer-readable storage media. The local storage408may be implemented as described above with respect to local storage224and/or local storage230ofFIG. 2, in some examples. In this embodiment, the local storage408includes an SSD422and an HDD424, which may be implemented as described above with respect to SSD226, SSD232and HDD228, HDD234, respectively, ofFIG. 2.

Various computer instructions, programs, files, images, etc. may be stored in local storage408for execution by one or more of the respective processor(s)404via one or more memories of memory406. In some examples, local storage408includes a magnetic HDD424. Alternatively, or in addition to a magnetic hard disk drive, local storage408may include the SSD422, a semiconductor storage device, a read-only memory (ROM), an erasable programmable read-only memory (EPROM), a flash memory, or any other computer-readable storage media that is capable of storing program instructions or digital information.

The media used by local storage408may also be removable. For example, a removable hard drive may be used for local storage408. Other examples include optical and magnetic disks, thumb drives, and smart cards that are inserted into a drive for transfer onto another computer-readable storage medium that is also part of local storage408.

Communications unit410, in these examples, provides for communications with other data processing systems or devices. In these examples, communications unit410includes one or more network interface cards. Communications unit410may provide communications through the use of either or both physical and wireless communications links.

I/O interface(s)412allows for input and output of data with other devices that may be connected to the computing node400. For example, I/O interface(s)412may provide a connection to external device(s)418such as a keyboard, a keypad, a touch screen, and/or some other suitable input device. External device(s)418can also include portable computer-readable storage media such as, for example, thumb drives, portable optical or magnetic disks, and memory cards. Software and data used to practice embodiments of the present invention can be stored on such portable computer-readable storage media and can be loaded onto local storage408via I/O interface(s)412. I/O interface(s)412also connect to a display420. Display420provides a mechanism to display data to a user and may be, for example, a computer monitor.

From the foregoing it will be appreciated that, although specific embodiments have been described herein for purposes of illustration, various modifications may be made while remaining with the scope of the claimed technology. Further, various embodiments disclosed herein with reference toFIGS. 1-4provide advantages in multiple ways. For example, by the power management system updating the power budget rules, the computing rack system and associated computing node clusters may operate more efficiently as underutilized resources may be reduced.

Examples described herein may refer to various components as “coupled” or signals as being “provided to” or “received from” certain components. It is to be understood that in some examples the components are directly coupled one to another, while in other examples the components are coupled with intervening components disposed between them. Similarly, signal may be provided directly to and/or received directly from the recited components without intervening components, but also may be provided to and/or received from the certain components through intervening components.

Various features described herein may be implemented in hardware, software executed by a processor, firmware, or any combination thereof. If implemented in software (e.g., in the case of the methods described herein), the functions may be stored on or transmitted over as one or more instructions or code on a computer-readable medium. Computer-readable media includes both non-transitory computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. A non-transitory storage medium may be any available medium that can be accessed by a general purpose or special purpose computer. By way of example, and not limitation, non-transitory computer-readable media can comprise RAM, ROM, electrically erasable programmable read only memory (EEPROM), or optical disk storage, magnetic disk storage or other magnetic storage devices, or any other non-transitory medium that can be used to carry or store desired program code means in the form of instructions or data structures and that can be accessed by a general-purpose or special-purpose computer, or a general-purpose or special-purpose processor.

Other examples and implementations are within the scope of the disclosure and appended claims. For example, due to the nature of software, functions described above can be implemented using software executed by a processor, hardware, firmware, hardwiring, or combinations of any of these. Features implementing functions may also be physically located at various positions, including being distributed such that portions of functions are implemented at different physical locations.

From the foregoing it will be appreciated that, although specific embodiments of the present disclosure have been described herein for purposes of illustration, various modifications may be made without deviating from the spirit and scope of the present disclosure. Various modifications to the disclosure will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other variations without departing from the scope of the disclosure. Thus, the disclosure is not limited to the examples and designs described herein, but is to be accorded the broadest scope consistent with the principles and novel features disclosed herein.