Patent application title: POWER AND COST SAVINGS METER FOR POWER MANAGEMENT
Inventors:
Aashish Parikh (Cupertino, CA, US)
Assignees:
VMWARE, INC.
IPC8 Class: AG06Q3002FI
USPC Class:
705412
Class name: Data processing: financial, business practice, management, or cost/price determination for cost/price utility usage
Publication date: 2015-02-26
Patent application number: 20150058261
Abstract:
A power monitoring system and method for computing power cost savings of
power management operations in a cluster of host computers uses power
usage information from the host computers in the cluster with power
sensing capabilities and power management information from a power
management module, which includes times when at least one of the host
computers was powered down, to compute the power cost savings
attributable to the power management operations executed by the power
management module.Claims:
1. A method for computing power cost savings of power management
operations in a cluster of host computers, the method comprising:
receiving power usage information from the host computers in the cluster
with power sensing capabilities; receiving power management information
from a power management module that executes the power management
operations, the power management information including times when at
least one of the host computers was powered down; and computing the power
cost savings attributable to the power management operations based on the
power usage information and the power management information.
2. The method of claim 1, wherein the receiving the power usage information includes interfacing with power sensing controllers associated with the host computers with the power sensing capabilities.
3. The method of claim 2, wherein the power sensing controllers are baseboard management controllers.
4. The method of claim 1, wherein the computing the power cost savings includes excluding the host computers in the cluster without the power sensing capabilities in the computing of the power cost savings.
5. The method of claim 1, wherein the computing the power cost savings includes using user-provided power usage values for the host computers in the cluster without the power sensing capabilities in the computing of the power cost savings.
6. The method of claim 1, wherein the computing the power cost savings includes using power usage values of the host computers in the cluster with the power sensing capabilities for the host computers in the cluster without the power sensing capabilities in the computing of the power cost savings.
7. The method of claim 6, wherein the using the power usage values of the host computers in the cluster with the power sensing capabilities includes using averages of the power usage values of the host computers in the cluster with the power sensing capabilities for the host computers in the cluster without the power sensing capabilities.
8. The method of claim 1, further comprising computing cost of power usage associated with the host computers in the cluster based on the power usage information and user-provided electricity rate.
9. A computer-readable storage medium containing program instructions for computing power cost savings of power management operations in a cluster of host computers, wherein execution of the program instructions by one or more processors of a computer system causes the one or more processors to perform steps comprising: receiving power usage information from the host computers in the cluster with power sensing capabilities; receiving power management information from a power management module that executes the power management operations, the power management information including times when at least one of the host computers was powered down; and computing the power cost savings attributable to the power management operations based on the power usage information and the power management information.
10. The computer-readable storage medium of claim 9, wherein the receiving the power usage information includes interfacing with power sensing controllers associated with the host computers with the power sensing capabilities.
11. The computer-readable storage medium of claim 10, wherein the power sensing controllers are baseboard management controllers.
12. The computer-readable storage medium of claim 9, wherein the computing the power cost savings includes excluding the host computers in the cluster without the power sensing capabilities in the computing of the power cost savings.
13. The computer-readable storage medium of claim 9, wherein the computing the power cost savings includes using user-provided power usage values for the host computers in the cluster without the power sensing capabilities in the computing of the power cost savings.
14. The computer-readable storage medium of claim 9, wherein the computing the power cost savings includes using power usage values of the host computers in the cluster with the power sensing capabilities for the host computers in the cluster without the power sensing capabilities in the computing of the power cost savings.
15. The computer-readable storage medium of claim 14, wherein the using the power usage values of the host computers in the cluster with the power sensing capabilities includes using averages of the power usage values of the host computers in the cluster with the power sensing capabilities for the host computers in the cluster without the power sensing capabilities.
16. The computer-readable storage medium of claim 9, wherein the method further comprises computing cost of power usage associated with the host computers in the cluster based on the power usage information and user-provided electricity rate.
17. A power monitoring system for a cluster of host computers comprising: a power sensing controller interface configured to receive power usage information from the host computers in the cluster with power sensing capabilities; a power management module interface configured to receive power management information from a power management module that executes the power management operations, the power management information including times when at least one of the host computers was powered down; and a power metering engine configured to compute the power cost savings attributable to the power management operations based on the power usage information and the power management information.
18. The power monitoring system of claim 17, wherein the power sensing controller interface is configured to interface with power sensing controllers associated with the host computers with the power sensing capabilities.
19. The power monitoring system of claim 18, wherein the power sensing controllers are baseboard management controllers.
20. The power monitoring system of claim 17, wherein the power metering engine is configured to exclude the host computers in the cluster without the power sensing capabilities in computing the power cost savings.
21. The power monitoring system of claim 17, wherein the power metering engine is configured to use user-provided power usage values for the host computers in the cluster without the power sensing capabilities in computing the power cost savings.
22. The power monitoring system of claim 17, wherein the power metering engine is configured to use power usage values of the host computers in the cluster with the power sensing capabilities for the host computers in the cluster without the power sensing capabilities in computing the power cost savings.
23. The power monitoring system of claim 17, wherein the power metering engine is configured to use averages of the power usage values of the host computers in the cluster with the power sensing capabilities for the host computers in the cluster without the power sensing capabilities in computing the power cost savings.
24. The power monitoring system of claim 17, wherein the power metering engine is further configured to compute cost of power usage associated with the host computers in the cluster based on the power usage information and user-provided electricity rate.
Description:
CROSS REFERENCE TO RELATED APPLICATION
[0001] This application is entitled to the benefit of U.S. Provisional Patent Application Ser. No. 61/869,679, filed on Aug. 24, 2013, which is incorporated herein by reference.
BACKGROUND
[0002] Sharing resources in a networked computer system, such as processors, computer memories, network bandwidth and data storage facilities, among clients, e.g., virtual machines (VMs), running on the system can increase efficiency by reducing maintenance and operating costs, allowing flexibility with respect to individual resource usage, and simplifying resource management. With respect to shared storage, the benefits include data consolidation, universal access to data, ease of storage management, and support for live migration of virtualized environments.
[0003] In order to further reduce the operating cost of the networked computer system, a power management technique may be used to minimize power consumption of host computers running on the networked computer system during periods of low resource utilization. This can be achieved by selectively migrating clients onto fewer host computers during periods of low resource utilization and powering off the unneeded host computers, i.e., the host computers without any clients in operation.
[0004] However, there are currently no mechanisms to easily determine how much power has been saved using any of the power management techniques. Thus, the effectiveness of the power management techniques is difficult to quantify or measure, which makes it hard to provide an incentive to employ a power management technique.
SUMMARY
[0005] A power monitoring system and method for computing power cost savings of power management operations in a cluster of host computers uses power usage information from the host computers in the cluster with power sensing capabilities and power management information from a power management module, which includes times when at least one of the host computers was powered down, to compute the power cost savings attributable to the power management operations executed by the power management module.
[0006] A method for computing power cost savings of power management operations in a cluster of host computers in accordance with an embodiment of the invention comprises receiving power usage information from the host computers in the cluster with power sensing capabilities, receiving power management information from a power management module that executes the power management operations, the power management information including times when at least one of the host computers was powered down, and computing the power cost savings attributable to the power management operations based on the power usage information and the power management information. In some embodiments, the steps of this method are performed when program instructions contained in a computer-readable storage medium are executed by one or more processors.
[0007] A power monitoring system for a cluster of host computers in accordance with an embodiment of the invention comprises a power sensing controller interface configured to receive power usage information from the host computers in the cluster with power sensing capabilities, a power management module interface configured to receive power management information from a power management module that executes the power management operations, the power management information including times when at least one of the host computers was powered down, and a power metering engine configured to compute the power cost savings attributable to the power management operations based on the power usage information and the power management information.
[0008] Other aspects and advantages of embodiments of the present invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrated by way of example of the principles of the invention.
BRIEF DESCRIPTION OF THE DRAWINGS
[0009] FIG. 1 is a block diagram of a distributed computer system in accordance with an embodiment of the invention.
[0010] FIG. 2 is a block diagram of a host computer in accordance with an embodiment of the invention.
[0011] FIG. 3 is a block diagram of a power monitoring system in accordance with an embodiment of the invention.
[0012] FIG. 4 is a process flow diagram of the operation of the power monitoring system in accordance with an embodiment of the invention.
[0013] FIG. 5 is a flow diagram of a method for computing power cost savings of power management operations in a cluster of host computers in accordance with an embodiment of the invention.
[0014] Throughout the description, similar reference numbers may be used to identify similar elements.
DETAILED DESCRIPTION
[0015] It will be readily understood that the components of the embodiments as generally described herein and illustrated in the appended figures could be arranged and designed in a wide variety of different configurations. Thus, the following more detailed description of various embodiments, as represented in the figures, is not intended to limit the scope of the present disclosure, but is merely representative of various embodiments. While the various aspects of the embodiments are presented in drawings, the drawings are not necessarily drawn to scale unless specifically indicated.
[0016] The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by this detailed description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.
[0017] Reference throughout this specification to features, advantages, or similar language does not imply that all of the features and advantages that may be realized with the present invention should be or are in any single embodiment of the invention. Rather, language referring to the features and advantages is understood to mean that a specific feature, advantage, or characteristic described in connection with an embodiment is included in at least one embodiment of the present invention. Thus, discussions of the features and advantages, and similar language, throughout this specification may, but do not necessarily, refer to the same embodiment.
[0018] Furthermore, the described features, advantages, and characteristics of the invention may be combined in any suitable manner in one or more embodiments. One skilled in the relevant art will recognize, in light of the description herein, that the invention can be practiced without one or more of the specific features or advantages of a particular embodiment. In other instances, additional features and advantages may be recognized in certain embodiments that may not be present in all embodiments of the invention.
[0019] Reference throughout this specification to "one embodiment," "an embodiment," or similar language means that a particular feature, structure, or characteristic described in connection with the indicated embodiment is included in at least one embodiment of the present invention. Thus, the phrases "in one embodiment," "in an embodiment," and similar language throughout this specification may, but do not necessarily, all refer to the same embodiment.
[0020] With reference to FIG. 1, a distributed computer system 100 in accordance with an embodiment of the invention is shown. As shown in FIG. 1, the distributed computer system includes a network 102, a cluster of host computers H-1, H-2 . . . H-M (where M is a positive integer), storage 104, a management server 106 with a power management module 108 and a power monitoring system 110. The host computers, the storage, the management server and the power monitoring system are connected to the network. Thus, these components are able to communicate with each other or any other component connected to the network. As described in more detail below, the power monitoring system operates to track the power usage of the host computers in the cluster so that a model of power used by the cluster can be created and power and cost savings attributable to the power management module can be computed. Thus, the power monitoring system can provide power usage and saving information with respect to the cluster, which may be provided to an entity for use. The entity may be a user of the distributed computer system or any device or program associated with the distributed computer system.
[0021] The host computers H-1, H-2 . . . H-M of the distributed computer system 100 are physical computer systems that hosts or supports one or more clients so that the clients are executing on the physical computer systems. As used herein, the term "client" is any software entity that can run on a computer system, such as a software application, a software process or a virtual machine (VM). The host computers may be servers that are commonly found in datacenters. As an example, the host computers may be servers installed in a single server rack. However, in other embodiments, the host computers may be installed in multiple server racks in the same or different facilities. In FIG. 1, the distributed computer system is illustrated with only a single cluster of host computers. However, in other embodiments, the distributed computer system may include multiple clusters of host computers with each cluster having a power management module.
[0022] Turning now to FIG. 2, components of a host computer 200 that is representative of the host computers H-1, H-2 . . . H-M in accordance with an embodiment of the invention are shown. In FIG. 2, the physical connections between the various components of the host computer are not illustrated. In the illustrated embodiment, the host computer is configured to support a number of clients 220A, 220B . . . 220L (where L is a positive integer), which are VMs. The number of VMs supported by the host computer can be anywhere from one to more than one hundred. The exact number of VMs supported by the host computer is only limited by the physical resources of the host computer. The VMs share at least some of the hardware resources of the host computer, which include one or more system memories 222, one or more processors 224, a storage interface 226, and a network interface 228. Each system memory 222, which may be random access memory (RAM), is the volatile memory of the host computer. Each processor 224 can be any type of a processor, such as a central processing unit (CPU) commonly found in a server. The storage interface 226 is an interface that allows that host computer to communicate with the storage 104. As an example, the storage interface may be a host bus adapter or a network file system interface. The network interface 228 is an interface that allows the host computer to communicate with other devices connected to the network 102. As an example, the network interface may be a network adapter.
[0023] In the illustrated embodiment, the VMs 220A, 220B . . . 220L run on top of a hypervisor 230, which is a software interface layer that enables sharing of the hardware resources of the host computer 200 by the VMs. However, in other embodiments, one or more of the VMs can be nested, i.e., a VM running in another VM. For example, one of the VMs may be running in a VM, which is also running in another VM. The hypervisor may run on top of the host computer's operating system or directly on hardware of the host computer. With the support of the hypervisor, the VMs provide virtualized computer systems that give the appearance of being distinct from the host computer and from each other. Each VM includes a guest operating system 232 and one or more guest applications 234. The guest operating system is a master control program of the respective VM and, among other things, the guest operating system forms a software platform on top of which the guest applications run.
[0024] Similar to any other computer system connected to the network 102, the VMs 220A, 220B . . . 220L are able to communicate with other computer systems connected to the network using the network interface 228 of the host computer 200. In addition, the VMs are able to access the storage 104 using the storage interface 226 of the host computer.
[0025] The host computer 200 may be configured to further include a power sensing controller 236 that provides power sensing or measuring capabilities and a power sensing controller application programming interface (API) 238 to allow external devices or programs to interface with the power sensing controller. The power sensing controller operates to measure the electrical power usage of the host computer, and may also measure other operating parameters of the host computer. In an embodiment, the power sensing controller may be configured to measure current and input voltage, as well as power, at predefined intervals, which allows the power sensing controller to measure power usage. When the host computer is first powered on, the measured power usage of the host computer is the base power of the host computer chassis, which is the minimum power usage of the host computer. This is a static component of the measured power usage. However, as the processor of host computer performs various operations, the measured power usage of the host computer is the base power of the host computer plus the power consumed by the processor. Since the power consumed by the processor varies, the measured power varies depending on the power consumption of the processor. Thus, the power consumed by the processor is a variable component of the measured power usage. The power usage of the host computer that is measured by the power sensing controller can be accessed via the power sensing controller API, which allows an external program or device to communicate with the power sensing controller. In some implementations, the power sensing controller is a baseboard management controller (BMC) and the power sensing controller API is a BMC API.
[0026] Turing back to FIG. 1, the network 102 can be any type of computer network or a combination of networks that allows communications between devices connected to the network. The network 102 may include the Internet, a wide area network (WAN), a local area network (LAN), a storage area network (SAN), a fibre channel network and/or other networks. The network 102 may be configured to support protocols suited for communications with storage arrays, such as Fibre Channel, Internet Small Computer System Interface (iSCSI), Fibre Channel over Ethernet (FCoE) and HyperSCSI.
[0027] The storage 104 is used to store data for the host computers of the cluster, which can be accessed like any other storage device connected to computer systems. In an embodiment, the storage can be accessed by entities, such as clients running on the host computers, using any file system, e.g., virtual machine file system (VMFS) or network file system (NFS). The storage includes one or more computer data storage devices 110, which can be any type of storage devices, such as solid-state devices (SSDs), hard disks or a combination of the two. At least some of these storage devices may be local storage devices of the host computers, e.g., locally attached disks or SSDs within the host computers. The storage devices may operate as components of a network-attached storage (NAS) and/or a storage area network (SAN). The storage includes a storage managing module 112, which manages the operation of the storage. In an embodiment, the storage managing module is a computer program executing on one or more computer systems (not shown) of the storage. The storage supports multiple datastores DS-1, DS-2 . . . DS-X (where X is a positive integer), which may be identified using logical unit numbers (LUNs). In an embodiment, the datastores are virtualized representations of storage facilities. Thus, each datastore may use the storage resource from more than one storage device included in the storage. The datastores are used to store data associated with the clients supported by the host computers of the cluster. For virtual machines, the datastores may be used to store virtual storage, e.g., virtual disks, used by each of the virtual machines, as well as other files needed to support the virtual machines.
[0028] The management server 106 operates to monitor and manage the host computers H-1, H-2 . . . H-M in cluster. The management server may be configured to monitor the current configurations of the host computers and the clients running on the host computers, for example, virtual machines (VMs). The monitored configurations may include hardware configuration of each of the host computers, such as CPU type and memory size, and/or software configurations of each of the host computers, such as operating system (OS) type and installed applications or software programs. The monitored configurations may also include client hosting information, i.e., which clients, e.g., VMs, are hosted or running on which host computers. The monitored configurations may also include client information. The client information may include size of each of the clients, virtualized hardware configuration of each of the clients, such as virtual CPU type and virtual memory size, software configuration of each of the clients, such as OS type and installed applications or software programs running on each of the clients, and virtual storage size for each of the clients. The client information may also include resource parameter settings, such as demand, limit, reservation and share values for various resources, e.g., CPU, memory, network bandwidth and storage, which are consumed by the clients. The demands of the clients for the consumable resources are determined by the host computers hosting the clients by monitoring the current usage of resources by the clients, e.g., CPU processing usage, memory usage, network usage and/or storage usage, and provided to the management server.
[0029] The management server 106 may also perform operations to manage the clients and the host computers H-1, H-2 . . . H-M in the cluster. As illustrated in FIG. 1, in an embodiment, the cluster management server include the power management module 108, which can be enabled by a user, to perform power management operations for the cluster. In particular, the power management module manages the power-on resource capacity of the cluster to ensure that clients running on the cluster are able to perform at desired levels, e.g. Service Level Objectives (SLOs). During periods of low resource demands, the power management module may reduce the cluster power-on resource capacity by powering down one or more host computers to conserve power, which may include consolidating the clients running in the cluster into fewer host computers so that the unneeded host computers can be powered down. In some embodiments, powering down an unneeded host computer involves switching the unneeded host computer to standby mode. However, in other embodiments, powering down an unneeded host computer may involve completely shutting down the unneeded host computer. During periods of high resource demands, the power management module may increase the cluster power-on resource capacity by powering on one or more "powered down" host computers and migrating some of the clients running on the cluster onto the newly powered on host computers. Powering on a host computer involves making the host computer come out of standby mode or turning on a completely powered off host computer. In an embodiment, the power management module maintains a power management log of the times when the host computers are powered on or powered down. Thus, the power management log includes at least the identifications of the host computers that were either powered on or powered down and the corresponding times when these host computers were either powered on or powered down.
[0030] In some embodiments, the management server 106 may be a physical computer, and thus, includes memory and one or more processors, as well as other components commonly found in a computer system. In other embodiments, the management server may be implemented as one or more software programs running on one or more physical computers, such as the host computer 200 shown in FIG. 2, or virtual computers, such as the 220A, 220B . . . 220L. In an implementation, the management server is a VMware vCenter server with at least some of the features available for such a server ("VMware" and "vCenter" are trademarks of VMware, Inc.), and the power management module 108 may be incorporated into VMware Distributed Resource Schedulers® (DRS) as Distributed Power Management (DPM) ("VMware", "vCenter" and "Distributed Resource Scheduler" are trademarks of VMware, Inc.).
[0031] Turning now to FIG. 3, components of the power monitoring system 110 in accordance with an embodiment of the invention are shown. As illustrated in FIG. 3, the power monitoring system includes a power sensing controller interface 302, a power management module interface 304, a user interface 306 and a power metering engine 308. The components of the power monitoring system may be implemented in any combination of hardware, software and firmware. In some implementations, these components of the power monitoring system are implemented as one or more software programs running in one or more computers using processors of the computers. In a particular implementation, these components of the power monitoring system are implemented as one or more software programs running in the management server 106 using one or more processors associated with or installed in the management server. However, in other implementations, the components of the power monitoring system may be implemented in any computer system or systems, including virtual machines.
[0032] The power sensing controller interface 302 of the power monitoring system 110 operates to communicate with the power sensing controller 236 of each of the host computers H-1, H-2 . . . H-M in the cluster via the power sensing controller API 238 of that host computer. For each host computer with a power sensing controller, the power sensing controller interface retrieves information collected by the power sensing controller of that host computer using a suitable protocol. In particular, the power sensing controller interface retrieves power usage information of each host computer with a power sensing controller, which includes the static base power of each host computer and the dynamic power usage by the processor(s) of each host computer. The power sensing controller interface can only communicate with the host computers with power sensing controllers. Since not all the host computers in the distributed computer system may have a power sensing controller, the power sensing controller interface may not be able to retrieve power usage information from all the host computers in the cluster.
[0033] The power management module interface 304 of the power monitoring system 110 operates to communicate with the power management module 108 in the cluster to retrieve information regarding powering on or powering down of the host computers H-1, H-2 . . . H-M for power management. This power management information from the power management module includes at least (1) identifications of the host computers that were powered on or powered down, and (2) times of when these host computers were powered on or powered down. In some embodiments, the power management information received from the power management module is the power management log, which is maintained by the power management module.
[0034] The user interface 306 of the power monitoring system 110 operates to allow a user to interact with the power monitoring system. The user interface allows the user to input data into the power monitoring system 110. In particular, the user interface allows the user to input power usage values for any host computer without power sensing capabilities. These power usage values may include a user-provided value for the base power of a host computer without power sensing capabilities and a user-provided value for the variable component of the power usage of the host computer. In some embodiments, both of these user-provided values may be static. However, in other embodiments, the user-provided value for the dynamic component of the power usage of the host computer may be a non-static value based on one or more parameters, such as time of day. The user interface also allows the user to input electricity rate, i.e., cost per electrical power unit (e.g., watt), so that the power monitoring system can calculate power savings based on monetary value, not just based on the actual amount of power saved.
[0035] The power metering engine 308 of the power monitoring system 110 operates to compute the power and cost savings for the host computers H-1, H-2 . . . H-M in the cluster that are attributable to the operations of the power management module 108 using the information from the power sensing controller interface 302, the power management module interface 304 and the user interface 306. If the cluster includes host computers without power sensing capabilities, the power metering engine provides several options to handle this scenario, one of which may be selected by the user using the user interface. The first option is to exclude these host computers without power sensing capabilities from the power and cost savings computations. The second option is to use the power usage values provided by the user via the user interface for the host computers without power sensing capabilities. As described above, these power usage values may include a user-provided static value for the base power of a host computer without power sensing capability and a user-provided static value for the variable component of the power usage of the host computer. The third option is to use the measured power usage values from the host computers in the cluster that have power sensing capabilities for the host computers without power sensing capabilities. As an example, the power metering engine may compute average power usage values from the measured power usage values of the host computers with power sensing capabilities to be used for the host computers without power sensing capabilities. The power metering engine periodically retrieves the power usage information from each of the host computers with power sensing capabilities to determine the base power component and the variable power component for each of these host computers. When a host computer with power sensing capability is first added to the cluster, the power metering engine records the initial power usage of that host computer, which is the base power of the host computer. Subsequent power usage information from the host computers can be used to determine the variable power components of the host computers by subtracting the respective base power from the respective current power usage for each of the host computers. The base power values and the variable power component values from the host computers with power sensing capabilities can be used as estimates for the host computers without power sensing capabilities. Using the measured power usages values from the host computers with power sensing capabilities, the power metering engine can maintain a running or moving average of the variable component of the power usage for the entire cluster of host computers.
[0036] The power metering engine 308 uses the power usage information of the entire cluster of host computers with the information from the power management module 108 to compute the power and cost savings that are attributable to the power management operations performed by the power management module. The information from the power management module includes the times when the host computers in the clusters were powered down (e.g., put into standby mode) and powered on (e.g., taken out of standby mode), as a result of power management operations. In some embodiments, the power metering engine may use the total combined power usage of all the host computers with power sensing capabilities in the cluster to compute the power savings attributable to the power management operations. In these embodiments, the power metering engine may maintain a reference power usage, which is the estimated power usage when all the host computers with power sensing capabilities are powered on. This reference power usage may be determined by using an average of the total measured power usage when all the host computers with power sensing capabilities in the cluster are powered on. The power metering engine can then compute the power savings attributable to the power management operations by taking the difference between the reference power usage and the total measured power usage during periods when one or more host computers in the clusters are powered off. In other embodiments, when one or more host computers with power sensing capabilities are powered down, reference variable power usage components of these host computers may be used to compute the power savings attributable to the power management operations. The reference variable power usage component of a host computer may be derived from the computed historical variable power usage component of the host computer, i.e., the variable component of the measured power usage of the host computer due to power used by the processor(s) of the host computer. The reference variable power usage component may be some statistical value, such as a running or moving average of the variable power usage component for the host computer. The computed power savings can then be used with the electricity rate, which may be provided by a user, to compute the power cost savings attributable to the power management module.
[0037] The computed power and cost savings attributable to the power management module 108 may be provided to any requesting client, which can be any device or program. The requesting client may then visually present the computed power and cost savings from the power monitoring system 110 to a user. Since the information from the power monitoring system includes cost savings attributable to the power management module, this provides an incentive for the user to continue to use the power management module, as well as an incentive for others to try the power management module in their computing environment with one or more clusters of host computers.
[0038] The operation of the power monitoring system 110 in accordance with embodiments of the invention is now described with reference to the process flow diagram of FIG. 4. In some embodiments, the power monitoring system may be initiated by an application programming interface (API) call from a client, which may be any external device or program. If there are multiple clusters of host computers, each being managed by a power management module, the API call would include a cluster identification so that the power and cost savings can be computed for that particular cluster of interest. At block 402, an API call from a client is received by the power monitoring system. At block 404, the power sensing controller interface 302 communicates with the power sensing controllers of the host computers in the cluster identified in the API call with power sensing capabilities via the respective power sensing controller APIs. In this communication with the power sensing controllers, requests are made for current power usage values of the respective host computers. At block 406, the power sensing controller interface receives the current power usage values of the host computers. At block 408, the power management module interface 304 communicates with the power management module 108. In this communication with the power management module, a request is made to receive the latest power management information, including at least the identifications of the host computers that were powered on or powered down and the times when these host computers were powered on or powered down. At block 410, the power management module interface receives the latest power management information. At block 412, the power metering engine 308 processes the power usage values from the power sensing controllers of the host computers in the cluster with the power sensing capabilities and the power management information to compute the power and cost savings attributable to the power management module. The cost savings computation involves multiplying the amount of power saved by the power management module with the electricity rate, i.e., cost per electrical power unit, which may be provided by the user. Depending on the option setting, the power metering engine may (1) exclude the host computers in the cluster without the power sensing capabilities in the power and cost savings computations, (2) use power usage values provided by the user for the host computers in the cluster without the power sensing capabilities in the power and cost savings computations, or (3) use the power usage values of the host computers in the cluster with the power sensing capabilities for the host computers in the cluster without the power sensing capabilities in the power and cost savings computations. At block 414, the power monitoring system transmits the results of the power and cost savings computations to the requesting client.
[0039] A method for computing power cost savings of power management operations in a cluster of host computers, the method comprising in accordance with an embodiment of the invention is described with reference to a flow diagram of FIG. 5. At block 502, power usage information from the host computers with power sensing capabilities in the cluster is received. At block 504, power management information from a power management operation that executes the power management operations is received. The power management information includes times when at least one of the host computers was powered down. At block 506, the power cost savings attributable to the power management operations is computed based on the power usage information and the power management information.
[0040] Although the operations of the method(s) herein are shown and described in a particular order, the order of the operations of each method may be altered so that certain operations may be performed in an inverse order or so that certain operations may be performed, at least in part, concurrently with other operations. In another embodiment, instructions or sub-operations of distinct operations may be implemented in an intermittent and/or alternating manner.
[0041] It should also be noted that at least some of the operations for the methods may be implemented using software instructions stored on a computer useable storage medium for execution by a computer. As an example, an embodiment of a computer program product includes a computer useable storage medium to store a computer readable program that, when executed on a computer, causes the computer to perform operations, as described herein.
[0042] Furthermore, embodiments of at least portions of the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
[0043] The computer-useable or computer-readable medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device), or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disc, and an optical disc. Current examples of optical discs include a compact disc with read only memory (CD-ROM), a compact disc with read/write (CD-R/W), a digital video disc (DVD), and a Blu-ray disc.
[0044] In the above description, specific details of various embodiments are provided. However, some embodiments may be practiced with less than all of these specific details. In other instances, certain methods, procedures, components, structures, and/or functions are described in no more detail than to enable the various embodiments of the invention, for the sake of brevity and clarity.
[0045] Although specific embodiments of the invention have been described and illustrated, the invention is not to be limited to the specific forms or arrangements of parts so described and illustrated. The scope of the invention is to be defined by the claims appended hereto and their equivalents.
User Contributions:
Comment about this patent or add new information about this topic: