Power consumption is a growing problem for today's servers. It is desirable to reduce the power consumption of a server to as low a level as possible, while maintaining maximum performance. In addition to saving on electricity costs, which for a large server farm could be considerable, another desirable result of reducing the power consumption by a server is that less internal heat will be generated. Greater heat reduces a server's reliability and increases its total cost of ownership since higher operating temperatures places more stress on internal circuitry such as microprocessors, internal memory chips, and also any integrated peripherals such as internal disk drives, cooling fans, or circuit boards.
Current computer processors contain logic to lower clock speed and thus power consumption on demand. One attempt at solving the power consumption problem is to have an administrator of the servers configure the processor offline for the desired power state. Offline configuration is simple but not desirable for a server as it requires the server to be taken out of use temporarily.SUMMARY OF THE INVENTION
An embodiment of a method for remotely controlling power consumption of at least one server, including providing remote control to an administrator over a power state of at least one server, building an instruction command and encoding it into a suitable format for transport over a data network from an administration terminal to the at least one server, and interpreting the command and executing the command by the at least one server without powering down the at least one server.BRIEF DESCRIPTION OF THE DRAWINGS
DETAILED DESCRIPTION OF PREFFERED EMBODIMENT
In the following description of the invention, reference is made to the accompanying drawings, which form a part hereof, and in which is shown by way of illustration a specific example in which the invention may be practiced. It is to be understood that other embodiments may be utilized and structural changes may be made without departing from the scope of the present invention.
In general, in one embodiment of the present invention, the data network providing the connection between the administrator and servers is a private Intranet, but any network which allowed for the communication of commands to the servers such as the Internet, an extranet, a wireless network, or even the public telephone network could be used.General Overview:
A set of commands that can be sent remotely over the network are implemented in one embodiment. These commands govern the control of power consumption by the server. In one embodiment the commands are based on the Extensible Markup Language (XML). XML is becoming increasingly more popular as a method of exchanging a wide variety of data between computer systems. It is considered by many as the de facto standard for data exchange. Encapsulating the commands in XML facilitates ease of integration into existing applications and systems.
In another embodiment, the administrator uses a web browser as a graphical user interface (GUI) to remotely issue commands to the servers. In this embodiment the administrator can log in from anywhere in the world as long as there is a functioning web browser available. In another embodiment, the present invention is integrated into an existing network management application and remote power management becomes an additional feature of the application. This embodiment has an advantage in that the administrator would have simultaneous access to any other features of the management application which could enhance their ability to decide on the appropriate power state for any particular server. For instance the management application might display current server information for things such as temperature, CPU utilization, network congestion, number of current connections, or other useful information. This information would allow an administrator to make a more informed decision as to the best power state for any particular server.
In one embodiment of the invention, an integrated System Management Mode (SMM) consisting of specialized processor instructions and hardware that can be utilized by software code is run on the processor. The SMM allows control over certain aspects of the hardware. Processor power state is one such aspect of the hardware that can be controlled via the SMM framework. The SMM can be used to control the power state of a Central Processing Unit (CPU), including Personal Computer ROM based configuration utilities, or automatic power state control based on some dynamic criteria, the CPUs clock speed and control over the subsystems, including remote control over random access memory and/or video devices of the servers.
In one embodiment, the Transmission Control Protocol/Internet Protocol (TCP/IP) is used. An Integrated Lights-Out (ILO) remote server management subsystem is used with the TCP/IP to control the power consumption. In one embodiment, the ILO is a hardware based subsystem that is integrated into a host server's hardware and allows it to be managed through any server state. Namely, the ILO is a controller that allows remote management during power up, before the OS loads, while the OS is running, and even if there is an OS failure. In effect, the ILO is an autonomous computer within a computer, having a separate power source, communications channel, RAM, ROM, and peripherals. The separation of the ILO system from the server's hardware and Operating System makes it a very reliable and useful way of managing a server. Most of the problems that a server might encounter, including hardware and software problems would not effect the ILO system, allowing the ILO system to be used to diagnose, and in some cases even repair the server from a remote location without having to physically visit the server.
An embodiment of the present invention combines and uses 1) the ability of current processors to switch to different power states, 2) the SMM framework mechanism for performing the switching between different processors power states, and 3) the remote server management capabilities of ILO management system. The system resulting in the combination of these three capabilities will comprise an embodiment of the current invention which will give administrators a new tool in remote server management, namely the ability to remotely manage the power state of one or more servers. It should be understood that any or all of these three components specified in this particular embodiment could be replaced with a different technology or eliminated completely without straying from the claim of this invention which is the remote control of a server's power state.Detailed Components:
Also depicted in
ILO module 216 is shown and can be integrated into the main board of the server 200 or can be an optional add-in board, but is normally integrated. ILO module 216 is comprised of a CPU 218 with its own Random Access Memory (RAM) 220, its own Read Only Memory (ROM) 222, its own peripherals 224 such as a virtual floppy drive, the ILO module also has its owns power supply 226 and its own data communications interface 228 which is normally an Ethernet interface, but could be others such as Universal Serial Bus (USB) or Firewire. The ILO is essentially its own autonomous computer system operating independently of the server itself. This separation allows the ILO module to be used to monitor and diagnose the server even during a server crash or other catastrophic events. The ILO module has a fault isolated connection 232 to the server computer 202. This allows the ILO module to remain functional even if the server has a short circuit or total power failure.
After the remote management application has been launched, the administrator would be presented with the servers which are being managed. This would normally be via a Graphical User Interface (GUI) but could also be via a command line interface. The administrator navigates to the server(s) (Step 304). Now that the servers have been identified within the remote management application, the administrator instructs the management application to send a change of power state to the server(s) (Step 306). This would be done via a GUI menu, or a command line. The management application would now build the appropriate XML based command the server or servers (Step 308). The management application now sends the command(s) via the TCP/IP protocol to the server(s) (Step 310). Each being sent to a server would have the appropriate TCP/IP address for that particular server, ensuring proper delivery of the command.
The ILO module of the server would receive the XML command sent from the remote management application via its TCP/IP communications interface (Step 312). The ILO module parses the XML based command request and determines that it is a change of power state command (Step 314). The ILO module, in response to receiving the XML change of power state command, sends the appropriate change of power command to the servers SMM module (Step 316). In response, the SMM module issues a System Management Interrupt (SMI), interrupting the server (Step 318). Once the interrupt has occurred, control is handed over the SMM module's code, which performs the change of power state on the servers CPU (Step 320) without powering down the servers. In one embodiment, the clock speeds of the CPUs of the servers are remotely modulated on demand at the request of an administrator.
It is important to note that the XML command in one embodiment is transmitted in a secure encrypted format, so even if the data representing the XML command is captured, it is illegible. The next line 408 is an XML ‘SERVER_INFO’ tag with a ‘MODE’ parameter. The mode parameter is used to specify whether this command is a read or write request. ILO can provide server information in response to a request from the management application, as well as perform commands sent to it. There is a closing tag 410. The next line 412 specifies the actual command. In this case it is a ‘SET_HOST_POWER_STATE’ tag with one parameter ‘HOST_POWER_STATE’, which in the example is being set to the value of ‘Low’ but there could be any number of other modes such as ‘High’, ‘Medium’ or ‘Sleep’. This is an XML tag that is not currently specified in the ILO specifications, but would be added to support one embodiment of the present invention. The XML format is extremely flexible and the addition of this particular tag would be transparent to the end to end delivery of the XML command. The management application and the ILO module would need to be enhanced to support it. The slash at the end of line 412 is equivalent to a closing tag.
The ILO module is isolated as much as possible from the server it is incorporated into while still retaining the ability to perform its required functions. The ILO module is powered from an auxiliary power supply 518 which is completely independent from the system power supply 516. This allows the ILO to remain functional even when the system is powered down or has power related problems. Another important isolation is the isolation from the system bus 512, in this case a PCI bus 503. With an isolated bus, the ILO module is unaffected by bus problems of the system. Another isolation of the ILO module from the system, primarily to protect the system from unauthorized data, is a firewall and bridge 514. This firewall protects against undesired traffic designed to attack and gain access to the server.
In one embodiment, the SMM Module 600 is connected to a special pin on the CPU 604. The SMI # input pin 606 of the CPU 604 is used by the SMM 600 through the ILO controller 601 to initiate a System Management Interrupt (SMI). The SMI is the first step the SMM uses to perform any change of power state functions. Upon the SMI # pin 606 being signaled by the SMM 600 through the ILO controller 601, the CPU 604 will signal its SMIACT # output pin 608. Upon the signaling of the SMIACT # output pin 608, which is connected to memory switching circuit 610, the CPU's memory bus 612 is decoupled from the normal system memory 614, and coupled to the SMM protected memory 602. At this point the CPU saves its state to the SMM protected memory 602, and begins execution of the SMM handler code which resides in the SMM protected memory 602. It is the execution of this special code, which is controlled by the SMM module, which performs the desired power state change of the CPU 604.
The foregoing has described the principles, embodiments and modes of operation of the present invention. However, the embodiments of the present invention should not be construed as being limited to the particular embodiments discussed. The above-described embodiments should be regarded as illustrative rather than restrictive, and it should be appreciated that variations may be made in those embodiments by workers skilled in the art without departing from the scope of the embodiments of the present invention as defined by the following claims.